ポート開放の確認方法|外から開いているかを調べる手順

ポート開放の確認方法

ポート開放の確認は、外のネットワークから実際につないで行います。順番は、待ち受けの確認、同じ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アドレスの見分け方
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の中から自分のグローバルIPへ
通る道
ルーターで折り返して、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への対応
道具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・ルーター・契約中の回線によって変わる場合があります。業務で使う機器では、所属先の手順と各製品の最新資料をあわせてご確認ください。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Tanabeです。新卒でSIerに入り、ネットワークの設計から構築、運用保守、クラウド移行まで10年やってきました。その間に転職を3回、CCNPも取りました。

正直に言うと、資格を取っても年収はすぐには上がりませんでした。1回目の転職は失敗、2回目でようやく150万円上がり、3回目で今の事業会社に落ち着いた。動いてみて分かったのは、資格の有無より「現場で何を任されてきたか」で評価が決まる、ということです。

エージェントの言葉を鵜呑みにして、危うく後悔しかけた経験もあります。だからこそ、自分がやらかした失敗をそのまま書いて、同じ回り道をしなくて済むように残しています。転職を考え始めた人が、条件で損をしないための材料にしてもらえたら嬉しいです。

目次