2026年5月24日
2026年5月24日
VPSでグローバルIPが取得できないときの原因と設定の見直し方
VPS やクラウドのサーバーで「グローバル IP が付いていない」ように見えるとき、まず切り分けたいのは、①事業者の仕組みとして OS にはプライベート IP しか見えないだけなのか、②本来 OS に付くはずのアドレスが設定の不具合で付いていないのか、③そもそも事業者側でグローバル IP が割り当てられていないのか、の3つです。この記事では、どれに当たるかを見分ける方法と、それぞれの原因の確認方法・直し方を、起こりやすい順に説明します。
状況を切り分ける
OS に付いているアドレスを見る
SSH でつながらない場合は、事業者が用意しているコンソール(Web コンソールやシリアルコンソールなど、名称は事業者ごとに異なります)からログインします。そのうえで、OS が認識しているアドレスと経路を確認します。
ip -br addr show
ip route show default
10.、172.16.〜172.31.、192.168. で始まるアドレスはプライベート IP、100.64.〜100.127. はキャリアグレード NAT などで使われる共有アドレスです。これら以外のアドレスが付いていれば、OS にグローバル IP が直接付いています。
外から見たアドレスと比べる
次に、サーバーが外部と通信するときに使っているアドレスを確かめます。
# 外部の確認用サービスに問い合わせる(どのサービスを使うかは任意)
curl -4 -s https://checkip.amazonaws.com
ここで返ってきたアドレスと、管理画面に表示されているグローバル IP を比べます。
- OS にはプライベート IP だけ、外から見るとグローバル IP:①の可能性が高い(次の節)
- OS にアドレスが何も付いていない、または外へ出られない:②の可能性が高い
- 管理画面にもグローバル IP が表示されていない:③の可能性が高い
原因と対処(起こりやすい順)
1. 事業者の仕組みで、グローバル IP が OS に見えない(正常な状態)
AWS の EC2 や Google Cloud の Compute Engine などでは、OS のネットワークインターフェースにはプライベート IP だけが付き、グローバル IP は事業者のネットワーク側で変換(1対1の NAT)されます。この場合、ip addr にグローバル IP が出ないのは正常です。OS の設定ファイルにグローバル IP を書き加えると、かえって通信できなくなるので注意してください。
確認:事業者のメタデータから、割り当てられているグローバル IP を取得できます。AWS では IMDSv2 のトークンを付けて問い合わせます。
# AWS EC2(IMDSv2)
TOKEN=$(curl -sX PUT "http://169.254.169.254/latest/api/token" \
-H "X-aws-ec2-metadata-token-ttl-seconds: 60")
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/public-ipv4
# Google Cloud
curl -s -H "Metadata-Flavor: Google" \
http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
注意点:AWS で自動で割り当てられたパブリック IP は、インスタンスを停止して起動し直すと変わります。DNS の A レコードに登録して使うなら、Elastic IP のような固定のアドレスを割り当てておきます。ソフトウェアが自分のグローバル IP を知る必要がある場合(メールサーバーの設定など)は、OS のアドレスではなく、メタデータや設定値で渡します。
2. 事業者側でグローバル IP が割り当てられていない
サーバー作成時にグローバル IP を付けない設定を選んだ、サブネットの設定で自動割り当てが無効になっている、アドレスを解放してしまった、といったケースです。最近は、IPv4 のグローバル IP を付けない構成や、IPv6 だけのプランを用意している事業者もあります。
確認:管理画面のサーバー詳細やネットワーク設定で、グローバル IPv4 アドレスが割り当てられているかを見ます。AWS では、サブネットのパブリック IPv4 アドレスの自動割り当て設定と、インスタンスにパブリック IP があるかを確認します。
対処:管理画面からグローバル IP(Elastic IP や静的外部 IP など、事業者ごとに名称は異なります)を割り当てます。グローバル IPv4 アドレスは費用がかかる場合や、プランによって追加できない場合があるので、事業者の料金ページと仕様を確認してください。IPv4 アドレスの扱いは事業者ごとに変わってきています(2026年10月現在)。
3. OS のネットワーク設定が壊れている・合っていない
OS に直接グローバル IP が付く事業者(国内の多くの VPS など)で、アドレスが付いていない場合はこれを疑います。よくあるきっかけは次のとおりです。
- netplan や NetworkManager の設定を手で書き換え、書式や値を誤った
- スナップショットやイメージから作り直したことで MAC アドレスが変わり、設定ファイルの
macaddressの指定と合わなくなった - cloud-init の処理が失敗し、ネットワーク設定が生成されなかった
- OS のアップグレードでインターフェース名が変わった(
eth0からens3など)
確認:
cloud-init status --long # cloud-init を使っている場合
ls -l /etc/netplan/ && sudo cat /etc/netplan/*.yaml
journalctl -u systemd-networkd -b --no-pager | tail -n 30
ip -br link show # 実際のインターフェース名と MAC アドレス
設定ファイルに書かれたインターフェース名や MAC アドレスが、ip -br link show の結果と一致しているかを確認します。
対処:DHCP で配る事業者なら、設定を DHCP(dhcp4: true)に戻すのがもっとも安全です。静的に設定する事業者なら、管理画面に表示されているアドレス・プレフィックス長・ゲートウェイを正確に入力します。事業者によっては、/32 のアドレスと、同じサブネットにないゲートウェイを組み合わせる方式を指定していることがあります。その場合 netplan では、経路に on-link: true を付けてゲートウェイを直接つながっている相手として扱います。
# 事業者が /32 と別サブネットのゲートウェイを指定している場合の例
network:
version: 2
ethernets:
eth0:
addresses:
- 203.0.113.10/32
routes:
- to: default
via: 198.51.100.1
on-link: true
nameservers:
addresses: [198.51.100.53]
アドレスは説明用の値です。実際の値は事業者の管理画面やドキュメントに従ってください。設定を変える前には、元のファイルのコピーとスナップショットを取っておき、sudo netplan try で反映すると、失敗しても自動で元に戻ります。
4. IP はあるのにファイアウォールで届かない
グローバル IP は付いているのに、事業者側のファイアウォール(セキュリティグループやパケットフィルターなど)や OS の ufw・firewalld で通信を止めているため、「IP が取れていない」ように見えるケースです。
確認:サーバーから外への通信(前述の curl)は通るか、管理画面のファイアウォールで SSH や HTTP/HTTPS の受信を許可しているかを見ます。OS 側は sudo ufw status や sudo firewall-cmd --list-all で確認します。
対処:必要なポートだけを許可します。SSH は接続元を絞るのが基本です。
5. 事業者側の障害や利用制限
ネットワーク障害や、不正利用の疑いによる通信の停止、支払いの問題によるサービス制限などで、外部と通信できなくなることもあります。
確認:事業者の障害情報ページや、登録メールアドレス宛ての通知を確認します。心当たりがなく原因が分からなければ、ここまでの確認結果を添えてサポートに問い合わせると、話が早く進みます。
まとめ
- まず OS のアドレス・外から見たアドレス・管理画面の表示を比べ、①仕組み上見えないだけか、②OS の設定不具合か、③未割り当てかを切り分ける
- AWS や Google Cloud では OS にプライベート IP しか見えないのが正常で、グローバル IP はメタデータで確認する
- 未割り当てなら管理画面で割り当て、DNS に登録するなら固定のアドレスを使う
- OS の設定はインターフェース名・MAC アドレス・cloud-init を確認し、迷ったら DHCP に戻す
- 作業は事業者のコンソールから行い、変更前にスナップショットを取る