当我尝试 ssh 或 ping 我 LAN 上的 Raspberry Pi 服务器时,出现“没有到主机的路由”:
$ ping 192.168.50.249
SIGINT(2) ↵ 10146 16:43:15
PING 192.168.50.249 (192.168.50.249): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
ping: sendto: No route to host
Request timeout for icmp_seq 4
ping: sendto: Host is down
Request timeout for icmp_seq 5
这不是以太网的问题,我可以成功连接。
netstat 命令看起来好的
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.50.1 0.0.0.0 UG 0 0 0 wlan0
192.168.50.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
端口 22 正在监听:
$ netstat -lpn | grep :22
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
看起来我的防火墙配置已经正确了:
$ sudo iptables-save | grep 22
-A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 22 -j ACCEPT
上面的命令一般都是针对ssh的,但是我也无法ping通。
我有一台华硕路由器,并检查了 AP 隔离是否关闭 - 结果是关闭的。
服务器本身可以通过 Wi-Fi ping 外部连接:
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=58 time=20.5 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=58 time=26.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=58 time=18.8 ms
我最好的猜测是路由器阻止了连接,但我找不到任何可以表明这一点的东西。
作为最后的手段,我也尝试重新安装操作系统,但遇到了同样的问题。
有趣的是,如果服务器本身通过以太网连接,我可以通过 Wi-Fi 访问我的服务器。
任何帮助都将不胜感激,谢谢。
编辑
服务器上的网络扫描似乎只能检测通过以太网连接的设备
$ arp -a
? (192.168.50.1) at a0:36:bc:14:75:f0 [ether] on wlan0
? (192.168.50.203) at 00:1c:2b:52:a2:0d [ether] on wlan0
? (192.168.50.10) at 70:85:c2:d3:25:ec [ether] on wlan0
答案1
不知道实际问题是什么,但我采取了备份路由器设置、恢复出厂设置并进行测试的方法 - 它成功了。
然后我恢复了设置,它仍然有效,所以无法确定问题所在。无论如何,问题现在解决了