通过其他接口强制SSH连接


12

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

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

连接到VPN后,如何通过其他连接强制连接?

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


3
请添加更多信息...提供当前计算机的路由表,以及客户端操作系统是什么(Linux,Windows)
RomeNYRR 2012年

Answers:


16

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

或者,您可以使用-bSSH选项(或类似的方式-B):

     -b bind_address
             在本地计算机上使用bind_address作为源地址
             连接。仅在具有多个功能的系统上有用
             地址。

它将您的SSH客户端绑定到所选的本地IP地址,以便所有数据包都将通过关联的接口发出。


1
第二个选择是什么?我很好奇!
伊莱兰·马尔卡

1
知道如何在PuTTY中进行等效操作也很有帮助,因为问题指定了该客户。
echristopherson

看来-b选项不支持IPv6 IP。我对么?
艾莉亚

不支持使用腻子
toing_toing

3

问题在于所采取的路线。

解决方案是更新路由表。我使用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


1

您必须更改前往目的地的路线。

先前的回答指出,可以使用-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的网关。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.