Linux
有兩個介面,我怎樣才能讓一個作為預設路由,另一個作為備用路由?
我有有線連接到我工作的內部網/區域網路(使用代理)和一個無線沒有代理,無法訪問辦公室區域網路。(如訪客 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:
如果它想使用自動添加連結本地地址的地址 169.254.xx/16 - 你可以通過解除安裝
avahi*
東西禁用它。如果您想訪問 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頁面。