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

初心者向け

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

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

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 '(?
$ 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アドレス(プライベートネットワークに接続しているならプライベートアドレス)を確認する方法です。ブロードバンドルーターなどを介してインターネットに接続している場合、外部へのアクセスはグローバルアドレスから行われます。グローバルアドレスをコマンドで取得する方法については、以下の記事を参照してください。

コマンドラインで自分のグローバルアドレスを取得する方法
先日、SSHサーバーを踏み台にしてWebアクセスする記事を書きました。 その時、アクセス元のグローバルアドレスなどを確認できるページを作ってリンクしたのですが、「そういえばコマンドラインからグローバルアドレスを取得できたほうが便利だな...

更新履歴

2018-07-18 「networkctl status」コマンドを追記

初心者向け
\シェアお願いします/
LFI

コメント

タイトルとURLをコピーしました