Linuxを使っていると「IPアドレスを確認したい」という場面にたびたび遭遇します。たとえば、ネットワーク設定の確認やサーバーのトラブル対応などです。そんなときに活躍するのが「ip addr show
」というコマンドです。このコマンドは、IPアドレスだけでなく、ネットワークインターフェースの情報を詳しく表示できる便利なツールです。本記事では、初心者でもわかりやすいように「ip addr show
」の基本的な使い方から、よく使うオプション、実用的な使用例まで詳しく解説します。
「ip addr show」とは?
「ip addr show
」は、Linuxのネットワーク設定を確認・管理するためのコマンド群である ip
コマンドの一部です。具体的には、ネットワークインターフェースごとのIPアドレスや状態(UP/DOWN)、MACアドレスなどの情報を一覧表示するために使用されます。
従来は「ifconfig
」コマンドがよく使われていましたが、現在では非推奨とされており、代わりに「ip
」コマンドが標準となっています。
コマンドの基本構文
ip addr show
このコマンドを実行するだけで、現在のすべてのネットワークインターフェースに関する情報が表示されます。シンプルですが、出力される情報は多く、慣れていないと読みづらいと感じるかもしれません。
出力結果の読み方を解説
実際の出力例をもとに、重要な情報の読み方を説明します。
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
link/ether 00:0c:29:6d:3f:12 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33
valid_lft 86378sec preferred_lft 86378sec
ens33
:ネットワークインターフェースの名前(例:eth0、ens33など)inet 192.168.1.100/24
:IPv4アドレス(この場合、192.168.1.100)/24
:サブネットマスク(CIDR表記)link/ether
:MACアドレス<BROADCAST,MULTICAST,UP>
:インターフェースの状態(UPは有効、DOWNは無効)
特定のインターフェースだけを表示する方法
すべてのインターフェース情報が表示されると、必要な情報を見つけるのが大変なこともあります。そんなときは、インターフェースを指定して表示できます。
ip addr show dev ens33
このように「dev
」オプションを使えば、特定のデバイスだけを表示することができます。インターフェース名(ens33など)は、環境によって異なるため注意しましょう。
IPv4アドレスだけを確認するには?
「ip addr show
」の出力は情報量が多いので、IPアドレスだけをサクッと確認したい場合には、grep
コマンドを組み合わせると便利です。
ip addr show | grep "inet "
このコマンドで、IPv4のアドレスだけを抽出できます(inet6
はIPv6です)。
さらにインターフェース名とIPアドレスだけを表示したいなら、次のように awk
などを使ったスクリプトにしても便利です。
ip -o -4 addr show | awk '{print $2, $4}'
IPv6アドレスの確認方法
IPv6を利用している環境では、inet6
という行にIPv6アドレスが表示されます。
ip addr show | grep "inet6"
また、IPv6だけを一覧で見たい場合にも同様に awk
を使うことができます。
ip -o -6 addr show | awk '{print $2, $4}'
ルート権限が必要な場合はsudoを使用
多くのケースでは「ip addr show
」は一般ユーザーでも実行可能ですが、システムによってはネットワーク情報へのアクセスに制限がある場合もあります。その場合は sudo
をつけて実行しましょう。
sudo ip addr show
「ip」コマンドと他のネットワーク関連コマンドの違い
「ip
」コマンドは、net-tools
に含まれていた従来の「ifconfig
」や「route
」などの後継ツールです。以下に簡単な比較をまとめます。
目的 | 旧コマンド | 新コマンド |
---|---|---|
IPアドレス確認 | ifconfig | ip addr show |
ルーティングテーブル確認 | route | ip route show |
インターフェース状態確認 | ifconfig | ip link show |
現在では多くのLinuxディストリビューションで「ip」コマンドが標準となっています。
スクリプト内での使用例
シェルスクリプトの中で「ip addr show
」を使ってネットワークの状態をチェックする方法もあります。
たとえば、スクリプトで特定のインターフェースのIPアドレスを取得するには以下のように書けます。
#!/bin/bash
ipaddr=$(ip -o -4 addr show dev ens33 | awk '{print $4}')
echo "IP Address is: $ipaddr"
このようにして、スクリプトの中でIPアドレスを変数に格納して、他の処理に活かすこともできます。
トラブルシューティングのヒント
ネットワークが繋がらないとき、「ip addr show
」でインターフェースが「DOWN」と表示されていないかを確認しましょう。以下のようにして状態だけを確認することも可能です。
ip link show ens33
出力の中に「state DOWN
」とある場合は、次のコマンドでインターフェースを有効化します。
sudo ip link set ens33 up
逆に、無効にしたいときは「down」とします。
まとめ:ネットワーク確認の第一歩は「ip addr show」から
Linux環境でネットワークの状態を確認したいとき、「ip addr show
」はもっとも基本かつ重要なコマンドです。IPアドレスの確認、トラブル時の状態チェック、スクリプトでの活用など、さまざまな場面で役立ちます。
初めてLinuxを扱う方は、まずこのコマンドの使い方を覚えておくだけでも、ネットワーク対応の幅がぐっと広がります。ぜひ実際に試しながら、身につけていきましょう。