“没有到主机的路由”,直到“ping”或“路由”

“没有到主机的路由”,直到“ping”或“路由”

我在一个 WiFi 网络中有两台计算机:

  • 一个客户
  • B——服务器

有时(十次中就有一次)在 B 重启后,我无法从 A ssh 到 B:

$ ssh 192.168.201.128
ssh: connect to host 192.168.201.128 port 22: No route to host

当我尝试 ping 它时,我得到以下信息:

$ ping 192.168.201.128
PING 192.168.201.128 (192.168.201.128) 56(84) bytes of data.
From 192.168.201.133 icmp_seq=1 Destination Host Unreachable
From 192.168.201.133 icmp_seq=2 Destination Host Unreachable
From 192.168.201.133 icmp_seq=3 Destination Host Unreachable

问题可能是 ARP:

$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
_gateway                 ether   70:4c:a5:a7:c2:57   C                     wlp2s0
192.168.201.128                  (incomplete)                              wlp2s0

我试图像这样修复它:

$ sudo arp -d 192.168.201.128
$ arping -c 10 -I wlp2s0 192.168.201.128
ARPING 192.168.201.128 from 192.168.201.133 wlp2s0
Sent 10 probes (10 broadcast(s))
Received 0 response(s)

没有效果 :(

我可以通过将显示器和键盘插入 B(服务器)并执行以下任一操作来解决该问题:

1)ping A(客户端)

或者

2)在终端中输入“route”

然后一切恢复正常。

知道为什么会发生这种情况吗?我猜是 B 有时无法正确发现网关。我无法验证这一点,因为当我在 B 终端中输入“route”时,一切都恢复正常。

附注:

  1. B(服务器)上没有防火墙
  2. A(客户端)是 Ubuntu 18.04 桌面版
  3. B(服务器)是 Ubuntu 16.04 最小版本(可能缺少一些用于 arp/自动 gw 发现的重要包?)
  4. B(服务器)接口配置:
$ cat /etc/network/interfaces
auto lo
iface lo inter loopback

答案1

我建议您检查一下您的 WiFi 路由器。重启服务器后,您是否能在路由器的管理界面中看到从其内部 DHCP 服务器到您的服务器的 IP 地址租约?您能从路由器 ping 通服务器吗?路由器和服务器之间的电缆连接是否可行?

我在家里遇到了类似的问题,当时一台笔记本电脑和一部智能手机连接到由旧 TP-Link TLWR340G 路由器提供的 WiFi 网络。有时,我无法建立从智能手机到计算机的连接,尽管两个设备都成功建立了互联网连接。当出现此类问题时,我通过从计算机 ping 智能手机直到得到响应来解决这个问题,这通常是在 20 个数据包丢失之后。

答案2

我过去的做法是将这些服务器(希望访问的)聚合/添加到 hosts 文件中,然后刷新 DNS 缓存。你可以在 hot 上找到一个很好的资源来编辑 hosts 文件这里

根据 linux/unix/mac 版本的不同,您可以在/etc/hosts或上找到您的文件/private/etc/hosts

到达那里后,您可以添加一个新的服务器/主机,并添加以下格式的行:

 192.168.201.128 remote_host

您可以查看示例主办方文件

然后,您可以强制更改使 DNS 刷新有效,这听起来像是您所面临的问题。

  dscacheutil -flushcache

相关内容