| この記事の要点 |
|
グローバル IP とプライベート IP
| 項目 | グローバル IP | プライベート IP |
|---|---|---|
| 到達範囲 | インターネット全体 | LAN 内のみ |
| 世界での一意性 | 一意 (重複不可) | LAN 単位なら重複 OK |
| 割り当て | ISP / クラウド / RIR (IANA) | LAN 管理者が自由に |
| ルーティング | BGP で世界に伝播 | インターネットには出ない |
| 用途 | サーバ公開、外向き通信 | 家庭内 / 社内 LAN |
プライベート IP の範囲 (RFC 1918)
| クラス | 範囲 | 使い所 |
|---|---|---|
| A | 10.0.0.0/8 (10.0.0.0 - 10.255.255.255) | 大企業 / クラウド VPC (1677 万件) |
| B | 172.16.0.0/12 (172.16.0.0 - 172.31.255.255) | 中規模社内 / Docker (デフォルトbridge) |
| C | 192.168.0.0/16 (192.168.0.0 - 192.168.255.255) | 家庭用ルーター (大半が 192.168.1.0/24) |
その他の特殊アドレス:
127.0.0.0/8: ループバック (自分自身)169.254.0.0/16: APIPA (自動構成、DHCP 失敗時)100.64.0.0/10: CGN (Carrier-Grade NAT、ISP 内専用)
NAT の仕組み
家庭 LAN
┌──────────────────────┐
│ PC 192.168.1.10│
│ スマホ 192.168.1.11│ ┌─────┐ インターネット
│ TV 192.168.1.12├──→ │Router├──→ サーバ (203.0.113.5)
└──────────────────────┘ └─────┘
プライベート IP WAN: 198.51.100.20 (グローバル)
LAN: 192.168.1.1
通信フロー (PC → サーバ):
1. PC が 192.168.1.10 → 203.0.113.5:443 に送信
2. ルーターが送信元を 198.51.100.20:55432 に書き換え (NAPT)
3. サーバから見ると、198.51.100.20:55432 が送信元
4. レスポンスは 198.51.100.20:55432 に届く
5. ルーターが宛先を 192.168.1.10 に書き換えて PC へ
グローバル IP の確認方法
Web ブラウザ
- whatismyip.com
- ipinfo.io (位置情報、ISP 名も表示)
- Google で "what is my ip" 検索
コマンドライン
# Linux / macOS / WSL
curl ifconfig.me
curl ipinfo.io/ip
curl ifconfig.co
curl -4 https://api.ipify.org # IPv4 強制
curl -6 https://api64.ipify.org # IPv6 強制
# DNS 経由 (高速、ブロックされにくい)
dig +short myip.opendns.com @resolver1.opendns.com
# Windows PowerShell
Invoke-RestMethod https://api.ipify.org
(Invoke-WebRequest ifconfig.me).Content
ルーター管理画面
ブラウザで http://192.168.1.1/ 等にアクセスして、"WAN 側 IP" や "インターネット側アドレス" を確認。
固定 IP vs 動的 IP (ISP 提供)
| 種別 | 特徴 | 料金 |
|---|---|---|
| 動的 IP | ISP が DHCP で割当、定期的に変わる | 標準 |
| 固定 IP | 常に同じ IP。サーバ公開やリモートアクセス向け | 月額 1000-5000 円 追加 |
| CGN (Carrier-Grade NAT) | ISP 内で更に NAT (グローバル IP 共有) | 標準 (主に MVNO / 大規模 ISP) |
サーバ公開とポート開放
自宅サーバを外部公開する基本手順:
- 動的 IP の場合は DDNS (No-IP, DuckDNS) でドメイン → IP を自動更新
- ルーターのポートフォワーディング設定: 外部 80/443 → 内部 192.168.1.10:80
- サーバ側でファイアウォール開放 (
ufw allow 443等) - TLS 証明書 (Let's Encrypt) を取得
# DDNS の例 (DuckDNS)
curl "https://www.duckdns.org/update?domains=mydomain&token=XXX&ip="
# IP 省略 → 接続元 IP が自動採用
# 外部公開チェック
curl -v http://your-ip-or-domain:80/
nmap your-ip-or-domain -p 80,443
CGN の落とし穴
近年のモバイル回線や格安 ISP は CGN (Carrier-Grade NAT) を使うため、外部からの直接アクセスができません。ポート開放しても届きません。回避策:
- ISP に IPv6 / 固定 IP オプション申込
- VPN / リバーストンネル (Cloudflare Tunnel, ngrok, Tailscale Funnel)
- IPv6 を使う
IPv6 では NAT 不要
IPv6 のアドレス空間は 2^128 ≈ 340 澗。全機器にグローバル IP を割り当てても枯渇しないため、原則 NAT は使いません。
# IPv6 の確認
ip -6 addr show
# inet6 2001:db8::1/64 scope global ← グローバル
# inet6 fe80::.../64 scope link ← リンクローカル (LAN 内のみ)
curl -6 ifconfig.me
# 接続テスト
ping6 google.com
curl -6 https://ipv6.google.com/
FAQ
Q: グローバル IP は変わる?
A: 動的 IP なら ISP が定期的に変えます。ルーター再起動で変わることが多いです。固定 IP は契約しないと変わりません。
Q: グローバル IP から個人特定できる?
A: ISP には契約者情報があるため、警察等の正当な手続きで特定可能。一般人にはおおよその地域・ISP 名までしか分かりません。
Q: VPN を使うと?
A: 接続元 IP が VPN サーバの IP に置き換わります。元の IP は ISP と VPN 業者のみが知ります。
子ページ
子ページはありません
同階層のページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15