Windows でポートを使用しているプロセスを確認する方法

短い答え: netstat -ano がポートと PID を表示し、タスク マネージャーが PID をプログラム名に変換します。ポート使用プロセス のような無料ツールなら両方を一度に片付けてくれます——プロセス名付きの全ポートの検索できる一覧が、キー一打で手に入ります。

方法 1: netstat + タスク マネージャー(標準)

  1. Win + R を押して cmd と入力し、Enter。
  2. ポートの持ち主を探します:
    netstat -ano | findstr :8080
    
    行の最後の数字が PID です。
  3. タスク マネージャー → 詳細 を開き、その 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);一つのプログラム、二つの行です。