Windowsだと、タスクトレイからネットワーク設定を開いたり、「ipconfig」コマンドを実行したりして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 1000
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: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc fq_codel state UP group default qlen 1000
link/ether 00:00:5e:00:53:01 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.2/32 scope global dynamic ens4
valid_lft 80568sec preferred_lft 80568sec
inet6 fe80::1/64 scope link
valid_lft forever preferred_lft forever
上記のうち、赤文字の部分がデバイス「ens4」の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 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc fq_codel state UP group default qlen 1000
inet 10.0.0.2/32 scope global dynamic ens4
valid_lft 80568sec preferred_lft 80568sec
デバイスを限定することもできます。以下は「ens4」の情報だけを指定する例です。
$ ip -4 a show ens4
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc fq_codel state UP group default qlen 1000
inet 10.0.0.2/32 scope global dynamic ens4
valid_lft 80568sec preferred_lft 80568sec
少し複雑になりますが、出力をパイプでgrepコマンドに送って、IPアドレス部分だけを取り出すこともできます。
$ ip -4 a | grep -oP '(?
$ ip -4 a show ens4 | grep -oP '(?
hostnameコマンドでIPアドレスを表示する
hostnameコマンドは、その名の通りホスト名を表示するコマンドですが、以下のように「-I」オプションをつけて実行すれば、設定されているIPアドレスをすべて出力します。ただし、ループバックアドレスは表示されません。
$ hostname -I
192.168.1.15 192.168.111.12
networkctlコマンドでIPアドレスを表示する
networkctlコマンドがインストールされているなら、次のように「networkctl status」コマンドで、ネットワークインタフェースに割り当てられたIPアドレスや、ゲートウェイアドレスが確認できます。
$ networkctl status
● State: routable
Address: 192.168.1.201 on enp3s0
2001:db8::1 on enp3s0
fe80::1 on enp3s0
Gateway: 192.168.1.1 (Cisco Systems, Inc) on enp3s0
fe80::fe (Cisco Systems, Inc) on enp3s0
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アドレス(プライベートネットワークに接続しているならプライベートアドレス)を確認する方法です。ブロードバンドルーターなどを介してインターネットに接続している場合、外部へのアクセスはグローバルアドレスから行われます。グローバルアドレスをコマンドで取得する方法については、以下の記事を参照してください。
更新履歴
2018-07-18 「networkctl status」コマンドを追記
コメント