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

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

ip a

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

$ 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

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

$ 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 '(?<=inet\s)\d+(\.\d+){3}'
127.0.0.1
10.0.0.2
$ ip -4 a show ens4 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
10.0.0.2

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)


'Server > Linux' 카테고리의 다른 글

[centos]특정한 nodejs버전 설치, redis설치  (0) 2018.10.04
[centos]EPEL이란?  (0) 2018.10.04
cmd로 public IP 취득하기  (0) 2018.09.07
Red Hat Linux 와 CentOS  (0) 2018.09.06
chkconfigまとめ  (0) 2018.08.16

+ Recent posts