Windows でポートを使用しているプロセスを確認する方法
短い答え: netstat -ano がポートと PID を表示し、タスク マネージャーが PID をプログラム名に変換します。ポート使用プロセス のような無料ツールなら両方を一度に片付けてくれます——プロセス名付きの全ポートの検索できる一覧が、キー一打で手に入ります。
方法 1: netstat + タスク マネージャー(標準)
- Win + R を押して
cmdと入力し、Enter。 - ポートの持ち主を探します:
行の最後の数字が PID です。netstat -ano | findstr :8080 - タスク マネージャー → 詳細 を開き、その PID の行を突き止めます。
どこでも使えますが、どの手順も手作業:正しいフィルター文字列、何十行もの IPv6 の下から PID をほじくり出し、別のツールでもう一度探す。
方法 2: ポート使用プロセス——名前が添えられた検索できる一覧
ポート使用プロセス は同じ netstat を実行し、PID をプロセス一覧と突き合わせて表として表示します:
- 待ち受けポートを先頭に——ポートを実際に「塞いでいる」のはこれらです。
- 検索ボックス——
8080、node、PID のいずれかを入力;一覧が即座に絞られます。 - コピーボタン——「TCP :8080 — node.exe (1234)」をクリップボードへ、バグ報告にそのまま使えます。
- 「すべての接続」スイッチ——全体像が必要なときに確立済みソケットを追加します。
アプリは読み取るだけ:何も遮断・変更・終了しません。ポートを実際に解放するには、所有プロセスをタスク マネージャーで終了してください。
無料ダウンロード — PortOwner-Setup.exe
結果の読み方
- LISTENING——プログラムがこのポートで接続を待っています。「port already in use」を起こすのはこの行です。
- ESTABLISHED——今アクティブな接続で、何もブロックしていません。
- UDP の行には状態がありません——正常です、UDP はコネクションレスです。
- PID 4 / System——カーネルドライバー(通常は 445 の SMB か 135 の RPC);直すものはありません。
よくあるケース
開発サーバー起動時の「port 8080 is already in use」。 8080 を検索——多くの場合、前回のセッションで忘れられた node.exe/java.exe です。タスク マネージャーで終了します。
ゲームやサービスがポートを「cannot bind」。 他に何かがそこで待ち受けていないか確認し、二つのインスタンスを見比べます。
見覚えのない待ち受け。 心配する前に所有プロセスを特定しましょう——10 回中 9 回は Windows のサービスです。
FAQ
PowerShell の方法はありますか?
あります:Get-NetTCPConnection -LocalPort 8080 が所有 PID を表示します;プロセス名にはやはり Get-Process -Id が必要です。閲覧アプリならこの二段階が不要です。
タスク マネージャーなしでポートを解放できますか?
cmd で taskkill /PID 1234 が使えます——ただし先にプロセス名を確認しましょう;間違ったプロセスを終了すると未保存の作業が失われかねません。
同じポートが IPv4 と IPv6 で二度見えるのはなぜ?
プログラムはしばしば両方のスタックで待ち受けます(0.0.0.0:8080 と [::]:8080);一つのプログラム、二つの行です。