ポート開放の確認は、外のネットワークから実際につないで行います。順番は、待ち受けの確認、同じLANからの接続、ルーターのWAN側IPの確認、外からの接続の4段階です。内側から自分のグローバルIPへ試すと、開いていても失敗することがあります。
この記事でわかること
- ポート開放の確認を3つの場所から順に試す手順
- netstat・ss・Test-NetConnection・ncの打ち方と結果の見方
- WAN側IPアドレスでわかる二重ルーターとCGNAT
- v6プラスなどのIPv4 over IPv6で使えるポートの制限
- UDPのポートを確かめるときの注意
一次情報: Microsoft Learn「Test-NetConnection」(参照)/Nmap「Port Scanning Basics」(参照)/RFC 6598(参照)※2026年10月時点
「つながらない」の切り分けは、監視や運用の現場で毎日のように出てくる仕事です。監視オペレーターからインフラエンジニアへ進む道筋は、別の記事にまとめました。
ポート開放の確認は「どこから試すか」で結果が変わる
ポート開放とは、外から届いた通信をLANの中の端末へ通す設定のことです。ルーターの設定を1か所変えれば終わる作業ではありません。外からの通信は、回線、ルーター、端末のファイアウォール、アプリの順に通ります。どこか1つでも止まると、外からはつながりません。
そのため確認も、内側から外側へ1つずつ進めるのが近道です。いきなり外から試して失敗すると、どこで止まったのかが分からなくなります。
外からの通信が通る4つの関門
- インターネットから自宅や社内のサーバーへ届くまで
- 1回線(プロバイダ)グローバルIPを自分だけで使えているか。CGNATや共有型だと届かない
- 2ルーターのポート転送WAN側の番号を、LAN側のどの端末へ渡すか
- 3端末のファイアウォールWindows Defender ファイアウォールなどが受信を許可しているか
- 4アプリの待ち受けそのポート番号で、ソフトが接続を待っているか
確認は4から1へ、内側から順に進めると止まった場所がすぐ分かる。
図:ポート開放は4か所すべてが通って、初めて外からつながる
| 順 | 試す場所 | 分かること | 主な道具 |
|---|---|---|---|
| 1 | サーバー自身 | アプリが待ち受けているか | netstat・Get-NetTCPConnection・ss |
| 2 | 同じLANの別の端末 | 端末のファイアウォールを通るか | Test-NetConnection・nc |
| 3 | ルーターの管理画面 | WAN側に自分専用のグローバルIPがあるか | ルーターの状態表示 |
| 4 | インターネット側 | ルーターの転送と回線を通るか | スマホのテザリング・外部の確認サイト |
手順1|サーバー側でポートが待ち受けているか確かめる
最初に、開けたいポート番号でアプリが待ち受けているかを見ます。ここで出てこなければ、ルーターをいくら設定しても外からはつながりません。
Windowsでは、コマンドプロンプトかPowerShellで次のどちらかを打ちます。例は8080番です。
netstat -ano | findstr :8080
Get-NetTCPConnection -State Listen -LocalPort 8080
netstatでは、状態の列が「LISTENING」の行があれば待ち受けています。Get-NetTCPConnectionなら、待ち受けがないときは赤字のエラーが返るだけです。
Linuxならssを使いましょう。-tがTCP、-lが待ち受け、-nが番号表示、-pがプロセス表示です。
ss -tlnp | grep :8080
待ち受けのアドレスが127.0.0.1なら外から入れない
見落としやすいのが、待ち受けているアドレスです。同じ8080番でも、どのアドレスで待つかで届く範囲が変わります。
| 表示されるアドレス | 意味 | 外から届くか |
|---|---|---|
| 0.0.0.0:8080 | その端末のすべてのIPv4アドレスで待つ | 届く |
| [::]:8080 | すべてのIPv6アドレスで待つ | 届く(IPv6の場合) |
| 192.168.1.10:8080 | そのアドレスだけで待つ | そのアドレス宛てなら届く |
| 127.0.0.1:8080 | 自分自身からの接続だけ待つ | 届かない |
127.0.0.1で待っているなら、アプリの設定を直すのが先です。開発用のサーバーやゲームの専用サーバーは、初期値が127.0.0.1のこともあります。ポート開放の前に、待ち受けアドレスを0.0.0.0か端末のLAN側IPにしておくと、後の確認がスムーズです。
手順2|同じLANの別の端末からつながるか確かめる
次に、同じネットワークにある別のPCから、サーバーのLAN側IPへつないでみます。ここで通れば、端末のファイアウォールまでは問題ありません。
Windowsでは、PowerShellのTest-NetConnectionを使います。
Test-NetConnection -ComputerName 192.168.1.10 -Port 8080
結果の「TcpTestSucceeded」がTrueなら、そのポートにTCPでつながっています。Falseなら、どこかで止まっているということです。-InformationLevel Quietを付けると、TrueかFalseだけが返るので、スクリプトに組み込むときに便利です。
LinuxやmacOSなら、ncで同じことができます。-zは送るデータなしで接続だけを試すオプション、-vは結果を表示させるオプションです。
nc -zv 192.168.1.10 8080
TrueにならないときはFalseの出方を見る
Falseのときは、すぐに返ってきたか、しばらく待たされたかで疑う場所が変わります。Nmapの説明では、届いたが待つアプリがいない状態を「closed」と呼びます。途中で止められて返事がない状態は「filtered」です。
| 出方 | 起きていること | 先に見る場所 |
|---|---|---|
| すぐに失敗する | 相手まで届いたが、待つアプリがいない | 手順1の待ち受け、ポート番号の打ち間違い |
| 数秒以上待って失敗する | 途中で捨てられ、返事が来ない | 端末のファイアウォール、IPアドレスの誤り |
| PingSucceededもFalse | 相手が見つからないか、pingを止めている | IPアドレス、同じセグメントか |
待たされて失敗するなら、まず端末のファイアウォールを疑います。Windowsで受信を許可するルールは、管理者のPowerShellで次のように追加できます。
New-NetFirewallRule -DisplayName "Allow TCP 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow -Profile Private
-Profileは、どのネットワークの種類で効かせるかの指定です。PrivateかPublicかは、Windowsの設定でそのネットワークに付けた種類に合わせます。確認が終わって不要になったら、Remove-NetFirewallRule -DisplayName “Allow TCP 8080” で消しておきましょう。
pingで相手に届くかを先に見ておくと、IPアドレスの誤りと切り分けやすくなります。pingの結果の読み方はpingコマンドの使い方にまとめました。
手順3|ルーターのWAN側IPアドレスを確かめる
LANの中で通るのに外から通らないとき、多くの人がルーターの転送設定を何度も見直します。その前に、ルーターの管理画面でWAN側(インターネット側)のIPアドレスを見てください。ここが自分専用のグローバルIPでなければ、転送設定が正しくても外からは届きません。
| WAN側のIPアドレス | 状態 | ポート開放 |
|---|---|---|
| 10.x.x.x/172.16〜31.x.x/192.168.x.x | 上にもう1台ルーターがある(二重ルーター) | 上のルーターでも転送が必要。片方をブリッジにする手もある |
| 100.64.0.0〜100.127.255.255 | プロバイダ側のNAT(CGNAT)の内側 | 自分ではできない。固定IPなどのオプションが必要 |
| それ以外のアドレス | 自分専用のグローバルIP | ルーターの転送設定で開けられる |
| IPv4 over IPv6(MAP-E)で接続中 | 1つのIPv4アドレスを複数の契約者で分けて使う | 割り当てられた番号の範囲だけ開けられる |
100.64.0.0/10は、RFC 6598でプロバイダのCGNAT用に取っておかれた範囲です。この範囲がWAN側に出ていたら、プロバイダの機器が1つのグローバルIPを多くの契約者で共有しています。外から入ってきた通信をどの契約者に渡すか決まっていないので、届きません。
10.x.x.xなどのプライベートIP(RFC 1918の範囲)が出ていたら、ホームゲートウェイの下に自分のルーターをつないだ二重ルーターのことが多いです。自分のルーターは、上のルーターから見るとLAN側の端末の1台にすぎません。
v6プラスなどでは使えるポートの番号が決まっている
v6プラスなどのIPv4 over IPv6接続のうち、MAP-E方式では、1つのIPv4アドレスを複数の契約者が分け合います。RFC 7597では、契約者ごとに使えるポートの組(ポートセット)を割り当てる仕組みになっています。初期値では0〜1023番のシステムポートが除かれるため、80番や443番は開けられません。
使える番号の範囲は、対応ルーターの状態画面に表示されることが多いです。ゲームやアプリの指定番号が範囲の外にあるときは、その番号では開けられません。PPPoE接続を別に用意する、固定IPのオプションを付けるといった方法を、契約中のプロバイダの案内で確かめてください。DS-Lite方式は、契約者ごとのポート開放には対応していません。
ルーターのLAN側のアドレスやデフォルトゲートウェイは、ipconfigで確かめられます。表示の見方はipconfigコマンドの使い方で解説しました。
手順4|インターネット側から確かめる
最後に、本当にインターネット側からつないで確かめます。ここで大事なのは、同じLANの中から自分のグローバルIPへ試さないことです。
LANの中から自宅のグローバルIPへつなぐと、通信はルーターで折り返して戻ってくる必要があります。この折り返しは「ヘアピンNAT」と呼ばれ、家庭用ルーターには対応していない機種もあるようです。対応していないと、ポートが開いていても失敗と出ます。
どこから試すかで、確かめている範囲が違う
- 通る道
- ルーターで折り返して、LANへ戻る
- 結果
- ルーターがヘアピンNATに対応していないと、開いていても失敗する
- 確かめられる範囲
- ルーターの機能しだいで、当てにならない
- 通る道
- 回線からルーターに入り、転送されて端末へ
- 結果
- 外の利用者と同じ道を通る
- 確かめられる範囲
- 回線・転送・ファイアウォール・待ち受けの全部
図:ポート開放の最終確認は、LANの外にある端末から行う
外から試すには、次のどれかを使います。
| 方法 | やり方 | 向いている場面 |
|---|---|---|
| スマホのテザリング | PCのWi-Fiを切り、スマホ回線につないでTest-NetConnectionやncを打つ | 手元ですぐ試したいとき |
| 外部の確認サイト | グローバルIPとポート番号を入れて、サイト側から接続してもらう | TCPのポートを手軽に見たいとき |
| 外にあるサーバー | クラウドのサーバーなどから nc -zv でつなぐ | 業務で何度も確かめるとき |
テザリングで試すときの宛先は、ルーターの管理画面で見たWAN側のグローバルIPです。
Test-NetConnection -ComputerName 203.0.113.25 -Port 8080
例の203.0.113.25は説明用のアドレスなので、自分の環境の値に置き換えてください。外部の確認サイトを使う場合も、試している間だけサーバーのアプリを動かしておく必要があります。待ち受けていなければ、転送が正しくても結果は「閉じている」です。
UDPのポートは確かめ方が違う
ゲームのサーバーやVPN、DNSなどはUDPを使います。ここまでの道具の多くはTCP専用なので、UDPのポートは同じ方法では確かめられません。
| 道具 | UDP | 補足 | |
|---|---|---|---|
| Test-NetConnection | 使えない | -PortはTCPのポート番号の指定 | |
| telnet | 使えない | TCPで接続するだけの道具 | |
| nc -zu | 送れるが、成否は当てにならない | UDPは返事がなくても送れてしまう | |
| nmap -sU | 調べられるが、結論が出ないことがある | 返事がないと「open\ | filtered」になる |
UDPは接続の手順がないので、返事が来ないときに「開いていて黙っている」のか「途中で捨てられた」のか区別できません。Nmapが「open|filtered」と表示するのはこのためです。
UDPで一番確かなのは、実際のアプリで外からつないでみることです。サーバー側では、tcpdumpなどで外からのパケットが届いているかを見ると、ルーターまで通っているかが分かります。
ポート開放ができないときの切り分け表
止まった場所ごとに、よくある原因を表にしました。上から順に当てはめると、無駄な設定変更を減らせます。
| 止まった場所 | よくある原因 | 対処 |
|---|---|---|
| 手順1で待ち受けがない | アプリが起動していない、番号が違う | アプリの設定と起動状態を確かめる |
| 手順1で127.0.0.1だけ | 待ち受けアドレスが自分自身だけ | 0.0.0.0かLAN側IPで待つよう設定する |
| 手順2で待たされて失敗 | 端末のファイアウォール、セキュリティソフト | 受信の許可ルールを追加する |
| 手順3でWAN側がプライベートIP | 二重ルーター | 上のルーターでも転送するか、片方をブリッジにする |
| 手順3でWAN側が100.64〜 | CGNAT | プロバイダの固定IPなどのオプションを検討する |
| 手順4だけ失敗 | 転送先のLAN側IPがずれた、TCPとUDPの指定違い | 端末のIPを固定し、転送設定のプロトコルを見直す |
転送先の端末がDHCPでアドレスをもらっていると、再起動でIPが変わり、転送設定とずれることがあります。サーバーにする端末は、ルーターのDHCP予約などでIPを固定しておくと安心です。
よくある質問
ポート開放の確認サイトで「閉じている」と出ますが、設定は合っています
確認するときにサーバーのアプリが動いていないと、転送が正しくても閉じていると出ます。待ち受けを確かめてから試してください。それでも閉じているなら、ルーターのWAN側IPがCGNATの範囲になっていないかを見てください。
自宅のPCから自分のグローバルIPに試すと失敗します
ルーターがヘアピンNATに対応していないと、LANの中からの確認は開いていても失敗します。スマホのテザリングなど、LANの外の回線から試すと正しく確かめられます。
Test-NetConnectionでUDPのポートは確かめられますか?
確かめられません。-Portで指定するのはTCPのポート番号です。UDPはnmapの-sUで調べられますが、返事がないと開いているか判断できません。実際のアプリで外からつなぐのが確実です。
v6プラスで80番を開けたいのですが、できません
MAP-E方式では、初期値で0〜1023番が使えるポートから外れています。80番を外に向けて開けるには、PPPoE接続を併用するか、固定IPのオプションを付ける必要があります。手段はプロバイダごとに違うので、契約先の案内を確かめてください。
確認が終わったら、開けたポートは閉じたほうがいいですか?
使わないポートは閉じておくのが基本です。ルーターの転送設定と、端末のファイアウォールのルールの両方を消しておきます。開けたままにすると、外からの不正なログインの試みを受け続けることになります。
まとめ
- 外からの通信は、回線・ルーター・端末のファイアウォール・アプリの4か所を通る
- 確認は内側から順に。待ち受け→LANの別端末→WAN側IP→外からの接続
- 待ち受けが127.0.0.1だと、どこを開けても外からは届かない
- WAN側が100.64〜ならCGNAT、プライベートIPなら二重ルーター
- MAP-E方式では使えるポートの範囲が決まっていて、0〜1023番は初期値で使えない
- 最終確認はLANの外から。UDPはTCP用の道具では確かめられない
ポート開放がうまくいかないときは、止まった場所を1つずつ確かめるのが結局いちばん早いです。この4段階の順番は、業務でサーバーやファイアウォールの疎通を確かめるときにも、そのまま使えます。
疎通の切り分けを自分で進められる人は、運用保守から構築へ移るときにも評価されます。ネットワークエンジニアの転職で使うエージェントを、経験やスキル別に比べた記事です。
免責事項
※本記事はMicrosoft LearnやRFCなどの公開情報をもとに整理したものです。表示や使えるポートの範囲は、OS・ルーター・契約中の回線によって変わる場合があります。業務で使う機器では、所属先の手順と各製品の最新資料をあわせてご確認ください。

