Conoha VPS

ポート開放できない原因まとめ|二重ルータ・CGNATまで徹底解説

自宅サーバを公開しようとしたときに、「ポート開放したはずなのに外部から接続できない」と困ったことはないでしょうか。

ポート開放は、自宅サーバ運用でつまずきやすいポイントの一つです。

Ubuntu側で設定して、ルータ側でもポート転送を設定して、それでも外からつながらない……ということもあります。

この記事では、ポート開放できない原因を、Ubuntu・ルータ・二重ルータ・CGNATまで含めて初心者向けに整理します。

ポート開放できないときのよくある症状

ポート開放がうまくいかない場合、以下のような症状が出ます。

  • 自宅内からはアクセスできる
  • 外出先やスマホ回線からはアクセスできない
  • ポートチェックサイトで閉じていると表示される
  • ルータで設定したのに反映されない

この場合、サーバ自体が壊れているとは限りません。

ポート開放は、サーバ側・ルータ側・回線側の条件が揃って初めて成功します。

ポート開放の仕組み

自宅サーバを外部に公開するには、基本的に以下の3つが必要です。

  • Ubuntu側で対象ポートを許可する
  • ルータ側でポート転送を設定する
  • グローバルIPアドレスで外部から到達できる

どれか一つでも欠けていると、外部からサーバへ接続できません。

例えば、Webサーバを公開する場合は、Ubuntu側でApacheやNginxが起動していて、ルータ側で80番ポートや443番ポートをサーバへ転送する必要があります。

原因① Ubuntu側の設定ミス

まず確認したいのが、Ubuntu側のファイアウォール設定です。

ufwを使っている場合は、以下のコマンドで状態を確認できます。

sudo ufw status

Webサーバを公開する場合は、必要に応じてHTTPやHTTPSを許可します。

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

SSHの場合は22番ポートを許可します。

sudo ufw allow 22/tcp

また、そもそもサービスが起動していない場合も外部から接続できません。

sudo systemctl status apache2

Apacheが起動しない場合は、以下の記事で原因と対処法をまとめています。

Apacheが起動しない原因と対処法はこちら

原因② ルータのポート転送設定ミス

Ubuntu側でポートを開けても、ルータ側でポート転送を設定していないと、外部から自宅サーバへ通信は届きません。

ルータでは、外部から来た通信を自宅サーバのローカルIPアドレスへ転送する必要があります。

よくあるミスは以下の通りです。

  • 転送先IPアドレスが間違っている
  • ポート番号が間違っている
  • TCP / UDPの指定が違う
  • 設定後に保存・再起動していない

特に、転送先IPアドレスの間違いはよくあります。

自宅サーバのIPアドレスが 192.168.1.10 なのに、ルータ側で別のIPに転送していると、通信は届きません。

原因③ ローカルIPアドレスが変わっている

自宅サーバのローカルIPアドレスがDHCPで自動割り当てになっている場合、再起動などをきっかけにIPアドレスが変わることがあります。

その結果、ルータのポート転送設定が古いIPアドレスを向いたままになり、外部から接続できなくなります。

対策としては、以下のどちらかを行います。

  • サーバ側で固定IPを設定する
  • ルータ側でDHCP固定割り当てを設定する

自宅サーバを継続して運用するなら、サーバのローカルIPは固定しておくのがおすすめです。

原因④ 二重ルータになっている

ポート開放で意外と多いのが、二重ルータ構成です。

例えば、以下のような構成です。

インターネット
↓
ONU・ホームゲートウェイ
↓
Wi-Fiルータ
↓
自宅サーバ

この場合、ルータが2段になっているため、片方のルータだけでポート開放しても外部から接続できないことがあります。

二重ルータでは、上位ルータと下位ルータの両方で設定が必要になる場合があります。

対策としては、以下のような方法があります。

  • 上位ルータでもポート転送する
  • 下位ルータをブリッジモードにする
  • ネットワーク構成を整理する

二重ルータは初心者には原因が分かりにくく、「設定したのにつながらない」状態になりやすいポイントです。

原因⑤ CGNAT環境になっている

ポート開放で最も厄介なのがCGNATです。

CGNAT環境では、自宅のルータにグローバルIPアドレスが割り当てられていないため、外部から自宅サーバへ直接アクセスできません。

この場合、Ubuntuやルータの設定をどれだけ見直しても、通常のポート開放では解決できません。

確認するには、以下を比較します。

  • ルータのWAN側IPアドレス
  • IP確認サイトに表示されるグローバルIPアドレス

この2つが違っている場合、CGNAT環境の可能性があります。

CGNATについては、以下の記事で詳しく解説しています。

CGNATでポート開放できない原因はこちら

解決できる問題とできない問題

ポート開放できない原因には、設定で解決できるものと、環境的に難しいものがあります。

原因 解決可否 対処法
Ubuntu側の設定ミス 解決可能 ufwやサービス起動を確認
ルータ設定ミス 解決可能 ポート転送を見直す
ローカルIP変更 解決可能 固定IPにする
二重ルータ 構成次第で解決可能 ブリッジ化や二段転送
CGNAT 通常は困難 VPSなど外部環境を使う

特にCGNATの場合は、自宅側の設定ではどうにもならないケースがあります。

VPSならポート開放はどうなる?

自宅サーバでは、Ubuntu側の設定に加えて、ルータの管理画面でもポート開放を行う必要があります。

さらに、二重ルータやCGNATのようなネットワーク構成の問題も考える必要があります。

一方で、VPSでは基本的にグローバルIPアドレスが割り当てられているため、ルータのポート転送設定は不要です。

ConoHa VPSの場合も、テンプレートイメージや管理画面の設定を使うことで、必要なポートを比較的簡単に扱えます。

自宅サーバで何度もポート開放に悩んできた立場からすると、VPSでルータ設定を気にしなくてよいのはかなり大きな違いです。

VPSでサーバを公開する方法

VPSでサーバを公開する場合は、基本的に以下の流れになります。

  • VPSを契約する
  • サーバを作成する
  • 必要なポートを許可する
  • ApacheやWordPressを構築する

ConoHa VPSの始め方については、以下の記事でまとめています。

ConoHa VPSの始め方ガイドはこちら

VPSでWordPressを構築する場合は、以下の記事も参考にしてください。

VPSでWordPressを構築する方法はこちら

VPSを選ぶ場合の注意点

VPSを利用する場合も、サービスごとの料金や使いやすさ、管理画面の違いは確認しておくと安心です。

ConoHa VPS・さくらのVPS・Xserver VPSの違いについては、以下の記事で比較しています。

ConoHa・さくら・Xserver VPSの比較はこちら

まとめ

ポート開放できない原因は、一つではありません。

  • Ubuntu側のファイアウォール設定
  • ルータのポート転送設定
  • ローカルIPアドレスの変化
  • 二重ルータ
  • CGNAT

設定ミスであれば解決できますが、CGNATのように自宅側では対応が難しいケースもあります。

自宅サーバでポート開放に悩む場合は、VPSを使うことでルータ設定や回線制限の問題を避けられることがあります。

公式サイト:料金やプラン、最新の仕様は公式が一番早いです。

▶︎ ConoHa VPS 公式サイトはこちら

-Conoha VPS