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 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然後我將它們定制為我自己使用。

相關內容