LinuxでIPアドレスを確認する方法|ip・hostname・nmcliコマンド

実務レシピ

LinuxでIPアドレスを確認するには、ip addr showip a)が標準コマンドです。旧来の ifconfig は多くのディストリビューションで非推奨・未インストールになっており、代わりに iproute2 パッケージの ip コマンドを使います。この記事では、ローカルIP(プライベートIP)とグローバルIP(公開IP)それぞれの確認方法、特定インターフェースだけを絞り込む方法、コマンドが使えない場合の対処法までまとめて解説します。

Linux でIPアドレスを確認する方法一覧

目的別に使うコマンドをまとめると次のとおりです。迷ったら ip addr show を使えば間違いありません。

コマンド用途備考
ip addr show全インターフェースのIPアドレスを表示現行Linuxの標準。ip a と省略可
ip -4 addr showIPv4アドレスのみ表示IPv6を除外したい時
hostname -IIPアドレスだけを一行で表示スクリプトでの取得に便利
nmcli device showNetworkManager管理下の接続情報を表示Ubuntu Desktop等で利用可
ifconfig旧来のインターフェース確認コマンド非推奨。net-toolsパッケージが必要
curl ifconfig.meグローバルIP(公開IP)を表示外部サービスへの問い合わせが必要

ip コマンドでIPアドレスを確認する(推奨)

最も確実な方法は ip addr show です。ルート権限は不要で、一般ユーザーのまま実行できます。

ip addr show

出力例:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 86392sec preferred_lft 86392sec
    inet6 fe80::211:22ff:fe33:4455/64 scope link
       valid_lft forever preferred_lft forever

inet の行がIPv4アドレス、inet6 の行がIPv6アドレスです。192.168.1.10/24 のようにCIDR形式(サブネットマスク付き)で表示されます。IPv4だけに絞りたい場合は -4 オプションを付けます。

ip -4 addr show

表示をコンパクトにしたい場合は -brief-br)オプションが便利です。インターフェース名・状態・IPアドレスが1行にまとまります。

ip -4 -br addr show
lo               UNKNOWN        127.0.0.1/8
eth0             UP             192.168.1.10/24
docker0          DOWN           172.17.0.1/16

特定のインターフェースだけ確認する

インターフェース名を指定すると、そのインターフェースの情報だけに絞り込めます。インターフェース名は環境によって eth0 / ens192 / enp0s3 のように異なるため、まず ip addr showip link show で名前を確認してください。

ip addr show eth0

hostname コマンドで手早く確認する

IPアドレスの値だけを素早く取得したい場合は hostname -I(大文字の I)が便利です。全インターフェースのIPアドレスがスペース区切りで一行に表示されるため、シェルスクリプトでの取得にも向いています。

hostname -I
192.168.1.10 172.17.0.1

先頭のアドレスだけを取り出したい場合は、次のように awk と組み合わせます。

hostname -I | awk '{print $1}'

小文字の hostname -i はDNSに登録されたアドレスを返す別のオプションで、環境によっては 127.0.1.1 のようなループバックに近いアドレスしか返らないことがあります。実際のIPアドレスを確認したい場合は大文字の -I を使ってください。

nmcli でNetworkManager管理下の接続を確認する

Ubuntu DesktopやFedoraなど、NetworkManagerで接続を管理しているディストリビューションでは nmcli でも確認できます。接続名やDNS、ゲートウェイなど周辺情報もまとめて表示されます。

nmcli device show eth0

IPv4アドレスの行だけに絞り込みたい場合は -t(terse)と -f でフィールドを指定します。

nmcli -t -f IP4.ADDRESS device show eth0
IP4.ADDRESS[1]:192.168.1.10/24

ifconfig コマンドでの確認(非推奨・互換用)

ifconfig はnet-toolsパッケージに含まれる旧来のコマンドで、多くのディストリビューションでは標準インストールされなくなっています。実行すると次のようなエラーになる場合があります。

$ ifconfig
bash: ifconfig: command not found

Debian/Ubuntu系ではnet-toolsをインストールすれば使えるようになりますが、新規に使い方を覚えるなら ip コマンドへの移行を推奨します。ifconfig の詳しい使い方は別記事の ifconfig で解説しています。

sudo apt install net-tools

プライベートIPとグローバルIPの違い

ここまで紹介した ip / hostname / nmcli / ifconfig は、いずれもマシンに割り当てられた「プライベートIP(ローカルIP)」を表示します。インターネット上から見えるアドレス(グローバルIP/公開IP)を確認したい場合は、外部サービスへの問い合わせが必要です。

curl ifconfig.me

同様のサービスとして curl ipinfo.io/ipcurl icanhazip.com もよく使われます。自宅・オフィスのルーターがNAT配下にある場合、Linux機で確認できるのはプライベートIPのみで、グローバルIPはルーター側(または外部サービス経由)でないと分かりません。

確認時によくあるつまずきポイント

  • lo(ループバック)を誤読する: 127.0.0.1 は自分自身を指すループバックアドレスで、他端末からの通信には使えません。
  • 複数のIPアドレスが出てくる: Docker(docker0)やVPN(tailscale0tun0など)を使っていると、物理NIC以外のIPも同時に表示されます。目的の値が分からない時は、まず ip route show でデフォルトルートに使われているインターフェース名を確認し、そのインターフェースのIPを見ます。
  • DHCP環境ではIPが変わる: 再起動やリース更新でIPアドレスが変わることがあります。固定したい場合はDHCPサーバー側で予約するか、nmclinetplan で静的IPを設定します。
  • コマンドが見つからない: ip: command not found となる場合は iproute2 パッケージ(Debian/Ubuntu: sudo apt install iproute2)が未インストールです。最小構成のコンテナイメージなどで発生しやすい点に注意してください。

サイトやサーバーへの接続そのものがおかしい場合の切り分け手順は、サイトに繋がらない時の原因調査|IPアドレス確認とnslookup・dig活用法 もあわせて確認してください。

よくある質問(FAQ)

Q. IPv6アドレスだけを確認したいです

A. ip -6 addr show でIPv6アドレスのみに絞り込めます。IPv4と同様に -br を付ければ一行表示にできます。

Q. ディストリビューションによってコマンドは違いますか?

A. ip コマンド(iproute2)はUbuntu・Debian・CentOS/RHEL・Fedora・Arch Linuxなど主要ディストリビューションで共通して使えます。nmcli はNetworkManagerを使っている環境限定で、サーバー用途のCentOS/RHELでも標準で入っていることが多いコマンドです。

Q. スクリプトでIPアドレスだけを変数に入れるには?

A. hostname -I | awk '{print $1}' が最も簡単です。特定インターフェースに限定したい場合は ip -4 -br addr show eth0 | awk '{print $3}' | cut -d/ -f1 のように ip コマンドの出力を加工します。

関連コマンド

  • ip
    本記事で扱った ip addr show を含む、ip コマンド全体の構文・サブコマンド一覧はこちら。
  • ifconfig
    非推奨だが互換用途で使われる旧来のインターフェース確認コマンド。
  • arp
    同一ネットワーク内の他端末のIP・MACアドレス対応表を確認するコマンド。
  • iptables
    確認したIPアドレスをもとにアクセス制御を行う際に使うコマンド。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント