我想使用 SSH 进行远程连接。
但是,当我的 VPN 处于活动状态时,我无法执行此操作,因此我断开与 VPN 的连接,然后使用其他连接进行连接。
连接到 VPN 时,如何强制通过其他连接进行连接?
我正在使用 Windows 7 和 PuTTY 客户端。
答案1
有两个选项。首先,您可以修改路由,以便 SSH 数据包自然地通过正确的接口。
或者您可以使用-b
SSH 选项(或类似的方式-B
):
-b 绑定地址 使用本机的bind_address作为源地址 连接。仅适用于具有多个连接的系统 地址。
它会将您的 SSH 客户端绑定到选定的本地 IP 地址,以便所有数据包都通过相关接口发出。
答案2
问题出在所采取的路线上。
解决方案是更新路由表。我使用命令route
添加了一条新路由,并指定了正确的接口和网关。
该命令如下所示route add <destination> mask <netmask> <gateway> <interface>
,例如:
route -p add 10.100.10.10 mask 255.255.255.0 192.168.1.0 IF 13
-p
表示持久性,因此重启后它仍会保留在那里。IF
表示接口,您可以从命令中获取此号码route print
。
答案3
您必须改变前往目的地的路线。
先前的答案指出,-b
或-B
选项可以使用,但通常情况下,如果激活了 VPN,则这不起作用,因为它更改路线通过 VPN 网络接口 (通常称为 ) 向任意目的地传输流量tun0
。
因此,您必须重新配置到达目的地所采用的路线。我们将其称为<destination>
,以及与<gate1>
您要使用的不同接口关联的网关的 IP 地址(技术上是下一跳路由器的地址)。由于ip route
已route
被弃用,因此这应该是:
ip route add <destination> via <gate1>
另一种方法是
ip route add <destination> via <gate1> dev <different interface>
但考虑到该地址<gate1>
已经与您的不同接口相关联,这里<different interface>
,没有任何变化。
这里重要的是指定它是<gate1>
你必须穿越的不同接口的网关,而不是 VPN 的网关。