我在 WLAN 路由器后面有 3 台机器(A、B 和 C)。我可以从 B 向 A 建立 SSH,也可以从 A 向 B 建立 SSH。C 和 A 之间的 SSH 也可以正常工作(两个目标,C->A 和 A->C)。但是当我尝试将 B 连接到 C 或将 C 连接到 B 时,总是
ssh: connect to host <HOST> port 22: No route to host
造成此错误的原因是什么?
编辑: 我犯了一个小错误——机器 A 已有线连接到路由器!
@ Marnix A. van Ammers: 这里有三个 ifconfig 输出:
机器 A:
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:74:b8
inet addr:192.168.0.9 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::211:95ff:fe1c:74b8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4602075 errors:0 dropped:0 overruns:0 frame:0
TX packets:8746230 errors:0 dropped:0 overruns:13 carrier:0
collisions:0 txqueuelen:1000
RX bytes:816857533 (816.8 MB) TX bytes:2974068829 (2.9 GB)
Interrupt:11 Base address:0x1800
机器B:
$ ifconfig wlan0
wlan0 Link encap:Ethernet Hardware Adresse XX:XX:XX:XX:f8:7a
inet Adresse:192.168.0.5 Bcast:192.168.0.255 Maske:255.255.255.0
inet6-Adresse: fe80::21b:77ff:feb6:f87a/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:39449 errors:0 dropped:0 overruns:0 frame:0
TX packets:36805 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:28118658 (28.1 MB) TX bytes:5681482 (5.6 MB)
机器C:
$ ifconfig wlan0
wlan0 Link encap:Ethernet Hardware Adresse XX:XX:XX:XX:a7:b5
inet Adresse:192.168.0.8 Bcast:192.168.0.255 Maske:255.255.255.0
inet6-Adresse: fe80::226:b6ff:fe4e:a7b5/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:1611 (1.6 KB) TX bytes:5613 (5.6 KB)
netstat 输出:
机器 A:
$ netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
机器B:
$ netstat -nr
Kernel-IP-Routentabelle
Ziel Router Genmask Flags MSS Fenster irtt Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlan0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
机器C:
$ netstat -nr
Kernel-IP-Routentabelle
Ziel Router Genmask Flags MSS Fenster irtt Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlan0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
答案1
看来多播在您的无线网络上无法可靠地工作,这会破坏 ARP。查看 B 和 C 上的 ARP 表,看看其中一台主机是否缺少另一台主机的 ARP 映射。尝试手动添加它,看看问题是否消失。然后您可以稍后解决无线网络的多播问题。
答案2
由于原始海报没有解释“路由器设置导致的问题”,因此我这样做:
一些无线路由器具有使无线连接的站点保持隔离的设置。
我们以TP-LINK TL-WR740N(V1或V2)为例。
在该型号的基于 Web 的管理的“无线高级”页面上,有复选框“启用 AP 隔离”,解释如下:
启用 AP 隔离 - 隔离所有连接的无线站,以使无线站无法通过 WLAN 相互访问。
答案3
检查机器C的网络设置。
如果您对机器 A 和 B 使用 DHCP(动态分配的 IP 地址),那么您可能也希望将机器 C 配置为使用 DHCP。
如果您使用静态 IP 寻址,请确保机器 C 具有正确的 IP 地址(最有可能的是,这意味着与机器 A 和机器 B 位于同一子网上的 IP 地址,因为您没有提到网络中的任何其他复杂性)。