Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Linux Network Interfaces: Find the Right Device, State, and IP

2026年10月07日に「Dev.to」が公開したITニュース「Linux Network Interfaces: Find the Right Device, State, and IP」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Linuxでネットワーク不調時、まずインターフェースの存在、状態、IPアドレスを把握するのが重要だ。`ip`コマンドを中心に、デバイスの有無、稼働状況、IPアドレスを確認する方法を解説。これにより、問題の切り分けと迅速なトラブルシューティングが可能になる。

ITニュース解説

Linuxシステムでネットワーク接続に問題が生じた際、最初に何を確認すれば良いか、その具体的な手順とコマンドについて解説する。ネットワークインターフェースの状態やIPアドレスの有無を把握することが、問題解決の第一歩となる。

まず、手早くシステム全体のネットワークインターフェースの概要を知りたい場合、「ip -br addr show」コマンドを実行する。このコマンドは、各インターフェースの名前、現在の状態、そして割り当てられているIPアドレスを簡潔に一行で表示してくれる。もしIPアドレスは不要で、インターフェースの名前と物理的なリンクの状態だけを確認したいのであれば、「ip -br link show」を使うと良い。さらに、単にインターフェースの名前だけを知りたい場合は、「ls /sys/class/net」コマンドが役立つ。このコマンドは、カーネルが認識しているネットワークデバイスの名前を、ファイルシステム上のパスから直接読み出すため、非常に軽量でスクリプトなどでも利用しやすい。

現代のLinuxシステムでは、「iproute2」パッケージに含まれる「ip」コマンドが、ネットワーク関連の情報を確認する際の標準的なツールとなっている。例えば、「ip link show」は、カーネルが認識しているすべてのネットワークインターフェースを一覧表示する。このリストには、現在ネットワークケーブルが接続されていなかったり、設定がされていないために「ダウン」しているインターフェースも含まれる。インターフェースだけでなく、そのインターフェースに割り当てられているIPアドレスも確認したい場合は、「ip addr show」を実行する。このコマンドは「ip a」と短縮して入力することも可能だ。もし特定のインターフェース、例えば「enp0s3」の状態だけを知りたい場合は、「ip addr show enp0s3」のようにインターフェース名を指定して実行する。出力結果に「inet」の行がない場合、そのインターフェースにはIPv4アドレスが割り当てられていないことを意味するが、これはインターフェースがダウンしているか、未設定であるか、あるいはIPv6のみを使用している場合など、必ずしも異常ではない。

特定のインターフェースが「up」(有効な状態)としてマークされているものだけを素早く確認したい場合、「ip -br link show up」またはアドレス情報も合わせて「ip -br addr show up」を利用する。しかし、「up」という状態表示には注意が必要だ。これはインターフェースがシステム管理者によって「有効化」されていることを示すものであり、物理的なネットワークケーブルが実際に接続されていて通信が可能であることまでは保証しない。例えば、イーサネットインターフェースはケーブルが接続されていなくても「up」の状態になることがある。

「ip link show」の完全な出力はより詳細な情報を提供する。例えば、「2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000」のような行は、インターフェース名が「enp0s3」であることを示し、「link/ether 08:00:27:4a:1b:3e brd ff:ff:ff:ff:ff:ff」の行はそのインターフェースのMACアドレスを示している。山括弧で囲まれた「<BROADCAST,MULTICAST,UP,LOWER_UP>」のようなフラグや「state UP」の部分は、リンクの状態を説明する。ここで重要なのは、インターフェースがシステムに「存在すること」、「管理上有効であること」、そして「物理的に接続されていること」はそれぞれ異なる概念だという点である。これらを混同しないように理解しておく必要がある。

もし特定のイーサネットデバイスが物理的なリンクを検出しているか、つまりケーブルが正しく接続されているかを確認したい場合は、「ethtool [デバイス名]」コマンドが非常に有効だ。このコマンドは、指定されたデバイスの詳細な情報、特にリンク検出に関する情報を提供してくれる。「ethtool」は、すでにインターフェース名がわかっている場合にその詳細を調べるためのツールであり、インターフェース名自体を特定するには「ip link show」や「ls /sys/class/net」を使うべきである。

デスクトップやラップトップのLinuxシステムでは、「NetworkManager」というネットワーク接続管理ツールが動作していることが多い。NetworkManagerを使用しているシステムでは、「nmcli device status」コマンドを実行すると、デバイスの種類や接続の状態が表示される。このコマンドは、保存されているアクティブな接続プロファイルも表示できるという点で、「ip」コマンドとは異なる情報を提供する。「ip」コマンドがカーネルレベルのインターフェース詳細を報告するのに対し、NetworkManagerはユーザーが設定した接続プロファイルを管理するため、特にWi-Fi接続の確認時には非常に有用だ。ただし、すべてのLinuxシステムがNetworkManagerを実行しているわけではない。最小限のサーバー環境などでは、別のネットワーク設定システムが使われていることが多く、「nmcli」コマンド自体が存在しなかったり、有用な情報を返さないこともある。無線デバイスに特化した情報を確認したい場合は、「iw dev」コマンドが利用できる(「iw」ユーティリティがインストールされている場合)。有線、無線、ループバック、仮想インターフェースを含め、すべてのインターフェースの包括的なリストは「ip link show」で確認できる。

ネットワークインターフェースの名前は、システムによって多様なパターンがある。「eth0」や「wlan0」といった伝統的な名前もあれば、「enp0s3」、「ens33」、「wlp2s0」といった予測可能な名前が使われることもある。コンテナ、仮想マシン、物理マシンといった環境の違いによって、命名パターンは異なるのが一般的だ。「lo」はループバックインターフェースと呼ばれ、マシン自身が自分と通信するために使われる。名前に「en」を含むものは一般的にイーサネットデバイスを、「wl」を含むものは無線デバイスを識別することが多い。多くのシステムでは、デバイスが検出された順序ではなく、ハードウェアやデバイスの物理的な位置に基づいて予測可能な名前が付けられている。そのため、別のマシンからネットワーク設定をコピーしてきても、インターフェース名が異なり、正しく機能しないことがあるので、ネットワーク設定を変更する前には必ず「ip -br link show」で実際のインターフェース名を確認することが重要だ。

ネットワークの問題が発生した際の、実用的なトラブルシューティングの順序を以下に示す。まず、ネットワークインターフェースがシステムに「存在しているか」を「ip link show」または「ls /sys/class/net」で確認する。次に、そのインターフェースが「有効になっているか」を「ip -br link show」で状態をチェックする。その後、「IPアドレスが割り当てられているか」を「ip -br addr show」で確認し、「inet」や「inet6」のエントリを探す。もしNetworkManagerが使われている環境であれば、「接続マネージャーが接続を報告しているか」を「nmcli device status」で確認する。最後に、「システムが期待するルートを持っているか」という点も重要だが、これはインターフェースやアドレスのリストとは別の問題で、ルーティングテーブルを別途確認する必要がある。

これらのコマンドは、カーネルが現在認識しているインターフェースの状態を教えてくれるが、ハードウェアの故障やドライバの検出といった根本的な問題を直接修正するものではない。もし期待するインターフェースが完全にリストに表示されない場合、それはハードウェアかドライバの問題である可能性が高い。インターフェースは存在するがIPアドレスが割り当てられていない場合は、デバイス自体が存在しないと仮定するのではなく、そのインターフェースのネットワーク設定に焦点を当てて問題を調査すべきだ。また、ネットワークの各レイヤーを分離して考えることも大切だ。インターフェースが「up」の状態であってもIPアドレスが割り当てられていないことはあり、IPアドレスが割り当てられているだけでリモートサービスに到達できるとは限らない。特定のサービスがローカルでリッスンしているかを確認するには、「ss」などのツールを使ってソケットやポートの状態を検査する必要がある。

ほとんどの初期チェックでは、「ip -br addr show」が最も有用な最初のコマンドとなる。より詳細なインターフェース情報が必要な場合は「ip link show」に切り替え、インターフェース名だけを知りたい場合は「ls /sys/class/net」を使用し、NetworkManagerの接続状態を確認する必要がある場合には「nmcli device status」を利用すると良い。

関連コンテンツ

関連IT用語