我今天开始出现一种奇怪的行为,我很难描述。以前,一切正常!并且该网络上还有更多客户端和计算机:
一台 Ubuntu 22.04 台式机使用 LAN 电缆连接到路由器,无法访问多个互联网网站,包括(但不仅限于):YouTube、Twitter、GitHub 等。其他可以正常连接的(但不仅限于)网站包括 Facebook、Gmail、Google 搜索引擎。
此外 - 安装在该桌面上的虚拟机共享其互联网连接(桥接 - 意味着它们从同一个路由器获取本地 IP),同时连接到相同的未访问站点而不通过桌面。
并且,与 LAN 上所有其他 PC 和 NAS 的连接均已正常完成。
为了确保这不是 Web 浏览器的问题,即使使用命令行推送到 git 也失败了。
试验
那么我做了什么(全部屈服同样的失败结果):
- 尝试使用私人浏览(Fire Fox)进行连接。
- 清除所有缓存和历史记录。
- 禁用所有浏览器插件。
- 重新启动。禁用并重新启用 LAN。
- 禁用 LAN 并通过 WiFi 连接。
- 已安装 Chromium。
- 重新启动路由器(包括电话公司调制解调器)。
“解决”了什么?
连接到其他网络使用相同的电缆(到达相同的外部IP)。
答案1
这可能是由电源管理或自动协商引起的。如果电源管理无法“正确处理”,那么显然 NIC 会暂时无法工作,而如果自动协商被破坏,那么您将无法建立任何连接。
准备工作:ip link
获取以太网接口名称。通常是 2 号。
步骤#1:确保自动协商不会改变你的情况。
sudo ethtool -s eth0 speed 1000 duplex full autoneg off
显然,只需切换eth0无论您的接口名称是什么。您可以通过-H选项,它将解释更多设置。
步骤#2:关闭电源管理。
sudo echo off > /sys/class/net/eth0/power/control
再次更换eth0替换为您的接口名称。这将禁用此接口上的电源管理,直到重新启动。
步骤#3:重新测试。
再次运行所有程序。
如果您测试并且想要永久保留此设置,则必须/etc/rc.local
在启动后将这些行放入运行中。
如果这两种方法都不管用,那么问题可能出在电脑和路由器之间的线路上。小型 RJ-45 连接器可能内部断裂,或者线路被其他物体踩踏或刺穿。如果您在其他地方测试了机器,并且它正常工作,则尤其如此。
希望这会有所帮助。 -肖恩
编辑
将这些添加到/etc/rc.local
:
#!/bin/bash
ethtool -s eth0 speed 1000 duplex full autoneg off
echo off > /sys/class/net/eth0/power/control
保存文件,然后执行:chown root:root /etc/rc.local
, 和chmod +x /etc/rc.local
。此后每次启动时它都会以这种方式出现。请记住使用您的网络接口名称不是eth0。