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 に戻す
  • 作業は事業者のコンソールから行い、変更前にスナップショットを取る

お気軽にご相談ください

お見積りへ お問い合わせへ
▲