Windows系统下仅让终端通过VPN连接SSH访问SSL-VPN的方案咨询
Windows系统下仅让终端通过VPN连接SSH访问SSL-VPN的方案咨询
嘿,我完全懂你的困扰——VPN一连接就全局限速,后台想刷个网页、传个文件都卡得不行,只想让终端的SSH流量走VPN对吧?给你整理几个Windows下实测可行的方案,按需选就行:
方案1:手动配置路由表精准分流
这是最原生的方法,不用装额外工具,直接给SSH目标地址单独指定VPN路由:
- 先连一次VPN,打开管理员权限的命令提示符(CMD),输入
route print,找到VPN适配器对应的网关地址(比如看起来像10.x.x.x或者192.168.x.x的那个) - 查一下大学集群的IP:如果是域名访问,输入
nslookup 你的集群域名拿到对应的IP(比如192.168.100.5) - 添加专属路由:在管理员CMD里输入
route add 192.168.100.5 mask 255.255.255.255 刚才查到的VPN网关IP - 验证:断开VPN的全局连接(或者直接保持VPN但其他程序走本地),终端里SSH连集群,同时开浏览器刷普通网站,看是不是互不影响
- 小技巧:每次重启VPN后路由会失效,可以把添加路由的命令写成
.bat脚本,双击就能自动执行
方案2:用第三方代理工具做应用/规则分流
如果觉得路由表太麻烦,试试用支持规则分流的代理工具,比如Clash for Windows:
- 安装后,在规则列表里添加两条规则(二选一就行):
- 针对域名:
- DOMAIN-SUFFIX, 你的集群域名, VPN - 针对IP:
- IP-CIDR, 你的集群IP/32, VPN
- 针对域名:
- 把Clash设置为系统代理,切换到「分流」模式,这样只有匹配规则的流量(也就是终端SSH访问集群的流量)会走VPN,其他程序自动走本地网络
- 注意:如果你的VPN是SSL-VPN类型,可能需要在Clash里配置对应的VPN节点(比如openconnect协议)
方案3:用WSL单独跑VPN隔离流量
如果你平时习惯用WSL(Windows子系统Linux),这个方法更彻底:
- 在WSL里安装VPN客户端,比如openconnect:
sudo apt install openconnect(Debian/Ubuntu系) - 在WSL里直接连接大学VPN:
sudo openconnect 你的大学VPN地址,输入账号密码完成连接 - 之后在WSL里SSH到集群,Windows系统本身的网络完全不受影响,后台程序该干嘛干嘛
额外提醒
- 有些大学的VPN可能强制全局路由,这时候路由表方案可能失效,最好先问问学校IT部门是否允许自定义路由规则
- 用第三方工具时,记得检查规则是否准确,避免把不该走VPN的流量导过去,反而影响速度
备注:内容来源于stack exchange,提问作者The Mastermage




