Windows11でどのポートが開いているか知りたいけれど、コマンドやツールの選び方で迷ってしまうことはよくありますよね。
この記事を読むと、コマンドラインとGUIの両方からローカルで開いているポートを確認し、それを使っているプロセスを特定できるようになります。また管理者権限の扱い方やよくあるトラブルの対処法も具体的に学べますので、すぐ実務で役立てられます。
| 項目 | 内容 |
|---|---|
| 独自コンテンツ1 | 実際に使うコマンドとオプションを手順化してわかりやすく紹介します。 |
| 独自コンテンツ2 | GUIツールの使い方と、GUIで見落としやすいポイントをプログラマー視点で補足します。 |
| 独自コンテンツ3 | トラブル時の切り分け手順と、PIDから実プロセスにたどり着く裏ワザを実例で示します。 |
次の章では具体的なコマンドと画面操作を順に示していきますので、手を動かしながら一緒に確認していきましょう。
Windowsマニア初めてで不安になっても大丈夫です。やさしく段階を追って説明するので、落ち着いて進めていきましょうね。
Windows11でローカルの開いているポートと利用中プロセスを特定する方法


ローカルでどのポートが開いているかとそれを使っているプロセスを見つけるのは、ネットワークトラブルを解く第一歩です。ここではコマンド操作とGUI操作を両方使って、手早く確実に特定するやり方をやさしく紹介します。
- コマンドプロンプトでnetstatを使って一覧を取得しPIDを確認する方法。
- PowerShellのGet-NetTCPConnectionでプロセスIDを取得しGet-Processで名前を照合する方法。
- リソースモニターのGUIでListeningPortsを見てプロセスとポートを目で確かめる方法。



落ち着いて順を追えば必ず見つかります。困ったときは一緒に手順をたどってみましょう。
コマンドプロンプトでnetstatからポートとPIDを確認するやり方


netstatは接続とリッスン状態を一覧表示する古典的なツールです。オプションでPIDを付ければどのプロセスがポートを使っているかが分かります。
管理者で実行しfindstrでポート番号を絞り込むと見やすくなります。見つけたPIDはtasklistやタスクマネージャーでプロセス名に変えましょう。
netstat -ano | findstr :8080
tasklist /fi "PID eq 1234"
管理者権限でコマンドプロンプトを開いてnetstat -anoを実行し該当ポートのPIDを探す
スタートメニューでコマンドプロンプトを右クリックし管理者として実行を選んでください。
netstat -anoを実行して全接続を確認し、必要ならfindstrで対象ポートを絞り込みます。
見つけたPIDをtasklistやタスクマネージャーで照合して実行中のプロセス名を特定します。
PowerShellでGet-NetTCPConnectionからプロセス名付きで確認するやり方


PowerShellのGet-NetTCPConnectionはローカルポートとOwningProcessが分かるので、プロセスIDの取得が楽になります。出力をSelectやFormat-Tableで整えると見通しがよくなります。
管理者で実行しGet-Processと組み合わせればPIDからプロセス名や実行パスまで追えます。スクリプト化すれば複数ポートのチェックも簡単になります。
Get-NetTCPConnection -LocalPort 8080 | Format-Table -AutoSize
Get-Process -Id 1234
管理者PowerShellでGet-NetTCPConnectionを実行してLocalPortとOwningProcessを確認しGet-ProcessでPIDを照合する
スタートメニューでWindows PowerShellを右クリックし管理者として実行を選んでください。
Get-NetTCPConnection -State Listen | Where-Object LocalPort -EQ 8080 | Select LocalAddress,LocalPort,OwningProcessを実行して該当行を確認します。
Get-Process -Id 1234でPIDから実行中のプロセス名や詳細を確認します。
リソースモニターでGUIからリッスン中のポートを確認するやり方


リソースモニターはGUIでプロセスとポートを直感的に結びつけられる便利なツールです。数字に不慣れな人でも視覚的に確認できるので安心して使えます。
タスクマネージャーから起動できるので権限のハードルも低めです。NetworkタブのListening Portsでプロセス名とポート番号を一覧できます。
タスクマネージャーのパフォーマンスからリソースモニターを開きネットワークのListening Portsでプロセスとポートを見る
タスクバーを右クリックしてタスクマネージャーを選んでください。
パフォーマンスタブを開きウィンドウ下のリソースモニターをクリックして起動します。
リソースモニターのNetworkタブでListening Portsの一覧を表示し、プロセス名とポート番号を目で確かめます。
Windows11で外部から特定のポートが開いているかを確認する方法


外部からWindows11の特定ポートが開いているかを調べるには、リモートから直接接続を試みるのがいちばん確実です。今回はWindows側で使いやすいPowerShellと、別の端末から使えるtelnetやncの両方を使って確認する方法を紹介します。
- PowerShellのTest-NetConnectionで単一ポートに対して疎通と簡単な応答を確認する方法。
- 別端末からtelnetまたはncで接続を試みて接続可否で開閉を判定する方法。
- 接続できない場合はWindowsファイアウォールやアプリのリッスン状態を確認すること。



最初は緊張しなくて大丈夫です。順を追えば誰でもできるので、気軽にコマンドを実行して動きを見てみましょう。
WindowsのPowerShell Test-NetConnectionで単一ポートを遠隔チェックするやり方


PowerShellのTest-NetConnectionは、指定したホストとポートに対してTCPで接続を試みてくれます。疎通の成否や簡単な応答情報が返るのでWindows同士や管理端末からのチェックに便利です。
Test-NetConnection -ComputerName example.com -Port 80
実行後はTcpTestSucceededやPingSucceededなどの出力を確認してください。Falseの場合は相手のサービスが起動しているかやWindowsファイアウォールの設定を疑うとよいです。
PowerShellでTest-NetConnection -ComputerName -Port を実行して疎通と応答状況を確認する
Test-NetConnectionでComputerNameに対象ホストを、Portにポート番号を指定して実行します。例としてTest-NetConnection -ComputerName example.com -Port 80を実行してください。
TcpTestSucceededがTrueならTCPで接続できています。PingSucceededやRoundtripTimeでネットワークの往復状況、RemoteAddressで解決先IPを確認してください。
TcpTestSucceededがFalseなら対象サービスが停止かWindowsファイアウォールでブロックされている可能性があります。サービスのリッスン状態やファイアウォールの受信規則を確認してください。
別端末からtelnetやncでWindows11のポートを確認するやり方


別端末からの確認は実際にTCP接続を試すので非常に分かりやすい方法です。telnetは単純に接続を試せますし、ncはより細かい接続結果を返すことが多く便利です。
telnet example.com 80
nc -vz example.com 80
接続が拒否される場合はターゲット側のアプリが起動しているかやファイアウォール、ルーターのポートフォワード設定を確認してください。タイムアウトが続く場合は経路の問題も疑ってみましょう。
別のマシンからtelnetまたはncで:に接続し接続可否で開閉を判定する
telnetホスト名 ポートで接続を試みます。接続が確立すれば画面が切り替わるか応答が返るので開いていると判断できます。
ncの-vzオプションで簡潔に結果を表示します。成功なら接続成功のメッセージが出て失敗なら拒否やタイムアウトが出ます。
接続拒否はアプリ側のリッスン無しや明示的拒否を示します。タイムアウトはネットワークやファイアウォールの遮断を示すことが多いのでログやファイアウォール設定も合わせて確認してください。
Windows11でポート競合を解消したりファイアウォール設定を調整する応用テクニック


ポート競合はサービスが起動しない原因になったり通信が途中で止まってしまったりしますよね。慌てずに原因を切り分けると短時間で解消できます。
- 占有しているプロセスを特定して終了しポートを解放する。
- サービスやアプリの設定で使用ポートを別の番号に変更する。
- Windowsファイアウォールの受信ルールを見直して必要なポートを開放する。
まずはnetstatでどのプロセスがポートを使っているか調べるのがおすすめです。状況に応じて素早く安全に対応すればトラブルが長引きません。
プロセスを特定して終了してポートを解放する応用パターン


占有プロセスを探して終了するのはシンプルで効果が出やすい方法です。netstatでポートを使っているPIDを確認してからプロセス名を特定し終了させます。
netstat -ano | findstr :1234
tasklist /fi "PID eq 5678"
taskkill /PID 5678 /F
管理者権限が必要です。誤って重要なシステムプロセスを終了しないようサービス名やコマンドラインをよく確認してください。
Windowsファイアウォールの受信ルールを確認してポートを開放する応用パターン


ファイアウォールが原因でポートが通らないこともよくあります。GUIの「Windowsファイアウォール詳細設定」かPowerShellから受信ルールを確認して必要なポートに例外を追加します。
Get-NetFirewallRule -DisplayName "MyAppPort" -ErrorAction SilentlyContinue
If(-Not(Get-NetFirewallRule -DisplayName "MyAppPort")){
New-NetFirewallRule -DisplayName "MyAppPort" -Direction Inbound -Protocol TCP -LocalPort 1234 -Action Allow -Profile Private
}
管理者権限で操作してください。公開ネットワークで広くポートを開放するのは避け最小限の範囲に限定してください。
よくある質問


- ローカルで開いているポートを一覧で確認するには
PowerShellでGet-NetTCPConnectionを実行してStateがListenの行を見るか、管理者権限でnetstatのPID表示オプションを使って一覧を見ると分かりやすいです。PIDが分かればtasklistやタスクマネージャの詳細タブでプロセス名を結びつけられます。手早く結果が欲しいときはnetstatが便利です。
- 特定のポートを使っているプロセスを調べるには
port番号を手がかりに一覧を絞り込んだ後、表示されたPIDでGet-Processやtasklistを使ってプロセス名を取得します。GUIが好きならタスクマネージャでPID列を表示して探すと直感的です。PIDが4の場合はSystemが使っていることが多いので注意してください。
- ポートがブロックされているかどうかはどう確認するのが良いですか
PowerShellの接続テストコマンドやtelnetやcurlで実際に接続を試みてみるのが確実です。接続ができない場合はWindowsファイアウォールの受信規則やルーター側のフィルタをチェックしてください。アプリ側の設定で待ち受けアドレスが正しくないこともよくある原因です。
- 実行に管理者権限は必要ですか
一覧だけなら権限なしで確認できることもありますが、プロセス名を取得したりポートの詳細を表示したりする場合は管理者権限が必要になることが多いです。権限が足りないとPIDは見えてもプロセス名が空になることがあるので、その場合は管理者として実行してください。作業前に不要なプロセスを停止する場合は影響範囲を確認する習慣をつけると安心です。
まとめ


ここまででWindows11でローカルの開いているポートを確認し、それを使っているプロセスを特定する方法を実際に歩いてきました。コマンドラインではnetstatやPowerShellでTCP接続情報を取得してPIDを確認し、PIDからプロセス名を突き止めるやり方が役立ちます。
GUIが好みならリソースモニターやSysinternalsのTCPViewが便利です。管理者権限で操作すると正確な情報が得られ、ポートを空けるにはサービス停止やアプリ側の設定変更で対応できます。最後に接続テストで動作を確かめてください。



困ったときは慌てずイベントログやアプリのログを見てください。些細な設定ミスで止まっていることが多いので、一つずつ確認すると解決が早くなります。
