![Ping 没有回显,但 tcpdump 可以看到它](https://linux22.com/image/672469/Ping%20%E6%B2%A1%E6%9C%89%E5%9B%9E%E6%98%BE%EF%BC%8C%E4%BD%86%20tcpdump%20%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%E5%AE%83.png)
我正在努力在 WPA2-Enterprise 网络上设置 Raspberry Pi。现在它从 和 上的 DHCP 服务器获取 IP 地址eth0
。wlan0
此 pi 正在去往无法访问以太网端口的地方,因此需要通过 wifi 工作。我可以通过提供给 的 IP 地址 ping、ssh 或以其他方式访问 pi eth0
。但是,我无法通过任何方式访问提供给 的 IP 地址wlan0
。当我 ping 提供给 的 IP 时wlan0
,tcpdump
会看到回显请求(甚至会解析主机名)。我不明白为什么回显没有被路由回其来源。
以下是一些程序的输出,以供参考:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 xxx.yyy.142.1 0.0.0.0 UG 202 0 0 eth0
0.0.0.0 xxx.yyy.234.1 0.0.0.0 UG 303 0 0 wlan0
xxx.yyy.142.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
xxx.yyy.234.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
# ifconfig
eth0 Link encap:Ethernet HWaddr ...:bd
inet addr:xxx.yyy.142.226 Bcast:xxx.yyy.142.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:72200 errors:98 dropped:740 overruns:0 frame:0
TX packets:3381 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4682949 (4.4 MiB) TX bytes:331697 (323.9 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:108 errors:0 dropped:0 overruns:0 frame:0
TX packets:108 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9216 (9.0 KiB) TX bytes:9216 (9.0 KiB)
wlan0 Link encap:Ethernet HWaddr ...:e5
inet addr:xxx.yyy.234.195 Bcast:xxx.yyy.234.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:271 errors:0 dropped:49 overruns:0 frame:0
TX packets:199 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:47373 (46.2 KiB) TX bytes:26125 (25.5 KiB)
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
# ip route
default via xxx.yyy.142.1 dev eth0 metric 202
default via xxx.yyy.234.1 dev wlan0 metric 303
xxx.yyy.142.0/24 dev eth0 proto kernel scope link src xxx.yyy.142.226 metric 202
xxx.yyy.234.0/24 dev wlan0 proto kernel scope link src xxx.yyy.234.195 metric 303
# ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
当我 ping xxx.yyy.234.195 时,tcpdump
显示:
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:34:31.664494 IP <My Computer> > raspberrypi: ICMP echo request, id 1, seq 1426, length 40
16:34:36.452314 IP <My Computer> > raspberrypi: ICMP echo request, id 1, seq 1427, length 40
16:34:41.451536 IP <My Computer> > raspberrypi: ICMP echo request, id 1, seq 1428, length 40
16:34:46.464017 IP <My Computer> > raspberrypi: ICMP echo request, id 1, seq 1429, length 40
我使用的是大学网络,因此无法重新配置网络。我没有足够的网络经验来自己解决这个问题,因此我非常感谢任何能给我的帮助。
先感谢您。
答案1
看起来像是路由问题。
RasPi 上有两个默认网关,并且它通过 eth0 和 wlan0 直接路由到各自的网络。如果您从具有 eth0 网络中地址的主机 ping wlan0 地址,RasPi 将尝试从 eth0 发送回复,而不是 wlan0(但源地址为 wlan0)。
如果网络之间存在状态防火墙,它就可以打破这种不对称路由。
尝试断开eth0(关闭它,拔掉电缆或类似的东西)以删除冗余路由,然后再次ping wlan地址。