我有一个到工作内联网/局域网的有线连接(带代理),还有一个没有代理的无线连接,无法访问办公室局域网。 (如访客 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
答案1
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 协议却知道。
你可以检查高级绕线指南页。