【初心者向け】Linux PCのIPアドレスを確認する方法まとめ

2017年9月19日

Windowsだと、タスクトレイからネットワーク設定を開いてIPアドレスを確認したりしますよね。LinuxデスクトップでもGUIでIPアドレス見ることはできますが、使っているデスクトップ環境により方法は異なります。そのため、どのデスクトップ環境を使っていても、またデスクトップ環境が使えないLinuxサーバーでも通用するよう、コマンドでIPアドレスを確認するのが主流です。

IPアドレスを調べるコマンドは「ip」や「hostname」です。以前は「ifconfig」コマンドが一般的だったので、少し古い記事にはそちらが紹介されているかもしれません。

ipコマンドでIPアドレスを表示する

以下のコマンドを実行します。

ip a

すると、ネットワークデバイスごとにアドレス情報が表示されます。以下は出力例です。実際の出力に色はつきませんが、分かりやすいように色分けしてあります。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:64:d7:10 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.15/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 86341sec preferred_lft 86341sec
inet6 fe80::c67d:4ff9:b277:98b2/64 scope link
valid_lft forever preferred_lft forever

上記のうち、赤文字の部分がデバイス「eth0」のIPアドレス(IPv4アドレス)です。複数のネットワークデバイスが搭載されている場合は、デバイスごとに表示されます。デバイス名は環境によって異なり、「eth0」や「eth1」であったり、「ens1」や「enp2s0」といったものであったりします。
なお、灰色の部分はデバイス名「lo」で「localhost」、つまり使用しているコンピューター自身を指すデバイスです。通常は「127.0.0.1」が割り当てられています。

もし出力が長くて画面に収まらないなら、以下のようにlessにパイプするといいでしょう。

ip a | less

このコマンド、すこし出力が多くて見にくいですよね。IPv6に関する情報が必要ないなら、以下のように実行してIPv4の情報だけを表示させることができます。

ip -4 a

以下のように、少しスッキリします。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 192.168.1.15/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 85377sec preferred_lft 85377sec

デバイスを限定することもできます。以下は「eth0」の情報だけを指定する例です。

$ ip -4 a show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 192.168.1.15/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 85377sec preferred_lft 85377sec

少し複雑になりますが、出力をパイプでgrepコマンドに送って、IPアドレス部分だけを取り出すこともできます。

$ ip -4 a | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
127.0.0.1
192.168.1.15
$ ip -4 a show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
192.168.1.15

hostnameコマンドでIPアドレスを表示する

hostnameコマンドは、その名の通りホスト名を表示するコマンドですが、以下のように「-I」オプションをつけて実行すれば、設定されているIPアドレスをすべて出力します。ただし、ループバックアドレスは表示されません。

$ hostname -I
192.168.1.15 192.168.111.12

ifconfigコマンドでIPアドレスを表示する

「ifconfig」コマンドの実行例も紹介しておきましょう。何年も前からipコマンドへの移行が推奨されており、いずれは使えなくなるかもしれません。しかし長年にわたりLinuxでIPアドレスを表示したり設定したりする定番のコマンドだったため、今も多くのユーザーが使っています。

$ ifconfig 
eth0      Link encap:イーサネット  ハードウェアアドレス 08:00:27:64:d7:10  
          inetアドレス:192.168.1.15  ブロードキャスト:192.168.1.255  マスク:255.255.255.0
          inet6アドレス: fe80::c67d:4ff9:b277:98b2/64 範囲:リンク
          UP BROADCAST RUNNING MULTICAST  MTU:1500  メトリック:1
          RXパケット:6378 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:6779 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1000 
          RXバイト:927393 (927.3 KB)  TXバイト:743171 (743.1 KB)

lo        Link encap:ローカルループバック  
          inetアドレス:127.0.0.1  マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:65536  メトリック:1
          RXパケット:5171 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:5171 エラー:0 損失:0 オーバラン:0 キャリア:0
          衝突(Collisions):0 TXキュー長:1 
          RXバイト:456561 (456.5 KB)  TXバイト:456561 (456.5 KB)

グローバルアドレスを取得するには

ここまで見てきた方法は、Linux PCそのものに設定されているIPアドレス(プライベートネットワークに接続しているならプライベートアドレス)を確認する方法です。ブロードバンドルーターなどを介してインターネットに接続している場合、外部へのアクセスはグローバルアドレスから行われます。グローバルアドレスをコマンドで取得する方法については、以下の記事を参照してください。