Windowsについて詳しく解説します
- Windowsで特定ポートの通信をどう確認するの?
- 特定のポートの通信だけを表示する方法は?
- どのプロセスがそのポートを使っているかを知るには?
この記事では、以上の疑問にお答えします。
この記事では、Windowsから特定の通信がどのソフト(プロセス)から発せられているかを調べる方法についてまとめました。
例えば特定の通信が延々と一部の端末から発せられているときなどに、何のプログラムが通信をしているのかを調べるのに役立ちます。
コマンドプロンプトから実行可能ですので、ぜひ活用してください。
あわせて読みたい
この記事のポイント!
- 「netstat -aon」コマンドで通信状態を確認
- 「netstat -aon | find "ポート番号"」で特定ポートの通信のみ表示できる
- タスクマネージャーで関連するプロセスを特定可能
どのポートで通信を発しているか確認するコマンド
コマンドプロンプトから、下記のコマンドを使います。
ちょっとズラーッと数値が並んでいてわかりづらいですが…IPアドレスの後ろに、ポート番号が表示されています。
これが今現在、発生している(もしくは、待機している)通信の情報です。
更に一番後ろの列には、「PID」が表示されてます。
PIDとは「プロセスID」のことで、ここの番号が通信しているソフトウェアを特定するのに必要になる値です。
コマンド内の数字の「1」は、何秒おきに通信を確認するかの設定値です。
1にすると、1秒毎に通信を確認してくれるわけですね。
情報量が多すぎて画面が煩雑になりそうであれば、秒間を空けて表示してみてもいいと思います。
特定のポート番号だけ表示したい
仮に数秒おきに表示するようにしたとして…それでもWindowsというものは、常に色んな通信を行っているわけで、netstatのコマンドで表示される情報量がどうしても多すぎます。
目当てのポート番号の通信を探すのが大変な場合は、findコマンドを一緒に使うことで表示内容を絞れます。
例えばHTTP(80/TCP)の通信を使いたいときは、以下のように入力します。
すると、こんな感じで表示されるようになります。
非常にすっきりしましたね。
タスクマネージャからPIDを確認
さて先ほどのPID、このIDがどのソフトウェア(プロセス)を示しているのかを確認します。
タスクマネージャを開いて、「プロセス」タブへ移動します。
ここからPIDを探すことになりますが、列に表示されていない場合はメニューの「表示」→「列の選択」へ。
ここで表示するカラムを選択することが出来るので、「PID(プロセス ID)」を追加しましょう。
これでタスクマネージャからPIDが確認出来るようになりました。
後は、先ほどのnetstatの出力結果と見比べて、どの通信を発生させているのがどのソフトウェアなのかを、確認しましょう。
まとめ
この方法を活用すれば、悪さをしているソフトウェアがわかったら、その通信をどう止めるかの目途が立つはずです。
大体は、常駐ソフトなどが常にアップデートを確認しようとしてインターネットなどに通信を発生させてる場合が多いですね。