Linuxシステムでネットワークのトラブルに遭遇したとき、インターフェースの状態やリンク速度などの詳細情報を確認したいことがあります。そんなときに便利なのが「ethtool」コマンドです。ethtoolはイーサネットデバイスの状態を確認したり、設定を変更したりできる強力なツールです。本記事では、ethtoolの基本的な使い方から、実際のトラブルシューティングに役立つ活用方法までをわかりやすく解説します。
ethtoolとは?
ethtool(エス・ツール)は、Linuxにおいてイーサネットインターフェースの設定と状態確認を行うためのコマンドラインツールです。ネットワークカードのリンク状態や速度、ドライバ情報など、ip
やifconfig
では見られない詳細情報を取得できます。
特にサーバー管理やネットワークのトラブル対応の現場では、「物理的にケーブルが刺さっているか」「リンクアップしているか」「通信速度は期待通りか」などの確認に用いられます。
インストールされていない場合は、以下のコマンドで導入可能です。
# Debian系
sudo apt install ethtool
# RedHat系
sudo yum install ethtool
基本的な使い方
インターフェース情報の表示
最も基本的な使い方は、ネットワークインターフェースの状態を見ることです。
ethtool eth0
出力される情報の一例:
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 1000baseT/Full
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
Link detected: yes
ここで特に注目すべきは次の3点です:
- Speed:リンク速度(例:1000Mb/s)
- Duplex:全二重か半二重か
- Link detected:物理的なリンクの有無
ネットワークリンクの状態確認
「ネットワークがつながらない」ときに、まず確認すべきはリンク状態です。以下のコマンドで確認できます。
ethtool eth0 | grep "Link detected"
Link detected: yes
であれば、物理的に接続されていることを意味します。no
であればケーブルが抜けていたり、NICやスイッチ側に問題がある可能性があります。
通信速度とデュプレックスの設定確認
インターフェースが期待どおりの速度で動作しているかを確認するには、以下の項目を見ます。
- Speed:1000Mb/sや100Mb/sなど
- Duplex:FullまたはHalf
速度が100Mb/sしか出ていないときは、NICとスイッチの自動ネゴシエーションの失敗が疑われます。
ドライバとファームウェア情報の確認
ethtoolでは、使用中のNICドライバやファームウェアのバージョンも確認できます。
ethtool -i eth0
出力例:
driver: e1000e
version: 3.2.6-k
firmware-version: 1.1-5
bus-info: 0000:00:19.0
トラブルシューティングやサポートへの問い合わせ時に非常に有用です。
統計情報を確認する
ethtoolを使うと、NICの統計情報を確認できます。エラーの発生状況やパケットの送受信数などがわかります。
ethtool -S eth0
出力例:
rx_packets: 123456
tx_packets: 123123
rx_errors: 0
tx_errors: 2
エラー数が多い場合は、ハードウェアやケーブル、設定の問題が疑われます。
自動ネゴシエーションの設定を確認・変更
確認するには:
ethtool eth0 | grep "Auto-negotiation"
変更するには(例:100Mb/s、全二重、ネゴシエーション無効):
sudo ethtool -s eth0 speed 100 duplex full autoneg off
注意:この設定は一時的であり、再起動すると元に戻ることがあります。永続化するには、/etc/network/interfaces
やNetworkManager
などで設定が必要です。
Wake-on-LANの設定を確認・変更
ethtoolではWake-on-LAN(WOL)の設定もできます。
現在の設定を確認:
ethtool eth0 | grep Wake-on
WOLを有効にする:
sudo ethtool -s eth0 wol g
この設定も、永続化が必要な場合はOS側の設定が別途必要です。
複数のインターフェースを一括確認するシェルスクリプト例
以下は、複数のNIC情報を一括表示する簡単なスクリプトです。
for iface in $(ls /sys/class/net/); do
echo "--- $iface ---"
ethtool $iface 2>/dev/null | grep -E "Speed|Duplex|Link detected"
done
サーバーの初期診断などで便利です。
まとめ
ethtool
は、Linuxにおけるネットワークトラブルの「第一歩」を支える心強いツールです。
- リンクの有無確認
- 速度とデュプレックスの確認
- NICのドライバとファームウェアの確認
- Wake-on-LANや自動ネゴシエーションの設定
- エラー統計の取得
これらをターミナルから素早く確認・設定できるのがethtoolの魅力です。ネットワークまわりの問題を解決するには、まず「ethtoolで確認する」習慣をつけると効率よく対応できるようになります。