Ubuntu 22.04 - 网络 - 有线连接显示电缆已拔出

Ubuntu 22.04 - 网络 - 有线连接显示电缆已拔出

我有一个运行 Windows 10 和 Ubuntu 22.04 LTS 的双启动系统,但似乎无法使有线连接正常工作。我尝试了以下操作:

我安装了 ethtool

sudo apt-get install ethtool

并简单地运行一个命令

sudo ethtool -s ens5f5 autoneg off speed 100 duplex full

其中 ens5f5 是我的以太网接口,之前使用 ifconfig 获得。

我发现无法使用 18.04 连接到我的家庭以太网网络 - 电缆已拔出但当我实施该解决方案并运行速度测试时,它比使用 wifi 连接慢得多。我尝试用 1000 代替速度,但它返回错误:netlink 错误:无效参数

我对 wifi 速度很满意,但很好奇为什么以太网连接似乎不想以可接受的速度工作。

答案1

问题解决了

重新安装 Ubuntu 22.04 然后运行:

sudo ethtool -s ens5f5 autoneg on speed 100 duplex full

我能够通过速度测试获得可接受的速度(下载速度为 93.45)。我将自动协商从关闭改为打开,因此我不确定这是否有帮助,或者这是 Ubuntu 全新安装的原因,还是两者兼而有之,但我会接受它。

然后,我创建了一个在启动时运行的脚本,这样我就不必在每次计算机启动时运行该命令。

首先,创建一个 Systemd 服务文件,如下例所示(我创建的文件是 /etc/systemd/system/start-ethernet.service):

[Unit]
After=network.target

[Service]
ExecStart=/usr/local/bin/start-ethernet.sh

[Install]
WantedBy=default.target

After:指示 systemd 何时运行脚本。在我们的例子中,脚本将在网络连接后运行。其他示例可能是 mysql.target 等。

ExecStart:此字段提供启动时要执行的实际脚本的完整路径

WantedBy:systemd 单元应安装到哪个启动目标中

创建一个Ubuntu系统启动时执行的脚本,如上面步骤1中指定,新脚本的路径和名称为/usr/local/bin/start-ethernet.sh。

以下是此类脚本的一个示例:

#!/bin/bash

ethtool -s ens5f5 autoneg on speed 100 duplex full

为 Systemd 服务单元和脚本设置适当的权限:

$ sudo chmod 744 /usr/local/bin/start-ethernet.sh

$ sudo chmod 664 /etc/systemd/system/start-ethernet.service

接下来启用服务单元:

$ sudo systemctl daemon-reload

$ sudo systemctl enable start-ethernet.service

现在您可以重新启动系统了。一旦重新启动,有线连接应该处于活动状态。

我找到了创建和运行启动脚本的说明:https://linuxconfig.org/how-to-run-script-on-startup-on-ubuntu-22-04-jammy-jellyfish-server-desktop然后我根据自己的需要对其进行了修改。

相关内容