我有一个具有两个接口活动的Linux系统:
- 桥接
br0
:包含两个WiFi接口(2.4和5GHz(。5GHz接口连接到网络。桥接接口BR0能够从该网络获得IP(192.168.1.107(。该网络提供没有任何限制的互联网。 - 以太网
eth0
:连接到另一个网络(与5GHz网络(,并且具有IP地址(10.102.xx.xx(。该网络提供了代理背后的互联网。
有了这种安排,我无法ping任何网站,例如ping google.com
失败。如果我暂时删除以太网,则Ping成功。如果我从ping指定接口,则ping也会成功。例如ping -I br0 google.com
成功。
在系统上运行的HTML5应用程序需要加载URL,这是由于上述问题而失败的。
您能帮助我理解为什么两个接口处于活动状态以及如何解决此问题时ping/wget/curl失败?
路由表看起来像这样:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.102.132.1 0.0.0.0 UG 202 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 208 0 0 br0
10.102.132.0 0.0.0.0 255.255.255.128 U 202 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
192.168.1.0 0.0.0.0 255.255.255.0 U 208 0 0 br0
从您的路由表中显示,即使连接两个接口时,您都有2个默认网关,即使最低的度量标准应优先考虑10.102.132.1网关,这可能不是什么鉴于它是代理的后面。
如果您运行以下命令,则应该能够删除ETH0上的默认网关,并且可以再次ping:
sudo route del -net 0.0.0.0 gw 10.102.132.1 netmask 0.0.0.0 dev eth0
此命令不持久,因此,当您断开连接并重新连接该接口时,该路由将被重置。