我有以下情况:
路线-n 内核 IP 路由表 目标网关 Genmask 标志 指标参考使用 Iface 0.0.0.0 192.168.42.129 0.0.0.0 UG 0 0 0 usb0 192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 WLAN1 192.168.42.0 0.0.0.0 255.255.255.0 U 1 0 0 usb0
我想使用单行设置网关为192.168.0.0/24
(192.168.0.1
当前辅助 IP 为192.168.0.4
)。
我可以使用类似
sudo ip route add from 192.168.0.4 via 192.168.0.1 dev wlan1 RTNETLINK 回答:文件存在
?
同样,我需要一些临时的东西来强制所有从192.168.0.4
网关发送的数据包通过192.168.0.1
(不想设置一组脚本/其他东西来执行此操作)。有没有我可以使用的一行程序?
干杯!
答案1
wlan1
强制所有流量通过的方法usb0
是强制使用新网关:使用 sudo,
ip route del default
ip route add default via 192.168.0.1 dev wlan1
(我假设你的网关有 IP 地址192.168.0.1
,如果没有,请相应更改)。你可以使用以下方法恢复之前的情况:
ip route del default
ip route add default via 192.168.42.129 dev usb0
如果您不知道或不记得网关的 IP 地址,请使用
ip route del default
dhclient -v usb0
(-v
选项用于详细显示,它并不存在于所有发行版中,你可能必须放弃它)。
你也可以决定二网关,每个接口一个;使用 Linux 内核(并且只能使用 Linux 内核)可以做到这一点,你会发现在 David'Schwartz 的回答中一个关于如何做到这一点的简短而出色的解释。一旦你这样做了,你将必须决定每个应用程序的输出通过哪个接口(你能根据每个应用程序决定)。这意味着,一个给定的应用程序ssh
可能绑定到任一接口,或者换句话说,启动的 IP 地址ssh
可以是的usb0
或的wlan1
;rule
然后 David Schwartz 讨论的会自动进行正确的路由ssh
。
请注意,这样一来,您可能有一个ssh
连接通过wlan1
,而另一个连接通过wlan1
。