我使用的是远程计算机,我使用 SSH 和静态 IP 来连接它。我想知道如何编辑路由表以使用无线接口退出 Internet,但仍然能够使用 SSH 和静态 IP 连接到它。
我尝试更改无线接口路由上的度量值,但失去了连接,所以我想我将其更改为通过 WiFi 接口路由所有内容。
这是我的远程计算机的实际路由表(显然我已经混淆了一些 IP 地址):
# ip route list
default via 193.*.*.1*9 dev eth0 proto static metric 100
default via 192.168.0.1 dev wlan3 proto static metric 600
default via 192.168.0.1 dev wlan1 proto static metric 601
192.168.0.0/24 dev wlan3 proto kernel scope link src 192.168.0.127 metric 600
192.168.0.0/24 dev wlan1 proto kernel scope link src 192.168.0.143 metric 601
193.*.*.1*8/25 dev eth0 proto kernel scope link src 193.*.*.1*7 metric 100
这里是route -n 的输出:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 193.*.*.1*9 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlan3
0.0.0.0 192.168.0.1 0.0.0.0 UG 601 0 0 wlan1
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan3
192.168.0.0 0.0.0.0 255.255.255.0 U 601 0 0 wlan1
193.*.*.1*8 0.0.0.0 255.255.255.128 U 100 0 0 eth0
总而言之,这个想法是通过 eth0 接口路由 SSH 流量,并通过 wlan3 路由其余流量。
答案1
要验证我是否正确理解您的问题:您正在使用一台带有 2 个 WLAN 接口和 1 个 LAN 接口的本地计算机。在 LAN 接口后面,还有另一台您想要使用静态 IP 访问的计算机。所有其他流量应通过 WLAN 接口。 WLAN 接口通过 DHCP 获取其地址。
如果这是正确的,default
除了该网段的每条规则(“到达静态地址下的远程服务器”)之外,您还需要针对其中一个 WLAN 接口(“使用无线接口退出到互联网”)制定一条规则。 WLAN 接口的路由可能是自动设置的,只要它们具有不同的优先级,并且其中两个接口具有不同的优先级,并且您知道您将只使用一个 WLAN 接口,则不会有任何影响。
所以路由表应该是这样的:
default via 192.168.0.1 dev wlan3 proto static metric 600
default via 192.168.0.1 dev wlan1 proto static metric 601
192.168.0.0/24 dev wlan3 proto kernel scope link src 192.168.0.127 metric 600
192.168.0.0/24 dev wlan1 proto kernel scope link src 192.168.0.143 metric 601
193.*.*.1*8/25 dev eth0 proto kernel scope link src 193.*.*.1*7 metric 100
假设这些是默认指标,并假设您要通过 SSH 访问的服务器的端口号为 193。。.1*8地址(你没说)。如果没有,您需要为服务器地址添加一条附加规则。
换句话说,只要做
ip route del 193.*.*.1*9 dev eth0 proto static metric 100
(当然,需要正确的 IP 地址)。
根据 LAN 接口获取其地址的方式(网络管理器?),您可以自动执行此操作。
编辑
所以图片是这样的:
+--------------+ +---------------------+ +-------------+
| eth0 |----| Some other computer |....| remote host |
| Laptop | +---------------------+ +-------------+
| wlan0 | +---------+
| Laptop wlan1 |::::| Some AP |
+--------------+ +---------+
它是否正确?如果没有,请澄清购买编辑您的问题。像上面这样的图片会有帮助。
我知道您希望保护公共 IP 地址,但这使得评估情况变得困难。
假设您要连接的主机ssh
具有公共 IP 地址1.2.3.4
。在您的笔记本电脑上,WLAN 的地址范围192.168.0.*/24
为 gateway 192.168.0.1
,您的 LAN 的地址范围192.168.1.*/24
为 gateway 192.168.1.1
。这可能比您的数字更现实(因为以 192.168 开头的所有内容都在专用 IP 范围内;您的 LAN 网段不太可能有公共 IP 范围)。鉴于此,您的路由表在笔记本电脑上应该类似于
default via 192.168.0.1 dev wlanX
1.2.3.4 via 19.168.1.1 dev eth0
192.168.0.0/24 dev wlanX ...
192.168.1.0/24 dev eth0 ...
我们对另一台计算机或 ssh 主机上的路由表不感兴趣。
路由由更具体的前缀匹配,因此这表示“将到 1.2.3.4 的流量发送到 LAN 网关,通过 WLAN 或 LAN 将本地网段的流量发送到 WLAN 网关”。您可以通过以下方式验证ip route get
:
$ ip route get 1.2.3.4
1.2.3.4 via 192.168.1.1 dev eth0
$ ip route get 1.2.3.5
1.2.3.5 via 192.168.0.1 dev wlanX
您要么需要根据您的情况进行调整,要么更详细地解释您的本地设置。提供192.168.*.*
和形式的 IP 地址是安全的10.*.*.*
,这些是许多人使用的专用网络地址,不能用于识别您或您的计算机的身份。