Win11 SSH隧道安全中转

本文场景:

Win11 本机→ SSH 加密隧道→ 中转 VPS→ mixed 端口 16195→ 访问互联网

最终浏览器通过 ZeroOmega 使用本机代理:

HTTP 127.0.0.1:1080

这样做的好处是:浏览器不直接连接公网 HTTP/SOCKS5 代理,而是先通过 SSH 加密隧道连接中转 VPS,再由中转 VPS 转发到后端 mixed 代理端口。


一、整体结构

原始 mixed 代理端口:

中转VPS公网IP:16195

Win11 本机通过 SSH 映射成本地端口:

127.0.0.1:1080

最终链路:

Chrome / ZeroOmega→ 127.0.0.1:1080→ SSH 加密隧道→ 中转 VPS→ 中转VPS公网IP:16195→ 后端代理→ 目标网站

二、准备条件

需要准备:

1. Win11 电脑2. 中转 VPS SSH 登录权限3. SSH 端口,例如 100664. SSH 用户名,例如 root5. SSH 私钥,例如 vps_ed255196. mixed 代理端口,例如 161957. mixed 代理用户名和密码8. Chrome + ZeroOmega 插件

三、Win11 生成 SSH 密钥

打开 PowerShell,先创建 .ssh 目录:

mkdir "$env:USERPROFILE\.ssh"

生成 ed25519 密钥:

ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\vps_ed25519" -C "win11-vps"

生成后会有两个文件:

C:\Users\Administrator\.ssh\vps_ed25519C:\Users\Administrator\.ssh\vps_ed25519.pub

说明:

vps_ed25519      是私钥,自己保管vps_ed25519.pub  是公钥,上传到 VPS

四、上传公钥到 VPS

公钥需要追加到 VPS 登录用户的:

~/.ssh/authorized_keys

如果 SSH 用户是 root,实际路径是:

/root/.ssh/authorized_keys

在 Win11 PowerShell 执行:

type "$env:USERPROFILE\.ssh\vps_ed25519.pub" | ssh -p 10066 root@中转VPS公网IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

注意:这里上传的是 .pub 公钥,不是私钥。


五、测试 SSH 密钥登录

执行:

ssh -p 10066 -i "$env:USERPROFILE\.ssh\vps_ed25519" root@中转VPS公网IP

如果能登录 VPS,说明密钥配置成功。

登录后输入:

exit

退出。


六、建立 SSH 本地端口转发

因为中转 VPS 上访问:

127.0.0.1:16195

不通,但外部访问:

中转VPS公网IP:16195

是通的,所以 SSH 转发命令写成:

ssh -p 10066 -i "$env:USERPROFILE\.ssh\vps_ed25519" -N -L 127.0.0.1:1080:中转VPS公网IP:16195 root@中转VPS公网IP

示例:

ssh -p 10066 -i "$env:USERPROFILE\.ssh\vps_ed25519" -N -L 127.0.0.1:1080:1.2.3.4:16195 root@1.2.3.4

说明:

-p 10066指定 SSH 端口-i "$env:USERPROFILE\.ssh\vps_ed25519"指定 SSH 私钥-N只建立隧道,不打开远程 shell-L 127.0.0.1:1080:中转VPS公网IP:16195把本机 127.0.0.1:1080 转发到中转 VPS 的 16195 代理端口

命令运行后没有输出是正常的。这个 PowerShell 窗口不要关闭,关闭后代理就断开。


七、测试本地代理是否成功

另开一个 PowerShell。

如果 mixed 代理支持 SOCKS5,可以测试:

curl.exe --socks5-hostname 用户名:密码@127.0.0.1:1080 https://ipinfo.io/ip

如果返回一个 IP,说明 SOCKS5 通了。

如果 mixed 代理支持 HTTP,也可以测试:

curl.exe -x http://用户名:密码@127.0.0.1:1080 https://ipinfo.io/ip

如果也返回一个 IP,说明 HTTP proxy 也通了。

实际测试中,如果 HTTP 能通,ZeroOmega 推荐使用 HTTP,因为 Chrome / ZeroOmega 对 HTTP 代理认证兼容性更好。


八、ZeroOmega 设置

打开 ZeroOmega:

Options → New Profile → Proxy Profile

配置如下:

Protocol: HTTPServer: 127.0.0.1Port: 1080Username: mixed 代理用户名Password: mixed 代理密码

注意:

Server 不要填中转 VPS IPServer 不要填 http://127.0.0.1Port 填 1080Protocol 选 HTTP用户名密码填 mixed 代理的用户名密码,不是 SSH 的用户名密码

保存后点击:

Apply changes

然后在浏览器右上角 ZeroOmega 图标里选择这个代理配置。

打开:

https://ipinfo.io

如果显示代理出口 IP,说明成功。


九、为什么 ZeroOmega 用 HTTP,不用 SOCKS5

虽然 curl 测试 SOCKS5 能通:

curl.exe --socks5-hostname 用户名:密码@127.0.0.1:1080 https://ipinfo.io/ip

但 ZeroOmega 使用 SOCKS5 可能不通。常见原因是:

Chrome / ZeroOmega 对带用户名密码认证的 SOCKS5 支持不稳定

而 HTTP proxy 认证在浏览器里兼容性更好。

因此推荐 ZeroOmega 使用:

HTTP 127.0.0.1:1080

不是:

SOCKS5 127.0.0.1:1080

十、安全性说明

这种方式比直接连接公网 HTTP/SOCKS5 代理更安全。

直接连接公网代理:

浏览器 → 中转VPS公网IP:16195

HTTP/SOCKS5 代理认证和目标连接信息可能在网络链路中暴露。

现在使用 SSH 隧道:

浏览器 → 127.0.0.1:1080 → SSH 加密隧道 → 中转VPS:16195

本机到中转 VPS 之间由 SSH 加密保护。

本地网络、运营商、公共 Wi-Fi 一般只能看到:

你连接了中转 VPS 的 SSH 端口连接时间流量大小

通常看不到:

代理用户名密码HTTP proxy 请求SOCKS5 握手你通过代理访问的目标网站

但要注意:

中转 VPS 或后端代理服务器仍然可能看到出口连接的目标 IP / 域名和流量特征访问 HTTPS 网站时,网页正文通常仍然由 HTTPS 保护访问 HTTP 网站时,内容可能被代理端看到

十一、写成 .bat 一键启动

在桌面新建文件:

start-proxy.bat

内容如下:

@echo offtitle SSH Proxy Tunnelecho Starting SSH tunnel...echo Local proxy: 127.0.0.1:1080echo Remote proxy: 中转VPS公网IP:16195echo.ssh -p 10066 ^  -i "%USERPROFILE%\.ssh\vps_ed25519" ^  -o ServerAliveInterval=30 ^  -o ServerAliveCountMax=3 ^  -N ^  -L 127.0.0.1:1080:中转VPS公网IP:16195 ^  root@中转VPS公网IPecho.echo SSH tunnel closed.pause

示例:

@echo offtitle SSH Proxy Tunnelecho Starting SSH tunnel...echo Local proxy: 127.0.0.1:1080echo Remote proxy: 1.2.3.4:16195echo.ssh -p 10066 ^  -i "%USERPROFILE%\.ssh\vps_ed25519" ^  -o ServerAliveInterval=30 ^  -o ServerAliveCountMax=3 ^  -N ^  -L 127.0.0.1:1080:1.2.3.4:16195 ^  root@1.2.3.4echo.echo SSH tunnel closed.pause

以后双击 start-proxy.bat 即可启动 SSH 隧道。

窗口保持打开,代理就有效。关闭窗口,代理断开。


十二、iPhone / 小火箭说明

iPhone 上也可以直接在小火箭里添加 mixed 代理:

Type: HTTPServer: 中转VPS公网IPPort: 16195User: mixed 用户名Password: mixed 密码

但这种方式是手机直接连接公网 HTTP proxy:

iPhone → 中转VPS公网IP:16195

安全性不如 Win11 的 SSH 隧道方式。

iOS 一般不能同时开启两个 VPN,所以不建议设计成:

WireGuard / Tailscale + 小火箭 同时使用

iPhone 更推荐:

1. 小火箭直接使用 VLESS Reality / Trojan TLS / Shadowsocks 等加密节点2. 或者使用 Tailscale / WireGuard Exit Node 替代小火箭3. 不建议长期裸连公网 HTTP/SOCKS5 mixed 代理

十三、最终推荐配置

Win11 端:

SSH 隧道:本机 127.0.0.1:1080 → 中转VPS公网IP:16195ZeroOmega:Protocol: HTTPServer: 127.0.0.1Port: 1080Username: mixed 用户名Password: mixed 密码

启动命令:

ssh -p 10066 -i "$env:USERPROFILE\.ssh\vps_ed25519" -N -L 127.0.0.1:1080:中转VPS公网IP:16195 root@中转VPS公网IP

日常使用流程:

1. 双击 start-proxy.bat2. 保持窗口不要关闭3. Chrome 选择 ZeroOmega 的 HTTP 代理配置4. 打开 https://ipinfo.io 测试出口 IP

这种方案适合 Win11 浏览器使用,兼顾简单性和安全性。