この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:T
更新日時:2026-06-11 07:07:02

タイトル: ip IPアドレスの確認
SEOタイトル: Linux で IP アドレスを確認するコマンド完全ガイド(ip / ifconfig / hostname)

この本文には実行可能なタグ等が含まれるため、安全のためHTMLソースとして表示しています。本文データは変更していません。

<table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse;background:#fffbea;border:1px solid #f4c430;margin:1em 0;width:100%"><tr><td style="background:#f4c430;color:#000;font-weight:bold;padding:8px">この記事の要点</td></tr><tr><td style="padding:10px"><ul><li><strong>現代の標準</strong>: <code>ip addr show</code>(または短縮形 <code>ip a</code>)</li><li><strong>旧来のコマンド</strong>: <code>ifconfig</code>(<code>net-tools</code> パッケージ、最近の distro では非インストール)</li><li><strong>素早く IPv4 だけ</strong>: <code>hostname -I</code></li><li><strong>インターフェース指定</strong>: <code>ip addr show eth0</code> / <code>ip -4 a</code>(IPv4 のみ)</li><li><strong>経路 / デフォルトゲートウェイ</strong>: <code>ip route</code> / <code>ip route show default</code></li><li><strong>Windows</strong>: <code>ipconfig</code> / PowerShell <code>Get-NetIPAddress</code></li></ul></td></tr></table>
<h2>ip コマンド(最新標準)</h2>

<p><strong><code>ip</code></strong> は <code>iproute2</code> パッケージのコマンドで、ネットワーク設定の<strong>現代の標準</strong>です。RHEL 7+ / Ubuntu 16.04+ では既定インストール。</p>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-bash"># 全インターフェース表示
ip addr show
ip address show
ip a                       # 短縮形

# 出力例
# 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
#     inet 127.0.0.1/8 scope host lo
#     inet6 ::1/128 scope host
# 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
#     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
#     inet6 fe80::211:22ff:fe33:4455/64 scope link

# IPv4 のみ
ip -4 addr show
ip -4 a

# IPv6 のみ
ip -6 addr show

# 簡潔な 1 行表示
ip -br addr show
# 出力例:
# lo               UNKNOWN        127.0.0.1/8 ::1/128
# eth0             UP             192.168.1.10/24 fe80::.../64</code></pre>
<h2>インターフェース指定</h2>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-bash"># 特定インターフェースだけ
ip addr show eth0
ip a show eth0
ip a eth0           # show 省略可

# 名前で grep
ip addr show | grep -E &apos;^[0-9]+:|inet &apos;

# インターフェース一覧だけ
ip link show
ip -br link show
ls /sys/class/net/</code></pre>
<h2>ifconfig(旧来のコマンド)</h2>

<p><code>ifconfig</code> は <code>net-tools</code> パッケージに含まれる旧コマンド。<strong>RHEL 8+ / Ubuntu 18.04+ では既定では入っていません</strong>が、まだ多くのドキュメントで使われています。</p>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-bash"># インストール(必要なら)
sudo apt install net-tools           # Ubuntu/Debian
sudo dnf install net-tools           # RHEL/CentOS

# 全インターフェース
ifconfig
ifconfig -a                          # ダウン中の IF も表示

# 特定インターフェース
ifconfig eth0

# 出力例
# eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
#         inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
#         inet6 fe80::211:22ff:fe33:4455  prefixlen 64  scopeid 0x20<link>
#         ether 00:11:22:33:44:55  txqueuelen 1000  (Ethernet)</code></pre>
<h2>素早く IP だけ取り出す</h2>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-bash"># IPv4 だけ複数行で
hostname -I                          # 192.168.1.10 10.0.0.5

# 1 つ目だけ取り出し
hostname -I | awk &apos;{print $1}&apos;

# eth0 の IPv4 を変数に
IP=$(ip -4 -br addr show eth0 | awk &apos;{print $3}&apos; | cut -d/ -f1)
echo $IP

# 別解
ip -4 -o addr show eth0 | awk &apos;{print $4}&apos; | cut -d/ -f1</code></pre>
<h2>外部から見た IP(グローバル IP)</h2>

<p>NAT 配下のサーバーで「インターネットから見た自分の IP」を知りたい場合:</p>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-bash"># 公開サービスを使う
curl ifconfig.me
curl ifconfig.io
curl icanhazip.com
curl ipinfo.io/ip
curl -s https://api.ipify.org

# DNS 経由(高速)
dig +short myip.opendns.com @resolver1.opendns.com
nslookup myip.opendns.com resolver1.opendns.com</code></pre>
<h2>経路 / デフォルトゲートウェイ</h2>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-bash"># ルーティングテーブル
ip route show
ip route
ip r              # 短縮

# 出力例
# default via 192.168.1.1 dev eth0 proto dhcp metric 100
# 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10

# デフォルトゲートウェイだけ
ip route show default
ip route | awk &apos;/default/ {print $3}&apos;

# 特定の宛先がどの経路を使うか
ip route get 8.8.8.8
# → 8.8.8.8 via 192.168.1.1 dev eth0 src 192.168.1.10

# 旧コマンドでは
route -n
netstat -rn</code></pre>
<h2>DNS / ネットワーク全体確認</h2>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-bash"># DNS サーバー
cat /etc/resolv.conf
resolvectl status            # systemd-resolved

# hostname
hostname
hostname -f                  # FQDN
hostname -I                  # IP

# 全部入り(最近の RHEL/Ubuntu)
nmcli                        # NetworkManager
nmcli device show

# 詳細情報
ss -tlnp                     # LISTEN 中のソケット(netstat -tlnp の代替)
ss -tunp                     # 全ソケット</code></pre>
<h2>Windows での同等コマンド</h2>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-powershell"># cmd.exe
ipconfig                     # 全情報
ipconfig /all                # 詳細(DNS / DHCP も)

# PowerShell
Get-NetIPAddress
Get-NetIPAddress -AddressFamily IPv4
Get-NetIPConfiguration       # 包括的に

# 特定アダプタ
Get-NetIPAddress -InterfaceAlias "イーサネット"

# 経路
Get-NetRoute -DestinationPrefix "0.0.0.0/0"
route print                  # 旧</code></pre>
<h2>macOS での同等</h2>
<pre style="background:#1e293b;color:#e2e8f0;padding:1em;border-radius:6px;overflow-x:auto;line-height:1.5"><code class="language-bash"># macOS は ifconfig がまだ標準
ifconfig
ifconfig en0                 # Wi-Fi
ifconfig en1                 # 有線(モデルによる)

# 簡潔
ipconfig getifaddr en0       # IPv4 だけ
networksetup -getinfo Wi-Fi

# ip コマンドは未搭載(brew install iproute2mac で代替可)</code></pre>
<h2>典型的なトラブル切り分け</h2>

<ol>
<li><code>ip a</code> で IP が割り当たっているか確認</li>
<li><code>ip route</code> でデフォルトゲートウェイがあるか</li>
<li><code>ping -c 3 デフォルトGW</code> で L2 疎通確認</li>
<li><code>ping -c 3 8.8.8.8</code> で L3 (外向き) 疎通</li>
<li><code>nslookup google.com</code> で DNS 解決</li>
<li><code>curl -v https://google.com</code> で HTTPS / 証明書確認</li>
</ol>

<h2>FAQ</h2>

<p><strong>Q: <code>ifconfig: command not found</code></strong><br />
A: 最近のディストリでは <code>net-tools</code> パッケージが既定で入りません。<code>sudo apt install net-tools</code>(Ubuntu)/ <code>sudo dnf install net-tools</code>(RHEL)でインストール、または <code>ip</code> コマンドに移行を推奨します。</p>

<p><strong>Q: IP が DHCP で取得できているか確認したい</strong><br />
A: <code>ip a</code> の出力で <code>dynamic</code> という単語が IPv4 行に付いていれば DHCP 取得です。<code>journalctl -u NetworkManager</code> や <code>/var/log/syslog</code> で取得ログも確認可能。</p>

<p><strong>Q: 一時的に IP を変更したい</strong><br />
A: <code>sudo ip addr add 192.168.1.20/24 dev eth0</code>。再起動で消えます。永続化は <code>/etc/netplan</code>(Ubuntu)/ <code>nmcli</code>(RHEL)で。</p>