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エラー: 無効な引数

Wi-Fi の速度には満足していますが、イーサネット接続が許容できる速度で動作しない理由がわかりません。

答え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

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そして、それを自分用にカスタマイズしました。

関連情報