はじめに
この実験では、Linux でネットワークインターフェイスの速度を確認する方法を学びます。これを達成するための一般的な 3 つの方法を探っていきます。
まず、ネットワーク設定の照会と制御に強力なユーティリティである ethtool コマンドを使用します。次に、ip link show コマンドを使ってネットワークインターフェイスを特定する方法を学びます。最後に、/sys/class/net ディレクトリの内容を調べることでネットワークインターフェイスの速度を確認する方法を実演します。
ethtool で速度を確認する
このステップでは、ethtool コマンドを使用してネットワークインターフェイスの速度を確認する方法を学びます。ethtool は、ネットワークドライバとハードウェア設定の照会と制御を行うためのコマンドラインユーティリティです。
まず、ネットワークインターフェイスを特定しましょう。ほとんどの Linux 環境では、主なネットワークインターフェイスは eth0 という名前になっていることが多いか、enpXsY のような名前が付けられています。通常、次のステップで説明する ip link show コマンドの出力を見ることで、インターフェイス名を見つけることができます。今は、インターフェイス名が eth0 であると仮定しましょう。
eth0 インターフェイスの速度を確認するには、ターミナルを開き、次のコマンドを入力します。
sudo ethtool eth0
Enter キーを押します。
次のような出力が表示されます。
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
Speed: で始まる行を探します。この行には、現在のネットワーク接続の速度が表示されます。上の例では、速度は 1000Mb/s です。
command not found のようなエラーが表示された場合は、ethtool がインストールされていないことを意味します。パッケージマネージャを使用してインストールすることができます。
sudo apt update
sudo apt install ethtool -y
インストール後、再度 sudo ethtool eth0 コマンドを試してみてください。
インターフェイス名が eth0 と異なる場合は、実際のインターフェイス名に置き換えてください。
続ける をクリックして次のステップに進みます。
ip link show でインターフェイスを確認する
前のステップでは、インターフェイス名が eth0 であると仮定して、ethtool を使用してネットワーク速度を確認しました。しかし、ネットワークインターフェイス名は様々です。このステップでは、ip link show コマンドを使用してすべてのネットワークインターフェイスをリストし、その状態を確認します。
ip コマンドは、Linux でのネットワーク設定に強力なユーティリティです。link オブジェクトはネットワークインターフェイスを管理するために使用され、show アクションはそれらの情報を表示します。
ターミナルを開き、次のコマンドを入力します。
ip link show
Enter キーを押します。
次のように、ネットワークインターフェイスがリストされた出力が表示されます。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
この出力では:
loはループバックインターフェイスで、同一マシン内の通信に使用されます。eth0はおそらく外部ネットワークに接続された主なネットワークインターフェイスです。他の環境では名前が異なる場合があります(例:enp3s0)。<BROADCAST,MULTICAST,UP,LOWER_UP>はインターフェイスの状態と機能を示します。UPはインターフェイスがアクティブであることを意味します。mtuは最大転送単位(Maximum Transmission Unit)です。state UPはインターフェイスが動作していることを確認します。
出力から主なネットワークインターフェイスの名前を特定します。通常は UP で lo ではないものです。私たちの LabEx 環境では、それは eth0 です。
これで、ethtool のようなコマンドを使用するために重要な正しいネットワークインターフェイス名を見つける方法がわかりました。
続ける をクリックして次に進みます。
/sys/class/net で速度を確認する
ethtool のようなコマンドを使用する他に、Linux のファイルシステム、具体的には /sys ディレクトリ内から直接ネットワークインターフェイスに関する情報を取得することもできます。/sys ファイルシステムは、カーネルのデータ構造へのインターフェイスを提供します。
ネットワークインターフェイスの情報は通常、/sys/class/net/ の下にあります。このディレクトリ内には、システム上の各ネットワークインターフェイスの名前を持つサブディレクトリがあります(例:eth0、lo)。
主なインターフェイス(前のステップで eth0 と特定したもの)の速度情報を見つけるには、/sys/class/net/eth0/speed ファイルを確認することができます。
ターミナルを開き、cat コマンドを使用してこのファイルの内容を表示します。
cat /sys/class/net/eth0/speed
Enter キーを押します。
出力として、1 つの数字が表示されるはずです。これは、メガビット毎秒(Mb/s)で表されるリンク速度を表しています。
1000
この出力は、eth0 インターフェイスの速度が 1000 Mb/s であることを確認しており、ethtool で見た情報と一致しています。
/sys 内のファイルを読み取ることで速度を確認するこの方法は、ethtool のような追加のツールをインストールする必要がないため便利です。これは、カーネルが提供する情報に直接アクセスする方法です。
/sys/class/net/eth0/speed というパスは、ネットワークインターフェイスの名前が eth0 であることを前提としています。インターフェイスの名前が異なる場合は、eth0 を正しい名前に置き換えてください。
これで、ネットワークインターフェイスとその速度に関する情報を取得する 3 つの異なる方法を学びました!
続ける をクリックしてこの実験を完了します。
まとめ
この実験では、Linux でネットワークインターフェイスの速度を確認する 3 つの異なる方法を学びました。まず、ネットワーク設定の照会と制御に強力なユーティリティである ethtool コマンドを使用して、インターフェイスの速度を直接表示しました。次に、ip link show コマンドを調べて、ethtool のようなツールを使用するために重要なネットワークインターフェイス名を特定しました。最後に、sysfs 仮想ファイルシステムの一部である /sys/class/net ディレクトリを調べ、インターフェイスのディレクトリ内の speed ファイルの内容を確認することで、インターフェイスの速度情報を見つける方法を学びました。これらの方法は、ネットワークインターフェイスの速度にアクセスして確認する異なる方法を提供し、状況や利用可能なツールに応じた柔軟性を提供します。



