强制通过不同的接口进行 SSH 连接

强制通过不同的接口进行 SSH 连接

我想使用 SSH 进行远程连接。

但是,当我的 VPN 处于活动状态时,我无法执行此操作,因此我断开与 VPN 的连接,然后使用其他连接进行连接。

连接到 VPN 时,如何强制通过其他连接进行连接?

我正在使用 Windows 7 和 PuTTY 客户端。

答案1

有两个选项。首先,您可以修改路由,以便 SSH 数据包自然地通过正确的接口。

或者您可以使用-bSSH 选项(或类似的方式-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 routeroute被弃用,因此这应该是:

ip route add <destination> via <gate1>

另一种方法是

ip route add <destination> via <gate1> dev <different interface>

但考虑到该地址<gate1>已经与您的不同接口相关联,这里<different interface>,没有任何变化。

这里重要的是指定它是<gate1>你必须穿越的不同接口的网关,而不是 VPN 的网关。

相关内容