有一段时间,我遇到了一个问题,我的 3 台运行 Ubuntu 20.04.3 LTS 的机器会同时断开连接,并且永远不会重新连接,直到我拔下并重新连接以太网电缆。这种情况在过去 6 个月内发生了大约 50 次 - 有时我记录它发生在 3 天后,有时是 7 天,有一次是 8 天……非常随机,但断开连接总是同时发生的。
它们都与我运行 Windows 10 的其他机器连接到同一个交换机/路由器/互联网连接,但它们从未出现过互联网问题。
我尝试将一台机器更新到 20.04.4 LTS,并将另一台机器移至具有不同交换机/路由器/互联网连接的另一个房间,但这些操作均未产生任何变化。您对此有何看法?我是否遗漏了什么?有关系统规格,请参见下文:
机器 1:Intel Core i5-10400F,配备 16 GB DDR4
机器 2:配备 32 GB DDR4 的 Intel Core i9-10850K
机器 3:Intel Core i5-6600K,配备 8 GB DDR4
答案1
在您描述的缺陷变得明显的状态下进行一些测试。测试结果将帮助您确定原因。
您使用的是 IPv4、IPv6 还是同时使用两者?了解这一点很重要,因为您可以根据协议来集中测试。在下面的一些测试中,我将首先给出 IPv4 的命令,然后给出 IPv6 的命令。
IP地址
ip addr
确保设备具有有效地址并且其接口具有UP
标志。
路由表
ip route
ip -6 route
每一行都是一条路由规则。其中应该有一个默认网关。
网络邻居
ip neigh
ip -4 neigh
ip -6 neigh
该列表必须包含有效条目以及可用邻居的地址。默认网关的 IP 地址必须包含在其中。
如果列表为空或没有具有“REACHABLE”标志的邻居,则尝试通过 ping LAN 上的已知目标在网络上进行通信,然后重复该ip neigh
命令。
物理接口状态
sudo ethtool eth0
将名称替换为顶部eth0
命令检测到的接口的真实名称。ip a
命令输出示例:
...
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: on (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
请注意以下几行:
Speed: 1000Mb/s
Duplex: Full
...
Link detected: yes
- 链接必须是
yes
。 - 对于非常老旧的交换机,速度应为
1000Mb/s
或。新网络的速度为。这也是一个不错的数字。:-)100Mb/s
10000Mb/s
- 必须是双面的
Full
。
DNS
dig www.google.com
如果邻近服务器在故障期间响应 ping,但 Internet 上按名称指定的目标不可用,则执行另一项测试。
该命令将显示 DNS 服务器的地址以及名称到地址解析的工作方式。
其他可能的原因
- 安全问题 #1,802.1x。如果网络上使用 802.1x 身份验证,当服务器证书出现故障或过期时,端口可能会出现问题。在获得新证书之前,端口将被断开或服务器被隔离。
- 交换机端口的状态
Error disabled
。当交换机评估端口上的通信有缺陷(例如端口抖动等)时,可能会发生这种情况。 - 安全问题 #2,ARP 检查、DHCP 监听。交换机端口上的 ARP 广播过多,或者端口上预期只有一个地址但实际有多个地址。