如何追踪 Linux 笔记本电脑之间以太网 ARP 表问题的根源?

如何追踪 Linux 笔记本电脑之间以太网 ARP 表问题的根源?

在我们的家庭 LAN 上,重新启动路由器后,我无法从笔记本电脑 A ssh 到笔记本电脑 B除了通过路由器。但是,从笔记本电脑 B ping 到笔记本电脑 A 后,我可以从 A 正常连接到 B。我可以通过重新启动路由器来重现此问题。两台笔记本电脑都通过 WiFi 连接到路由器,并且没有连接其他 AP 或路由器。 LAN 上还有其他设备,我不知道有任何其他 ARP 问题。

重启路由器后演示问题:

scott@laptopa:~$ ip addr show dev wlp58s0 |grep 'inet '
    inet 192.168.8.194/24 brd 192.168.8.255 scope global dynamic noprefixroute wlp58s0
scott@laptopa:~$ ssh 192.168.8.131 echo okay
ssh: connect to host 192.168.8.131 port 443: No route to host
scott@laptopa:~$ ssh 192.168.8.131 echo okay
ssh: connect to host 192.168.8.131 port 443: No route to host
scott@laptopa:~$ ssh 192.168.8.131 echo okay
ssh: connect to host 192.168.8.131 port 443: No route to host
scott@laptopa:~$ arp |grep 9c:b6:d0:44:18:09
scott@laptopa:~$ 

尴尬的解决方法:

scott@laptopa:~$ ssh -o 'ProxyCommand ssh -q -W %h:%p [email protected]' 192.168.8.131 'ping -c 10 192.168.8.194'
PING 192.168.8.194 (192.168.8.194) 56(84) bytes of data.
64 bytes from 192.168.8.194: icmp_seq=1 ttl=64 time=66.3 ms
64 bytes from 192.168.8.194: icmp_seq=2 ttl=64 time=22.9 ms
64 bytes from 192.168.8.194: icmp_seq=3 ttl=64 time=106 ms
64 bytes from 192.168.8.194: icmp_seq=4 ttl=64 time=230 ms
64 bytes from 192.168.8.194: icmp_seq=5 ttl=64 time=252 ms
64 bytes from 192.168.8.194: icmp_seq=6 ttl=64 time=275 ms
64 bytes from 192.168.8.194: icmp_seq=7 ttl=64 time=298 ms
64 bytes from 192.168.8.194: icmp_seq=8 ttl=64 time=321 ms
64 bytes from 192.168.8.194: icmp_seq=9 ttl=64 time=38.3 ms
64 bytes from 192.168.8.194: icmp_seq=10 ttl=64 time=60.3 ms

--- 192.168.8.194 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9012ms
rtt min/avg/max/mdev = 22.950/167.478/321.937/112.761 ms

证明它现在可以正常工作:

scott@laptopa:~$ ssh 192.168.8.131 echo okay
okay
scott@laptopa:~$ arp |grep 9c:b6:d0:44:18:09
laptopb.lan              ether   9c:b6:d0:44:18:09   C                     wlp58s0

笔记本电脑A和B都运行Ubuntu 18.04,路由器是Lede(OpenWRT)17.01.4。

答案1

正如 @roaima 所建议的,我删除了所有iptables规则并再次测试。即使在多次重新启动路由器后,我也遇到了零问题。然后我iptables重新添加了规则并进一步测试。我的问题仍然是零。

简而言之,我无法再重现这个问题,所以也许它是随机的,正如 @dirkt 所经历的那样。也许是网络上的其他设备。

相关内容