特定の TCP ポートを使用またはブロックしているプログラムの判別方法

Windowsサーバに、サービス監視用のソフトウェアを導入しようとしたところ、すでにポートが使われているようで

導入できない。。という事態に陥ってしまったので、どのプログラムがそのポートをつかんでいるのかを特定することになりました。

結構、いろいろな場面で使えそうなTipsなので、メモしておきます。

使用されているプロトコル、ポート番号、そして、つかんでいるプロセスIDを見るには、Windowsの「netstat」コマンドを利用します。

具体的には、コマンドプロンプトで

netstat -ano

と入力することで、以下のように情報が表示されます。

C:Documents and Settingskoji>netstat -ano

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:25             0.0.0.0:0              LISTENING       1844
  TCP    0.0.0.0:111            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1240
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:902            0.0.0.0:0              LISTENING       2964
  TCP    0.0.0.0:912            0.0.0.0:0              LISTENING       2964
  TCP    0.0.0.0:1044           0.0.0.0:0              LISTENING       1844
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       1192
  TCP    0.0.0.0:8081           0.0.0.0:0              LISTENING       2044
  TCP    0.0.0.0:17500          0.0.0.0:0              LISTENING       2784
  TCP    127.0.0.1:1071         0.0.0.0:0              LISTENING       1604
  TCP    127.0.0.1:1134         127.0.0.1:19872        ESTABLISHED     2784
  TCP    127.0.0.1:1143         127.0.0.1:1144         ESTABLISHED     4556
  TCP    127.0.0.1:1144         127.0.0.1:1143         ESTABLISHED     4556
  TCP    127.0.0.1:19872        127.0.0.1:1134         ESTABLISHED     2784
  TCP    172.27.96.198:139      0.0.0.0:0              LISTENING       4
  TCP    172.27.96.198:1050     133.158.251.106:445    ESTABLISHED     4

 

さすがに全部のアクティブなポートの情報が出力されると、探しにくかったり、見落としてしまったりするかもしれないので、

必要な情報に絞って表示させることにしましょう。

そんな場合は、上記のコマンドの実行結果を、以下のようにパイプでつなげれば大丈夫です。

netstat -ano | find “:80”

C:Documents and Settingskoji>netstat -ano | find ":3306"
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       6976

 

さて、これで、ポートを占有しているプロセスのIDが分かりました。

次に、このPIDを持つプログラムを特定します。

Windowsのタスクマネージャを開いて、PIDを表示させます。

表示させるには、メニュー ⇒ 表示 ⇒ 列の選択 で列の選択ダイアログを開き、表示する列として、「PID (プロセス ID)」にチェックを入れましょう。

image      image
 

 

これで、以下のように、PIDが表示されて、「6976」番のPIDのプログラムは、MySQLだということが分かります。

image
 

 



こんな記事も関係あるかも。読んでみてね。

コメントを残す

サブコンテンツ

このページの先頭へ