![不同网络之间无法 ping 通](https://linux22.com/image/1552772/%E4%B8%8D%E5%90%8C%E7%BD%91%E7%BB%9C%E4%B9%8B%E9%97%B4%E6%97%A0%E6%B3%95%20ping%20%E9%80%9A.png)
我有以下连接:PC/Eth<==> Eth/raspberrypi/WLAN <===> WLAN/RPi-2
问题:
我无法从 RPi-2 ping 通 PC,反之亦然
故障排除:
- PC 可以 ping 通 raspberrypi 以太网和 raspberrypi WLAN
- RPi-2 可以 ping 通树莓派以太网和树莓派 WLAN
- PC 上的防火墙已禁用
- [更新] raspberrypi 没有回复 arp 请求!不知道为什么
日志:
知识产权摘要- PC.eth = 192.168.137.1
- raspberrypi.eth = 192.168.137.254
- raspberrypi.wlan = 10.1.1.254
- rpi-2.wlan = 10.1.1.4
route print
10.1.1.0 255.255.255.0 Auf Verbindung 192.168.137.1 38
C:\WINDOWS\system32>ping 10.1.1.254
Ping wird ausgeführt für 10.1.1.254 mit 32 Bytes Daten:
Antwort von 10.1.1.254: Bytes=32 Zeit<1ms TTL=64
Antwort von 10.1.1.254: Bytes=32 Zeit<1ms TTL=64
Ethernet-Adapter Ethernet 2:
Verbindungsspezifisches DNS-Suffix:
Verbindungslokale IPv6-Adresse . : fe80::5897:b371:242e:36dc%10
IPv4-Adresse . . . . . . . . . . : 192.168.137.1
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . :
C:\WINDOWS\system32>tracert 10.1.1.4
Routenverfolgung zu 10.1.1.4 über maximal 30 Hops
1 DESKTOP-R [192.168.137.1] meldet: Zielhost nicht erreichbar.
raspberyypi:
:~ $ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.137.1 0.0.0.0 UG 202 0 0 eth0
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.137.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
pi@raspberrypi:~ $ ping 192.168.137.1
PING 192.168.137.1 (192.168.137.1) 56(84) bytes of data.
64 bytes from 192.168.137.1: icmp_seq=1 ttl=128 time=0.567 ms
64 bytes from 192.168.137.1: icmp_seq=2 ttl=128 time=0.599 ms
^C
--- 192.168.137.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1032ms
rtt min/avg/max/mdev = 0.567/0.583/0.599/0.016 ms
pi@raspberrypi:~ $ ping 10.1.1.4
PING 10.1.1.4 (10.1.1.4) 56(84) bytes of data.
64 bytes from 10.1.1.4: icmp_seq=1 ttl=64 time=7.84 ms
64 bytes from 10.1.1.4: icmp_seq=2 ttl=64 time=23.3 ms
RPi-2
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.1.254 0.0.0.0 UG 0 0 0 wlan0
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.137.0 10.1.1.254 255.255.255.0 UG 0 0 0 wlan0
:~ $ ping 192.168.137.254
PING 192.168.137.254 (192.168.137.254) 56(84) bytes of data.
64 bytes from 192.168.137.254: icmp_seq=1 ttl=64 time=521 ms
64 bytes from 192.168.137.254: icmp_seq=2 ttl=64 time=13.9 ms
~ $ traceroute 192.168.137.1
traceroute to 192.168.137.1 (192.168.137.1), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
更新
raspberrypi 上的 tcpdump 日志
09:58:35.708389 ARP, Request who-has 10.1.1.4 tell 192.168.137.1, length 46
09:58:36.261002 ARP, Request who-has 10.1.1.4 tell 192.168.137.1, length 46
09:58:37.260683 ARP, Request who-has 10.1.1.4 tell 192.168.137.1, length 46
09:58:38.267982 ARP, Request who-has 10.1.1.4 tell 192.168.137.1, length 46
09:58:39.263476 ARP, Request who-has 10.1.1.4 tell 192.168.137.1, length 46
但它回复了自己的界面
10:28:12.777650 ARP, Request who-has 10.1.1.254 (b8:27:eb:7e:5b:b5) tell 192.168.137.1, length 46
10:28:12.777945 ARP, Reply 10.1.1.254 is-at b8:27:eb:7e:5b:b5, length 28
此时,我认为 Linux 没有回复 PC 的 ARP 请求(或者更具体地说 WLAN0 没有回复)
答案1
您的 PC 需要一个默认网关(标准网关) 进行配置,然后它才能到达除其自身之外的任何子网。
您可以在适配器设置窗口或管理员命令提示符中进行设置,如下所示:
route add 0.0.0.0 mask 0.0.0.0 192.168.137.254
RPi-2 的跟踪路由让我认为还有其他事情发生,所以如果不能完全解决问题,请报告。
答案2
作为一种解决方法,我在 raspberrypi 上的 WLAN0 和 eth0 之间建立了一个桥接器,现在它可以正常工作了。