【完全版】UbuntuでIPアドレスを確認する全方法|ip a・nmcli・グローバルIPまで徹底解説
- 作成日 2026.06.12
- 更新日 2026.06.17
- ubuntu
「UbuntuでIPアドレスを確認したい」――サーバー構築、SSH接続、ネットワークトラブルシューティング、開発環境セットアップなど、あらゆる場面で必要になる作業です。
しかし、「どのタイプのIPアドレスを確認したいか」によって最適な方法は大きく変わります。
- マシン本体に割り当てられたローカルIPアドレスを知りたい
- 外部から自分の回線がどう見えているか(グローバルIP)を確認したい
- 複数のネットワークインターフェースのIPをすべて見たい
- IPv6アドレスを確認したい
- Ubuntu Serverで CLI のみで確認したい
- WSL2、Docker、クラウド(EC2等)の特殊環境で確認したい
本記事では、UbuntuでIPアドレスを確認するすべての方法を、実務でそのまま使えるコマンド集として整理します。基本のCLIコマンドからGUI操作、グローバルIP取得、Server/Desktop/WSL2/Docker/クラウド環境ごとの確認手順、トラブルシューティング、FAQまで完全網羅。この1本でIPアドレス確認のすべてが解決します。
- 1. 結論:とにかく今すぐ知りたい人向けの3パターン
- 2. まず押さえる:ローカルIPとグローバルIPの違い
- 3. IPv4とIPv6の違い
- 4. 【方法①】ip addr show(推奨・最も標準)
- 5. 【方法②】hostname -I(最短コマンド)
- 6. 【方法③】nmcli(NetworkManager CLI)
- 7. 【方法④】ifconfig(非推奨だが今も使われる)
- 8. 【方法⑤】netplan get(Ubuntu 17.10以降)
- 9. 【方法⑥】resolvectl(DNS関連の情報も含めて確認)
- 10. 【方法⑦】ルーティング情報からIP・ゲートウェイを確認
- 11. 【方法⑧】GUIでIPアドレスを確認(Ubuntu Desktop)
- 12. グローバルIP(外部から見える自分のIP)を確認する
- 13. MACアドレスもあわせて確認する
- 14. サブネットマスク・ブロードキャストアドレスを確認
- 15. DNSサーバーのIPを確認
- 16. 接続中の他デバイス(ARPテーブル)
- 17. Ubuntu Server特有の確認方法
- 18. WSL2でのIP確認
- 19. Dockerコンテナ内でのIP確認
- 20. クラウド環境でのIP確認(AWS / GCP / Azure)
- 21. プログラミング言語からIPを取得する
- 22. 用途別:使い分けクイックリファレンス
- 23. トラブルシューティング
- 24. IPアドレスの監視・自動化スクリプト
- 25. よくある質問(FAQ)
- 25.1. Q1. ip a と ifconfig のどちらを使うべきですか?
- 25.2. Q2. hostname -I の結果が複数表示されます
- 25.3. Q3. 「グローバルIP」と「自分のIP」は同じですか?
- 25.4. Q4. WSL2のIPが毎回変わって困ります
- 25.5. Q5. Dockerコンテナ内のIPがホストから見えないのですが?
- 25.6. Q6. ifconfigを使い続けてもいいですか?
- 25.7. Q7. ローカルIPを固定にしたいです
- 25.8. Q8. グローバルIP取得サービスの推奨は?
- 25.9. Q9. IPv6を完全に無効化したいです
- 25.10. Q10. 自分のIPがVPN接続中かどうか分かりますか?
- 26. 参考リンク・関連資料
- 27. まとめ
結論:とにかく今すぐ知りたい人向けの3パターン
時間がない方向けに、最頻出の3パターンを先に示します。
①ローカルIPを最速で確認
ip addr show
# または短縮形
ip

②IPアドレスだけシンプルに確認
hostname -I
③グローバルIP(外部から見える自分のIP)
curl ifconfig.me
詳細・使い分け・GUI操作・トラブル対応は以下で順に解説します。
まず押さえる:ローカルIPとグローバルIPの違い
UbuntuでIPアドレスを確認するときは、最初に「どのIPアドレスが必要か」を明確にしましょう。
| 種類 | 意味 | 確認方法 | 用途 |
|---|---|---|---|
| ローカルIP(プライベートIP) | LAN内でマシンを識別するIP | ip a / hostname -I 等 | SSH接続、ファイル共有、開発サーバーアクセス |
| グローバルIP(パブリックIP) | インターネットから見える自分の回線のIP | curl ifconfig.me 等 | 自宅サーバー公開、ポート開放、リモートアクセス |
家庭や企業の多くはNAT(Network Address Translation)でルーターが複数端末をまとめているため、UbuntuのローカルIP(例: 192.168.1.100)と外部から見えるグローバルIP(例: 203.0.113.45)は通常一致しません。
プライベートIPの範囲(覚えておくと便利)
| クラス | 範囲 | よく使われる場所 |
|---|---|---|
| クラスA | 10.0.0.0 ~ 10.255.255.255 | 大規模企業ネットワーク |
| クラスB | 172.16.0.0 ~ 172.31.255.255 | 中規模・Docker内部 |
| クラスC | 192.168.0.0 ~ 192.168.255.255 | 家庭用ルーター・小規模ネット |
192.168.x.xや10.x.x.xが表示されたら、それはローカルIPです。
IPv4とIPv6の違い
| 種類 | 例 | ビット数 |
|---|---|---|
| IPv4 | 192.168.1.100 | 32ビット |
| IPv6 | 2001:0db8:85a3::8a2e:0370:7334 | 128ビット |
最近のUbuntuはデフォルトで両方が有効になっており、ip aで両方表示されます。IPv6を抑制したい場合は後述のオプションを使います。
【方法①】ip addr show(推奨・最も標準)
現代のUbuntuにおける最も標準的なコマンドです。iproute2パッケージに含まれており、ifconfigの後継として位置づけられています。詳細はip(8) manページを参照してください。
基本構文
ip addr show
# または短縮形
ip a
ip addr
実行結果の見方
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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ab:cd:ef brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic enp0s3
valid_lft 86372sec preferred_lft 86372sec
inet6 fe80::a00:27ff:feab:cdef/64 scope link
valid_lft forever preferred_lft forever
主要部分の読み方:
| 表示 | 意味 |
|---|---|
1: lo: | インターフェース番号と名前(loはループバック) |
2: enp0s3: | 物理ネットワークインターフェース |
state UP | リンクが有効 |
link/ether 08:00:... | MACアドレス |
inet 192.168.1.100/24 | IPv4アドレス(CIDR表記) |
inet6 fe80::... | IPv6アドレス |
dynamic | DHCP取得 |
よく使うバリエーション
# IPv4アドレスのみ表示
ip -4 addr show
# IPv6アドレスのみ表示
ip -6 addr show
# 1行表示(簡潔)
ip -br addr show
# 特定インターフェースのみ
ip addr show enp0s3
# IPv4のみ + 簡潔表示
ip -4 -br a
ip -br aの出力例:
lo UNKNOWN 127.0.0.1/8 ::1/128
enp0s3 UP 192.168.1.100/24 fe80::a00:27ff:feab:cdef/64
スクリプト処理や複数サーバーの一括確認に便利です。
【方法②】hostname -I(最短コマンド)
シンプルにIPアドレスだけを取得したい場合の最短コマンドです。
hostname -I
実行結果:
192.168.1.100
複数のインターフェースがある場合はスペース区切りで全IPが出力されます:
192.168.1.100 10.0.0.5 172.17.0.1
-i オプション(非推奨だが古い環境で見かける)
hostname -i
hostname -iは/etc/hostsを参照するため、127.0.1.1のようなループバックを返すことがあり信頼性が低いです。常に-I(大文字)を使ってください。
スクリプトでの活用
# 最初のIPだけ取得
IP=$(hostname -I | awk '{print $1}')
echo "My IP: $IP"
【方法③】nmcli(NetworkManager CLI)
Ubuntu Desktop環境で標準のネットワーク管理ツール「NetworkManager」のCLIです。詳細はNetworkManager公式ドキュメントを参照してください。
デバイスとIPの一覧
nmcli device show

特定デバイスの詳細
nmcli device show enp0s3
接続中の接続情報のみ
nmcli connection show --active
IPアドレスだけ抽出
nmcli -g IP4.ADDRESS device show enp0s3
Wi-Fi接続状態の確認
nmcli device wifi list
NetworkManagerはUbuntu Desktop ではデフォルトですが、Server では使われないことが多い点に注意してください。
【方法④】ifconfig(非推奨だが今も使われる)
長年使われてきたコマンドですが、Ubuntu 18.04以降はデフォルトで非インストールです。
インストール
sudo apt install net-tools
使い方
ifconfig
ifconfig enp0s3
⚠️ 新規スクリプトには使わないことが推奨されます。iproute2系のipコマンドが後継となっており、出力フォーマットも安定しています。
【方法⑤】netplan get(Ubuntu 17.10以降)
Ubuntuの新しいネットワーク設定システムnetplanから、現在の設定値を取得できます。
現在の設定確認
sudo netplan get
特定インターフェース
sudo netplan get ethernets.enp0s3
YAML設定ファイルから確認
cat /etc/netplan/*.yaml
設定ファイルは/etc/netplan/配下にあります(例: 00-installer-config.yaml、50-cloud-init.yaml)。詳細はNetplan公式ドキュメントを参照してください。
【方法⑥】resolvectl(DNS関連の情報も含めて確認)
systemd-resolvedのCLIで、IP+DNS設定+検索ドメインなどを一括確認できます。
resolvectl status
特定インターフェースのみ:
resolvectl status enp0s3
DNSサーバー設定の確認にも有用です。
【方法⑦】ルーティング情報からIP・ゲートウェイを確認
ip route
# または
ip r
実行結果:
default via 192.168.1.1 dev enp0s3 proto dhcp src 192.168.1.100 metric 100
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.100 metric 100
default viaの右側がデフォルトゲートウェイ(ルーター)のIPです。
デフォルトゲートウェイだけ抽出
ip route | grep default | awk '{print $3}'
自分のIPとゲートウェイをセットで表示
echo "My IP: $(hostname -I | awk '{print $1}')"
echo "Gateway: $(ip route | grep default | awk '{print $3}')"
【方法⑧】GUIでIPアドレスを確認(Ubuntu Desktop)
CLIが苦手な方向けの方法です。
GNOME 設定アプリから確認
- 画面右上のシステムメニューをクリック
- **「設定」または「Settings」**を選択
- 左メニューから**「ネットワーク」または「Wi-Fi」**
- 接続中の項目の右側にある歯車アイコンをクリック
- 「詳細」タブまたは「IPv4」タブで以下を確認:
- IPv4アドレス
- サブネットマスク
- デフォルトルート(ゲートウェイ)
- DNS
トップバーから素早く確認(Ubuntu 22.04以降)
右上のネットワークアイコンをクリック→接続名横の矢印→「接続情報」または「詳細」
gnome-control-center を直接起動
gnome-control-center network
グローバルIP(外部から見える自分のIP)を確認する
NAT環境では、Ubuntu自体のIPと外部から見えるIPが異なるため、専用のサービスを使います。
主要なグローバルIP確認コマンド
# ifconfig.me(最も有名)
curl ifconfig.me
# ifconfig.io
curl ifconfig.io
# checkip.amazonaws.com(AWS提供)
curl checkip.amazonaws.com
# ipinfo.io(地理情報付き)
curl ipinfo.io
# icanhazip.com
curl icanhazip.com
# 詳細情報JSON形式
curl ipinfo.io/json
digコマンドでDNS経由(curlより高速)
dig +short myip.opendns.com @resolver1.opendns.com
OpenDNSのリゾルバが「あなたのIPは何か」を返す特別な仕組みです。
IPv6を含むグローバルIP取得
curl -6 ifconfig.me # IPv6のみ
curl -4 ifconfig.me # IPv4のみ
wget の場合
wget -qO- ifconfig.me
curlがインストールされていない環境で利用できます。
MACアドレスもあわせて確認する
# 全インターフェースのMACアドレス
ip link show
# 特定インターフェースだけ
ip link show enp0s3
# MACアドレスのみ抽出
cat /sys/class/net/enp0s3/address
サブネットマスク・ブロードキャストアドレスを確認
ip aの/24のような表記がサブネット情報です。明示的に確認するには:
ip -4 addr show enp0s3 | grep "inet "
CIDR表記/24は 255.255.255.0 を意味します。換算表:
| CIDR | サブネットマスク | ホスト数 |
|---|---|---|
| /24 | 255.255.255.0 | 254 |
| /23 | 255.255.254.0 | 510 |
| /22 | 255.255.252.0 | 1022 |
| /16 | 255.255.0.0 | 65534 |
| /8 | 255.0.0.0 | 16777214 |
DNSサーバーのIPを確認
# systemd-resolved経由
resolvectl status | grep "DNS Servers"
# /etc/resolv.conf を直接確認(参考程度)
cat /etc/resolv.conf
# nmcli経由
nmcli dev show | grep DNS
⚠️ Ubuntu 18.04以降の/etc/resolv.confはsystemd-resolvedのスタブを指すため、127.0.0.53が表示されることが多いです。実際のDNSはresolvectl statusで確認してください。
接続中の他デバイス(ARPテーブル)
LAN内の他デバイスのIP・MACアドレス一覧:
ip neigh
# または
arp -a
LAN内の機器棚卸しに有用です。
Ubuntu Server特有の確認方法
ヘッドレス環境でのIP確認
GUIなしで運用する場合、初回ログイン直後のメッセージにIPが表示されています:
System information as of ...
System load: 0.04
IPv4 address for enp0s3: 192.168.1.100
表示されなかった場合:
ip a | grep inet
SSH接続元IPの確認
サーバーに自分以外のユーザーがSSH接続中の場合、それらの接続元IPも確認できます:
# 現在のSSHセッション一覧
who
# または
w
実行結果例:
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ubuntu pts/0 192.168.1.50 09:42 0.00s 0.05s 0.01s w
WSL2でのIP確認
Windows Subsystem for Linux 2 は、Windowsホストと異なる仮想ネットワークを持ちます。
WSL2内部のIP
ip a
hostname -I
WSL2は再起動するたびに新しいIPが割り当てられる点に注意してください。
Windowsホスト側のIP(WSL内から見る)
ip route show | grep -i default | awk '{ print $3}'
Windows側のIP(cmd / PowerShellから)
ipconfig
WSL2の固定IP設定
WSL2のIPは再起動で変わるため、固定したい場合は.wslconfigの設定が必要です。Microsoft公式ガイドはMicrosoft Learn – WSL Networkを参照してください。
Dockerコンテナ内でのIP確認
コンテナ内に入って確認する場合:
docker exec -it <container_name> ip a
# または
docker exec -it <container_name> hostname -i
ホストから見たコンテナのIP
docker inspect <container_name> | grep IPAddress
または1行で:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_name>
docker network 経由での確認
docker network ls
docker network inspect bridge
クラウド環境でのIP確認(AWS / GCP / Azure)
クラウドVMでは、内部IPと外部IPが完全に分離されているため、メタデータサービス経由で確認します。
AWS EC2
# 内部IP(プライベート)
curl http://169.254.169.254/latest/meta-data/local-ipv4
# 外部IP(パブリック)
curl http://169.254.169.254/latest/meta-data/public-ipv4
IMDSv2を使う場合(推奨):
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" \
-H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/local-ipv4
詳細はAWS公式 – EC2インスタンスメタデータを参照。
Google Cloud(GCP)
# 内部IP
curl -H "Metadata-Flavor: Google" \
http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip
# 外部IP
curl -H "Metadata-Flavor: Google" \
http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
Microsoft Azure
# 内部IP
curl -H "Metadata:true" \
"http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/privateIpAddress?api-version=2021-02-01&format=text"
# 外部IP
curl -H "Metadata:true" \
"http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2021-02-01&format=text"
プログラミング言語からIPを取得する
Python
import socket
# ホスト名から取得
hostname = socket.gethostname()
ip = socket.gethostbyname(hostname)
print(f"Hostname: {hostname}, IP: {ip}")
# UDPソケットでデフォルトルートのIPを取得(より確実)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
local_ip = s.getsockname()[0]
print(f"Local IP: {local_ip}")
s.close()
Bash(シェルスクリプトでの定型処理)
#!/bin/bash
# よく使うIP取得スニペット集
# プライマリIP
PRIMARY_IP=$(hostname -I | awk '{print $1}')
# デフォルトルートのIP(より確実)
PRIMARY_IP=$(ip route get 8.8.8.8 | awk 'NR==1 {print $7}')
# グローバルIP
GLOBAL_IP=$(curl -s ifconfig.me)
# 全インターフェースのIP
ALL_IPS=$(ip -4 -br a | awk '$2=="UP" {print $3}')
echo "Primary: $PRIMARY_IP"
echo "Global: $GLOBAL_IP"
echo "All: $ALL_IPS"
Node.js
const os = require('os');
const interfaces = os.networkInterfaces();
for (const name of Object.keys(interfaces)) {
for (const iface of interfaces[name]) {
if (iface.family === 'IPv4' && !iface.internal) {
console.log(`${name}: ${iface.address}`);
}
}
}
用途別:使い分けクイックリファレンス
| やりたいこと | 推奨コマンド |
|---|---|
| 詳細にすべて確認 | ip a |
| IPだけシンプルに | hostname -I |
| 簡潔な1行表示 | ip -br a |
| IPv4のみ | ip -4 a |
| 特定インターフェース | ip a show enp0s3 |
| グローバルIP | curl ifconfig.me |
| GUI(Desktop) | 設定→ネットワーク→歯車 |
| デフォルトゲートウェイ | ip route | grep default |
| DNS設定 | resolvectl status |
| MAC アドレス | ip link show |
| LAN内他デバイス | ip neigh |
| WSL2内 | ip a |
| Dockerコンテナ | docker inspect |
| AWS EC2外部IP | メタデータAPIから取得 |
| シェルスクリプト | ip route get 8.8.8.8 |
トラブルシューティング
「ip コマンドが見つかりません」と出る
ほぼあり得ませんが、iproute2パッケージが破損している可能性:
sudo apt install --reinstall iproute2
IPアドレスが169.254.x.xと表示される
DHCPからIP取得に失敗し、Windows系の**APIPA(自動プライベートIP)**が振られた状態です。対処:
# DHCP再取得
sudo dhclient -r
sudo dhclient
# またはインターフェース再起動
sudo ip link set enp0s3 down
sudo ip link set enp0s3 up
# NetworkManager 経由
sudo systemctl restart NetworkManager
hostname -I で何も表示されない
ネットワークインターフェースが起動していないか、IPが割り当てられていません:
# インターフェース状態を確認
ip link show
# state DOWN なら起動
sudo ip link set enp0s3 up
IPv6だけ表示されてIPv4が出ない
DHCPv4が失敗している可能性:
# netplan設定を確認
cat /etc/netplan/*.yaml
# DHCPv4が有効になっているか確認
# dhcp4: true があるか確認
# 反映
sudo netplan apply
接続できない時の段階的切り分け
# 1. IPが取れているか
ip a
# 2. デフォルトルートがあるか
ip route
# 3. ゲートウェイに到達するか
ping -c 3 $(ip route | grep default | awk '{print $3}')
# 4. DNSが引けるか
nslookup google.com
# 5. インターネット到達確認
ping -c 3 8.8.8.8
IPアドレスの監視・自動化スクリプト
IP変更を通知するスクリプト
#!/bin/bash
# IPが変更されたらSlackに通知する例
LAST_IP_FILE="/var/tmp/last_ip"
CURRENT_IP=$(curl -s ifconfig.me)
LAST_IP=$(cat $LAST_IP_FILE 2>/dev/null || echo "")
if [ "$CURRENT_IP" != "$LAST_IP" ]; then
echo "$CURRENT_IP" > $LAST_IP_FILE
# Slack Webhook URLは要設定
curl -X POST -H 'Content-type: application/json' \
--data "{\"text\":\"Global IP changed: $LAST_IP -> $CURRENT_IP\"}" \
$SLACK_WEBHOOK_URL
fi
cron に登録すれば、グローバルIP変更を自動監視できます。
定期的にIPをログ記録
# crontab -e で追加
*/5 * * * * echo "$(date) $(hostname -I)" >> /var/log/ip_history.log
よくある質問(FAQ)
Q1. ip a と ifconfig のどちらを使うべきですか?
ip aを使ってください。 ifconfigは古いコマンドで、最新のUbuntuではデフォルト未インストールです。新しい機能(IPv6、namespace、policy routing等)に対応していないため、新規スクリプトではipコマンド系を使うのが推奨です。
Q2. hostname -I の結果が複数表示されます
複数のネットワークインターフェース(有線+Wi-Fi、Docker仮想ブリッジ等)があるためです。最初のIPだけ取得するには:
hostname -I | awk '{print $1}'
ただし「最初のIP」が必ずしもメインIPとは限りません。明確にメインIPを取得したい場合:
ip route get 8.8.8.8 | awk 'NR==1 {print $7}'
Q3. 「グローバルIP」と「自分のIP」は同じですか?
多くの場合、異なります。 家庭・企業ネットワークではNAT越しでルーターが代表アドレスを使うため、Ubuntu本体のIPは192.168.x.x等のプライベートIPで、外部から見えるのはルーターのグローバルIPです。
Q4. WSL2のIPが毎回変わって困ります
WSL2の仕様で、Windowsホスト再起動のたびにIPが変動します。Windows 11 23H2以降では「mirroredモード」を使うと改善されます。.wslconfigに以下を追加:
[wsl2]
networkingMode=mirrored
詳細はMicrosoft Learn – WSL Networkingを参照してください。
Q5. Dockerコンテナ内のIPがホストから見えないのですが?
docker run時にデフォルトのbridgeネットワークを使った場合、コンテナのIP(例: 172.17.0.2)はホストからアクセスできます。外部から見える形にするには-pオプションでポートをマッピングしてください:
docker run -p 8080:80 nginx
Q6. ifconfigを使い続けてもいいですか?
動作はしますが、新しい機能を活用できず、将来的に削除される可能性があります。net-tools自体がnon-essential扱いなので、長期的にはipコマンドへの移行を強く推奨します。
Q7. ローカルIPを固定にしたいです
netplanの設定ファイルを編集します:
network:
version: 2
ethernets:
enp0s3:
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
sudo netplan applyで反映。詳細はNetplan公式を参照。
Q8. グローバルIP取得サービスの推奨は?
用途次第ですが:
- シンプル:
ifconfig.meまたはicanhazip.com - 詳細情報込み:
ipinfo.io/json - 高信頼性:
checkip.amazonaws.com(AWS提供) - DNS経由(高速):
dig +short myip.opendns.com @resolver1.opendns.com
レート制限のあるサービスもあるので、頻繁な取得が必要ならローカルでのテストが必要です。
Q9. IPv6を完全に無効化したいです
/etc/sysctl.confに追加:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
反映:
sudo sysctl -p
⚠️ 一部アプリケーション(特にDocker)でIPv6を前提とした動作があるため、無効化は慎重に。
Q10. 自分のIPがVPN接続中かどうか分かりますか?
VPN接続時はip aにVPNインターフェース(例: tun0、wg0)が表示されます:
ip a | grep -E 'tun|wg|ppp'
グローバルIPもVPN側のIPに変わるため、curl ifconfig.meの結果で接続前後を比較すれば判別できます。
参考リンク・関連資料
Ubuntu / iproute2 公式
- ip(8) manページ(Ubuntu公式) – ipコマンドの完全リファレンス
- hostname(1) manページ – hostnameコマンドの仕様
- iproute2公式リポジトリ – The Linux Foundation
- Ubuntu Server Documentation – Networking – Ubuntuネットワーク全般
Netplan / NetworkManager
- Netplan公式ドキュメント – Netplanリファレンス
- Netplan設定例 – 設定例集
- NetworkManager公式 – NetworkManager全般
systemd-networkd / DNS
- systemd-resolved公式 – DNS解決サービス
- resolvectl(1) manページ
WSL2 / クラウド環境
- Microsoft Learn – WSL Networking – WSL2ネットワーク
- Microsoft Learn – WSL コマンド
- AWS EC2 – インスタンスメタデータ
- Google Cloud – メタデータサービス
- Azure – インスタンスメタデータサービス
Docker
- Docker Networking – Docker公式ネットワークドキュメント
- docker inspect リファレンス
IPアドレス基礎知識
- RFC 1918 – Private Address Space – プライベートIPアドレス定義
- RFC 4291 – IPv6 Addressing Architecture – IPv6仕様
まとめ
UbuntuでのIPアドレス確認は、「どのIPが必要か」と「環境がDesktop/Server/WSL2/Docker/Cloudのどれか」によって最適手順が変わります。
- 基本のCLI:
ip a(詳細)/hostname -I(簡潔)/ip -br a(一覧) - GUI(Desktop): 設定→ネットワーク→歯車アイコン
- グローバルIP:
curl ifconfig.meまたはdig +short myip.opendns.com @resolver1.opendns.com - ネットワーク管理:
nmcli(Desktop)/netplan get(Server)/resolvectl(DNS) - WSL2: 通常の
ip a+ Windows側との対応に注意 - Docker:
docker inspectでコンテナIP確認 - クラウド: 各クラウドのメタデータAPI利用
これらの知識は、SSHサーバー設定・開発環境セットアップ・ネットワークトラブル対応・自動化スクリプトの作成など、エンジニアの日常業務すべてで必要です。本記事をブックマークしておけば、必要な情報をいつでもすぐ参照できます。
本記事は2026年6月時点の情報をもとに、Ubuntu 20.04 / 22.04 / 24.04 LTS および 25.04 / 25.10 での動作確認に基づき作成しています。Ubuntuのバージョンによってデフォルトのコマンド構成が異なる場合があるため、お使いの環境に応じてご確認ください。
-
前の記事
UbuntuでDockerコンテナを再起動する方法 | Docker Compose利用時の手順まで 2026.06.12
-
次の記事
【完全版】ORA-01017: invalid username/password エラーの原因と対処法|Oracleログイン失敗の全パターン徹底解説 2026.06.12
コメントを書く