我有一個運行 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 error: Invalid argument
我對 wifi 速度感到滿意,但很好奇為什麼乙太網路連接似乎不想以可接受的速度工作。
答案1
問題解決了
重新安裝 Ubuntu 22.04 然後運行:
sudo ethtool -s ens5f5 autoneg on speed 100 duplex full
透過速度測試,我能夠達到可接受的速度(下載速度為 93.45)。我將 autoneg 從關閉更改為打開,所以我不確定這是否有幫助,或者它是 Ubuntu 的全新安裝還是兩者的組合,但我會接受它。
然後,我創建了一個在啟動時運行的腳本,這樣我就不必在每次電腦啟動時運行該命令。
首先,建立一個 Systemd 服務文件,如下例所示(我建立的文件是 /etc/systemd/system/start-ethernet.service):
[Unit]
After=network.target
[Service]
ExecStart=/usr/local/bin/start-ethernet.sh
[Install]
WantedBy=default.target
之後:指示 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然後我將它們定制為我自己使用。