我目前已连接 wifi ( wlan0
) 并插入以太网电缆 ( eth0
)。以下命令
ping -I eth0 www.google.com
没有丢包,但是 ping 的时候eth0
ping -I wlan0 www.google.com
返回Host Unreachable
。
如果我运行route add default gw 10.0.0.1 wlan0
,pingwlan0
可以正常工作,但 pingeth0
失败且不显示任何消息。
以下是我的一些配置:
:~$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 74:d0:2b:07:3a:dd
inet addr:192.168.1.129 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::76d0:2bff:fe07:3add/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:33194 errors:0 dropped:0 overruns:0 frame:0
TX packets:23759 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:31065847 (31.0 MB) TX bytes:3057118 (3.0 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:21018 errors:0 dropped:0 overruns:0 frame:0
TX packets:21018 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:10519343 (10.5 MB) TX bytes:10519343 (10.5 MB)
wlan0 Link encap:Ethernet HWaddr 6c:71:d9:5f:6b:7f
inet addr:10.0.0.6 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::6e71:d9ff:fe5f:6b7f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:34286 errors:0 dropped:0 overruns:0 frame:0
TX packets:26667 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25986919 (25.9 MB) TX bytes:3409031 (3.4 MB)
答案1
是的,没错。当您从接口 ping 时,它仍会遵循路由,只是使用接口 IP 地址作为源。
因此,当您的默认路由是通过 192.168.1.254 并且您从 10.0.0.6 进行 ping 时,您将向 192.168.1.254 发送一个数据包,源地址为 10.0.0.6。
接下来发生的情况取决于路由器,但显然它不会高兴。
最好的办法是让网络扁平化。您有两个子网在运行,除非是故意为之,否则我会禁用无线 AP 上的 DHCP,然后通过 LAN 端口到 LAN 端口将 AP 连接到主路由器。这样,两个接口都会获得 10.0.0.x 地址,一切都会正常工作。