Linux

有兩個介面,我怎樣才能讓一個作為預設路由,另一個作為備用路由?

  • March 5, 2013

我有有線連接到我工作的內部網/區域網路(使用代理)和一個無線沒有代理,無法訪問辦公室區域網路。(如訪客 Wifi)

我的想法是將所有流量路由到 eth0,只有一些流量(如 ssh)到 wlan0。

我對如何做到這一點有一個想法,但不太確定。

好吧,我現在的問題是,當eth0和wlan0都連接時,兩者之間的流量似乎是間歇性的,Firefox有時會嘗試通過wlan0出去並且找不到代理伺服器(因為它在ETH0 lan上)。

~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.100.254 0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
192.168.25.0    0.0.0.0         255.255.255.0   U     2      0        0 wlan0
192.168.100.0   0.0.0.0         255.255.255.0   U     1      0        0 eth0
192.168.200.0   192.168.100.253 255.255.255.0   UG    0      0        0 eth0

我該如何解決它,所以除非我指定它,否則 Firefox 不會嘗試通過 wlan0?

~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.100.254 0.0.0.0         UG    0      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
192.168.25.0    *               255.255.255.0   U     2      0        0 wlan0
192.168.100.0   *               255.255.255.0   U     1      0        0 eth0
192.168.200.0   192.168.100.253 255.255.255.0   UG    0      0        0 eth0

Firefox 只能在這種情況下通過 wlan0:

  1. 如果它想使用自動添加連結本地地址的地址 169.254.xx/16 - 你可以通過解除安裝avahi*東西禁用它。

  2. 如果您想訪問 192.168.25.0/24 網路中的某個地址。

如果您想使用 192.168.25.0/24 中的地址和 ssh 協議 wifi0 介面以及您想使用 eth0 的其他協議,則必須使用策略路由:

echo 100 ssh >> /etc/iproute2/rt_tables
ip rule add fwmark 100 table ssh
ip route add 192.168.25.0/24 dev wifi0 table ssh
ip ro add default via 192.168.100.254 dev eth0 table ssh
ip ro del 192.168.25.0/24 dev wifi0 table main
iptables -A PREROUTING -t mangle -p tcp --dport 22 -j MARK --set-mark 100

主要思想是,“正常”路由表對網路 192.168.25.0/24 一無所知,但 ssh 協議卻知道。

您可以查看Advanced Routing HOWTO頁面。

引用自:https://unix.stackexchange.com/questions/66924