【Windows】「netstat」コマンドで現在どのアプリがどのポートで通信しているか特定する手順

【Windows】「netstat」コマンドで現在どのアプリがどのポートで通信しているか特定する手順
🛡️ 超解決

業務中にネットワーク通信の問題が発生し、どのアプリケーションが原因か特定できず困ることがあります。

netstatコマンドは、現在通信しているプロセスとポートの情報を詳細に確認できるWindowsの標準機能です。

この記事では、netstatコマンドを効果的に使い、不審な通信やポート競合の原因を特定する手順を解説します。

【要点】netstatコマンドでネットワーク通信を調査する

  • netstatコマンドの基本: ネットワーク接続とリッスン中のポート状況を一覧表示します。
  • 特定のプロセス特定: -oオプションでプロセスIDを表示し、タスクマネージャーと連携してアプリケーションを特定します。
  • フィルタリングで絞り込み: findstrコマンドと組み合わせ、特定の通信情報のみを効率よく抽出します。

ADVERTISEMENT

netstatコマンドとは何か

netstatコマンドは、Windowsのネットワーク接続やルーティングテーブル、ネットワークインターフェースの統計情報を表示するコマンドラインツールです。ネットワークの状態を把握し、トラブルシューティングに活用できます。

特に、どのアプリケーションがどのポート番号を使用しているかを特定する際に役立ちます。ポート番号とは、ネットワーク通信におけるデータ送受信の窓口を識別するための番号です。アプリケーションは特定のポートを開き、データの送受信を行います。

例えば、Webサーバーは通常80番ポートや443番ポートを使用し、メールサーバーは25番ポートや110番ポートを使います。これらのポートが競合したり、意図しないプロセスによって使われたりすると、通信障害やセキュリティ上の問題が発生する可能性があります。

netstatコマンドの役割と利用場面

netstatコマンドの主な役割は、現在のネットワーク接続の状態を可視化することです。例えば、社内システムへの接続がうまくいかない場合、問題の切り分けに利用できます。

具体的には、以下のような場面でnetstatコマンドが役立ちます。

  • ポート競合の診断: 複数のアプリケーションが同じポートを使おうとしている場合、netstatコマンドで競合しているプロセスを特定できます。
  • 不審な通信の監視: 知らない外部アドレスとの通信や、不審なポートでのリッスン状態を発見し、マルウェア感染などの兆候を早期に検知できます。
  • ネットワークパフォーマンスの確認: 大量の確立済み接続がある場合、その原因となっているアプリケーションを特定し、パフォーマンス低下の原因を調査できます。

これらの情報を得ることで、ネットワーク関連のトラブルを効率的に解決する手助けとなります。

netstatコマンドで通信状況を特定する基本手順

netstatコマンドは、コマンドプロンプトから実行します。管理者権限が必要なオプションもあるため、必ず管理者としてコマンドプロンプトを開いてください。

管理者としてコマンドプロンプトを開く手順

  1. スタートメニューを開く
    Windows 11のタスクバーにあるスタートボタンを右クリックします。Windows 10の場合は、スタートボタンを右クリックしてください。
  2. コマンドプロンプトを起動する
    表示されたメニューから「ターミナル 管理者」または「コマンドプロンプト 管理者」を選択します。
  3. ユーザーアカウント制御に応答する
    「このアプリがデバイスに変更を加えることを許可しますか?」と表示されたら、「はい」をクリックします。

netstat -anoコマンドの実行と結果の確認手順

netstat -anoコマンドは、すべてのネットワーク接続とリッスンポート、およびそれらに関連するプロセスID PIDを表示します。このオプションは、特定のポートを使用しているプロセスを特定するのに最もよく使われます。

  1. コマンドを実行する
    管理者として開いたコマンドプロンプトで、netstat -anoと入力し、Enterキーを押します。
  2. 出力結果を確認する
    画面にネットワーク接続の一覧が表示されます。主な項目は以下の通りです。
    プロトコル: TCPまたはUDPが表示されます。
    ローカルアドレス: 自分のコンピューターのIPアドレスとポート番号です。
    外部アドレス: 接続先のIPアドレスとポート番号です。
    状態: 接続の状態を示します。「ESTABLISHED」は接続確立済み、「LISTENING」は接続待ちの状態です。
    PID: プロセスIDです。この番号でどのアプリケーションが通信しているかを特定します。

PIDからアプリケーションを特定する手順

netstatコマンドで得たPIDは、タスクマネージャーを使ってどのアプリケーションに対応するかを確認できます。

  1. タスクマネージャーを開く
    タスクバーを右クリックし、「タスクマネージャー」を選択します。または、Ctrl+Shift+Escキーを押して開きます。
  2. 詳細タブに切り替える
    タスクマネージャーのウィンドウで、「詳細」タブをクリックします。
  3. PIDで並べ替える
    「PID」列のヘッダーをクリックすると、プロセスがPID順に並べ替えられます。
  4. プロセスを特定する
    netstatコマンドで確認したPIDと同じ番号を探します。対応する「名前」列に、そのPIDを持つアプリケーションの実行ファイル名が表示されます。

netstat -bコマンドでアプリケーション名を直接確認する手順

netstat -bコマンドは、各接続を作成した実行可能ファイル名を表示します。このオプションも管理者権限が必要です。

  1. コマンドを実行する
    管理者として開いたコマンドプロンプトで、netstat -bと入力し、Enterキーを押します。
  2. 出力結果を確認する
    各ネットワーク接続の下に、その接続を確立したアプリケーションの実行ファイル名が表示されます。これにより、PIDを別途確認する手間を省けます。

findstrコマンドで結果をフィルタリングする手順

netstatの出力結果が膨大で見にくい場合、findstrコマンドと組み合わせることで、特定の情報だけを抽出できます。例えば、特定のポート番号やIPアドレスでフィルタリングできます。

  1. 特定のポートでフィルタリングする
    80番ポートに関連する通信だけを表示したい場合、netstat -ano | findstr ":80"と入力し、Enterキーを押します。
  2. 特定のIPアドレスでフィルタリングする
    特定のIPアドレス「192.168.1.100」に関連する通信だけを表示したい場合、netstat -ano | findstr "192.168.1.100"と入力し、Enterキーを押します。
  3. 複数の条件でフィルタリングする
    「LISTENING」状態の80番ポートだけを表示したい場合、netstat -ano | findstr "LISTENING" | findstr ":80"と入力し、Enterキーを押します。

netstatコマンド使用時の注意点とトラブル対処

netstatコマンドは強力なツールですが、使い方によっては意図しない結果になることもあります。よくある問題とその対処法を理解しておきましょう。

「要求された操作には管理者権限が必要です」と表示される場合

netstat -bnetstat -oなどの特定のオプションを使用すると、このメッセージが表示されることがあります。

原因: コマンドプロンプトを管理者権限で開いていないためです。システムのネットワーク情報を詳細に表示するには、管理者権限が求められます。

対処: 「管理者としてコマンドプロンプトを開く手順」に従い、管理者権限でコマンドプロンプトを起動してから、再度コマンドを実行してください。

netstat -bオプションで情報が表示されない場合

netstat -bオプションは便利な機能ですが、一部のシステムプロセスや保護されたプロセスについては、実行ファイル名が表示されないことがあります。

原因: システムのセキュリティ保護のため、すべてのプロセスの実行ファイル名が直接表示されるわけではありません。特に、Windowsのコアサービスやセキュリティ関連のプロセスは情報が制限されることがあります。

対処: そのような場合は、netstat -anoコマンドでPIDを確認し、タスクマネージャーの「詳細」タブでPIDからプロセス名を特定する手順を試してください。タスクマネージャーでも表示されない場合は、さらに詳細なシステムツールが必要になる場合があります。

出力結果が多すぎて見にくい場合

多くのネットワーク接続がある環境では、netstatの出力結果が膨大になり、目的の情報を見つけにくいことがあります。

原因: 多くのアプリケーションやサービスが同時に通信を行っているため、netstatコマンドがそれらすべての情報を表示しようとします。

対処: findstrコマンドを使って、出力結果をフィルタリングしてください。例えば、特定のポート番号やIPアドレス、接続状態など、調べたいキーワードで絞り込むことで、必要な情報だけを効率的に確認できます。上記の「findstrコマンドで結果をフィルタリングする手順」を参照してください。

ADVERTISEMENT

netstatコマンドの主要オプション比較

netstatコマンドには様々なオプションがあり、それぞれ異なる情報を表示します。状況に応じて適切なオプションを使い分けることが重要です。

オプション 機能 用途の例
-a すべての接続とリッスンポートを表示 ネットワーク全体の状況を把握する
-n アドレスとポート番号を数値形式で表示 名前解決による表示の遅延を回避する
-o 各接続に対応するプロセスID PIDを表示 特定のプロセスを識別する
-b 各接続を作成した実行可能ファイル名を表示 アプリケーション名を直接確認する
-r ルーティングテーブルを表示 ネットワークの経路情報を確認する
-s プロトコルごとの統計情報を表示 TCP/IPプロトコルの送受信バイト数などを確認する

まとめ

netstatコマンドを使えば、Windowsのネットワーク通信状況を詳細に把握できます。

プロセスIDやアプリケーション名を特定することで、不審な通信やポート競合の問題を効率的に解決できます。

この記事で解説したnetstat -anonetstat -b、そしてfindstrによるフィルタリングを活用し、ネットワークトラブルの迅速な診断に役立ててください。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。