netstat コマンドを使用すると、各ポートの状態を確認することができます。
今回は開放ポート番号から、逆に実行中のアプリを特定する方法について記載します。
知らない間にウィルス等感染し、ボット等のサービスがポートを開くこともありますので、確認する手段は知っておいた方がいいです。
環境
windows 11 Home
netstatの使用方法
コマンドプロンプトから次のコマンドを実行すると各ポートの状態を確認することができます。
C:\>netstat
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態
TCP 192.168.0.44:56722 210.158.???.???:https ESTABLISHED
:
私の環境では、自身のPCに割り振られているIPアドレスが
192.168.0.44
ですので、上の例だと、
私のPCの56722ポートから、210.158.???.???の443ポートに接続中である
※httpsプロトコルは 443番ポートを使用する
ことがわかります。
状態は、このポートがどのような状態にあるかであり、
ESTABLISHED 通信確立、通信中
LISTENING 通信待ち受け中
TIME_WAIT タイムアウト待ち
CLOSE_WAIT 通信終了中
等があります。
ポート番号から実行ファイルを特定する
今回はadbが使用するポート番号(5037)から、逆に実行ファイルを特定します。
adbは5037番ポートを使用することがわかっていますので、次のコマンドを実行し、5037番ポートを使っているプロセスIDを特定します。
C:\>netstat -ano | find "5037"
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 16580
netstat のコマンド説明
-a TCP/UDP含むすべてのポートを表示する
-n DNS問い合わせを行わない(回答が早い)
-o PIDも表示させる
“|”は、出力結果をfind関数に通し、”5037″を含む行だけ出力させるものです。
これで、5037番ポートを使っているプロセスのIDが「16580」と判明しました。
つぎは、PID16580を使っているファイルを特定します。
次のコマンドを実行してください。
C:\> tasklist /FI "PID eq 16580"
イメージ名 PID セッション名 セッション# メモリ使用量
========================= ======== ================ =========== ============
adb.exe 16580 Console 2 12,344 K
PID16580が割り当てられているファイルは、
adb.exe
だとわかりました。
コマンドプロンプトからだと、実行ファイルのファイルパスは特定できないのですが、
タスクマネージャーを起動し、プロセス検索から「16580」と入力
すると、実行ファイルのPATHまで特定できます。
このようにすれば、ポート番号から実行ファイルを特定することができます。
netstatコマンドから気になるポートが開いている場合は、自分で実行ファイルを確認して下さい。