当两个接口(以太网和wifi)处于活动状态时无法ping通

时间:2018-04-23 06:47:36

标签: network-programming

我有一个有两个活动接口的linux系统:

  1. 网桥br0:包含两个wifi接口(2.4和5GHz)。 5GHz接口连接到网络。网桥接口br0能够从该网络获得IP(192.168.1.107)。该网络提供互联网,没有任何限制。
  2. 以太网eth0:连接到不同的网络(比5GHz网络),并且还有一个IP地址(10.102.xx.xx)。该网络在代理服务器后面提供互联网。
  3. 通过这种安排,我无法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
    

1 个答案:

答案 0 :(得分:0)

从您的路由表中可以看出,当您同时连接两个接口时,您有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

此命令不是持久性的,因此当您断开并重新连接该接口时,路由将被重置。