Linux でネットワークインターフェイスの速度設定を確認する方法

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linux でネットワークインターフェイスの速度を確認する方法を学びます。これを達成するための一般的な 3 つの方法を探っていきます。

まず、ネットワーク設定の照会と制御に強力なユーティリティである ethtool コマンドを使用します。次に、ip link show コマンドを使ってネットワークインターフェイスを特定する方法を学びます。最後に、/sys/class/net ディレクトリの内容を調べることでネットワークインターフェイスの速度を確認する方法を実演します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/cat -.-> lab-558737{{"Linux でネットワークインターフェイスの速度設定を確認する方法"}} linux/ip -.-> lab-558737{{"Linux でネットワークインターフェイスの速度設定を確認する方法"}} linux/apt -.-> lab-558737{{"Linux でネットワークインターフェイスの速度設定を確認する方法"}} end

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 と異なる場合は、実際のインターフェイス名に置き換えてください。

続ける をクリックして次のステップに進みます。

前のステップでは、インターフェイス名が 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 はインターフェイスが動作していることを確認します。

出力から主なネットワークインターフェイスの名前を特定します。通常は UPlo ではないものです。私たちの LabEx 環境では、それは eth0 です。

これで、ethtool のようなコマンドを使用するために重要な正しいネットワークインターフェイス名を見つける方法がわかりました。

続ける をクリックして次に進みます。

/sys/class/net で速度を調べる

ethtool のようなコマンドを使用する他に、Linux のファイルシステム、具体的には /sys ディレクトリ内から直接ネットワークインターフェイスに関する情報を取得することもできます。/sys ファイルシステムは、カーネルのデータ構造へのインターフェイスを提供します。

ネットワークインターフェイスの情報は通常、/sys/class/net/ の下にあります。このディレクトリ内には、システム上の各ネットワークインターフェイスの名前を持つサブディレクトリがあります(例:eth0lo)。

主なインターフェイス(前のステップで 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 ファイルの内容を確認することで、インターフェイスの速度情報を見つける方法を学びました。これらの方法は、ネットワークインターフェイスの速度にアクセスして確認する異なる方法を提供し、状況や利用可能なツールに応じた柔軟性を提供します。