用語辞典・コマンド・確認ツール

ifconfig

ifconfigとは

ifconfig(イフコンフィグ/インターフェース・コンフィグ)は、Unix系OSでネットワークインターフェース設定を表示・変更する従来のコマンドです。名称はinterface configuration(インターフェース・コンフィギュレーション)に由来します。

引数なしでは通常、稼働中インターフェースのアドレス、フラグ、MTU、ハードウェアアドレス、送受信カウンター等を表示し、-aで停止状態を含む利用可能なインターフェースを表示します。インターフェース名を指定すると、その一つを詳しく確認できます。

ifconfigは一つの共通規格ではなく、Linuxのnet-tools版、BSD、macOS等で構文と出力が異なります。Linuxでは現在、iproute2のipコマンドがより広い機能を扱います。

カーネルが持つ有線・無線・ループバック・非稼働インターフェースの状態をカードごとに読むアドレス、リンクフラグ、MTU、送受信カウンターと変更操作を一つずつ分ける
端末上のifconfigが有線、無線、ループバック、停止中のインターフェースを読み、各カードへUP・RUNNINGのフラグ、IPv4・IPv6アドレス、ネットマスク、ブロードキャスト、ハードウェアアドレス、MTU、送受信カウンターを表示する構成のピクトグラム図解
図1カウンターは通常、起動またはリセット後からの累積です。現在の一秒間の速度を直接表す値ではありません。

一つのインターフェースブロックを読む

Interfaceカーネル内のネットワーク機器名

有線、無線、ループバック、ブリッジ、トンネル等を名前と種類から区別します。

Flags管理状態と能力

UP、RUNNING、BROADCAST、MULTICAST、LOOPBACK等のビットを別々に読みます。

Addressesプロトコルごとの自端末アドレス

IPv4・IPv6、ネットマスクまたはプレフィックス、ブロードキャスト、適用範囲がインターフェースへ属します。

Link層ハードウェアアドレスと媒体

Ethernet系ならMACアドレス、媒体に応じたリンク情報が表示されます。

MTUインターフェースで扱う最大パケット寸法

経路全体のMTUやアプリケーションペイロード上限と同じとは限りません。

RX / TX受信・送信の累積統計

パケット・バイト、エラー、破棄、取りこぼし等を前回値との差と時間で比較します。

UPとRUNNINGは同じ状態ではない

UPは管理上有効にされていることを示し、RUNNINGや下位層の状態はドライバーや物理リンクが動作可能であることを示します。UPでもケーブルが抜けている、Wi-Fiへ未接続、認証待ちという場合があります。

反対に、フラグの意味と表示条件はOS・ドライバーで異なります。Internet疎通まで確認するにはアドレス、経路、DNS、リンク状態、ゲートウェイへの到達を別に見ます。

アドレス、ネットマスク、ブロードキャストを一組で読む

inetはIPv4アドレス、inet6はIPv6アドレスを示す表記として使われます。IPv4ではネットマスクとブロードキャスト、IPv6ではプレフィックス長さと適用範囲等が同じインターフェースに並びます。

一インターフェースへ複数アドレスを持てます。IPv6のリンクローカル・グローバル・一時的な、IPv4の別名等を一つの「現在のIP」へまとめません。送信先と経路に応じて送信元アドレスが選ばれます。

ハードウェアアドレスは利用者の恒久IDではない

Ethernet系インターフェースではether等としてMACアドレスが表示されます。仮想インターフェース、ランダム化されたWi-Fiアドレス、機器交換、設定変更により値は変わり得ます。遠隔のインターネット相手へそのまま届く値でもありません。

Linuxの古いifconfigはioctlを利用し、一部の長いリンク層アドレスを完全表示できない制約があります。ハードウェア情報を詳しく扱うときはipリンク等を使います。

RX・TXカウンターは差分で見る

RXは受信、TXは送信です。パケット数、バイト数、エラー、破棄、取りこぼし、搬送波エラー、衝突などが表示されますが、項目の定義とドライバーが集計できる範囲は同一ではありません。

累積値だけで「現在遅い」とは判断できません。時刻を置いて二回採り、増分を時間で割り、どのエラーが増えたかを見ます。破棄は常に物理故障ではなく、バッファー不足やカーネル方針等でも増えます。

変更操作は現在の通信を切る

インターフェースのupdown、アドレス、ネットマスク、MTUなどを変更できます。リモートログインで利用中のインターフェースをdownにしたりアドレスを変えたりすると、管理接続を失います。変更前の出力と経路を保存し、ローカルコンソール等の復旧手段を用意します。

コマンドによる手動変更は、多くの場合、再起動やネットワーク管理サービスの再適用で消えます。永続設定はNetworkManager、systemd-networkd、Linuxディストリビューション固有の設定ファイル、BSD・macOSの管理機構などへ正しく記述します。一時的に設定できたことと、起動後も保たれることを分けます。

Linuxではipコマンドへ機能を分ける

Linuxのnet-tools版ifconfigは従来ツールで、現代のアドレス・リンク機能をすべて表せません。ip linkは機器とリンク、ip addressはプロトコルアドレス、ip routeは経路、ip neighbourは近隣表を扱います。

一方、BSDやmacOSではifconfigが現在も標準的なインターフェース管理ツールです。「ifconfigは全Unixで廃止」とは言えません。対象OSのマニュアルを読み、その実装の構文を使います。

ifconfigに表示されない設定

デフォルトゲートウェイは経路表、DNSサーバーはリゾルバー設定、Wi-FiのSSID・暗号・認証は無線管理、ファイアウォールはパケット絞り込み機構にあります。パブリックIPもNATの外側で決まる場合があります。

ifconfigだけを貼り付けてネットワーク全体を診断せず、インターフェース、経路、近隣機器、DNS、ソケット、パケットの層ごとに必要なツールを選びます。

ifconfigはUnix系インターフェースのアドレス・フラグ・MTU・統計を表示・変更する従来ツールです。OSごとの差、管理状態と実リンク、累積カウンターと現在速度、一時変更と永続設定を分けて読みます。

Linux net-tools版ifconfigのinterface表示・変更、flags、MTU、RX/TX出力、ip link推奨を含む制約:ifconfig(8) manual page

関連用語