我有一个运行 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然后我根据自己的需要对其进行了修改。