- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>ネットワークの基礎編#v4563a06]]
* 目次 [#h5f64b7c]
#contents
*概要 [#ze84406d]
「netstat」コマンドは、TCP/IPにおける通信の状態を調査する最も基本的なコマンドである。
「netstat」コマンドは、TCP/IPにおける通信の状態を調査する最も基本的なコマンド。
*説明 [#y64c1ccd]
netstat [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interval]
-a ESTABLISHEDとLISTENINGのポートを表示する。
-b ESTABLISHEDとLISTENINGのポートの作成に使われた実行可能ファイルを表示する。
時間がかかり、十分なアクセス許可がないとエラーが発生する。
-v -bと併用した場合、すべての実行可能ファイルのESTABLISHEDとLISTENINGの
ポートの作成に使われたコンポーネント群が表示される。
-o 各接続に関連付けられたそれらを所有するプロセス ID を表示する。
-n アドレスとポート番号を数値形式で表示する。
-e イーサネットの統計(積算値)を表示する。-sオプションと併用できる。
-s プロトコルごとの統計(積算値)を表示する。-pオプションと併用できる。
-p proto で指定されたプロトコルに関する情報を表示する。
-r ルーティング テーブルを表示する。
proto 通常は、TCP、UDP、TCPv6、または UDPv6を指定できる。
-sオプションと併用する場合は、IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP またはUDPv6を指定できる。
interval 送信秒間隔。Ctrl+Cを押して停止する。
-通信中のTCPコネクションの状態を表示
*調査方法 [#u81d77f0]
**通信中のTCPコネクションの状態を表示 [#q432d8ee]
引数を何も付けずに実行すると、
-「ESTABLISHED」状態のTCP/IPコネクションが表示される。
-「ESTABLISHED」状態はUDPにはない状態なので、UDPプロトコルは表示されない。
C:\>netstat
Active Connections
Proto Local Address Foreign Address State
TCP pc01:2112 svr01:netbios-ssn ESTABLISHED
TCP pc01:2167 svr01:pop3 ESTABLISHED
**リッスンしているポートの調査 [#i3e917b9]
「-a」オプションを付けて実行すると、
-TCP/IPのコネクションが表示される。
--「LISTENING」状態のソケット
--「ESTABLISHED」状態のソケット
--TCPの「LISTENING」状態のソケットは、
---接続先ホスト・ポートの場合:~
Local Address「ローカル マシン:LISTENINGポート番号」で表示される。
---接続元ホスト・ポートの場合:~
Foreign Address「ローカル マシン:0」で表示される。
-UDPの「LISTENING」状態が表示される。
--「LISTENING」状態はUDPにも有る状態なので、表示される。
--「ESTABLISHED」状態はUDPには無い状態なので、表示されない。
C:\>netstat -a
Active Connections
Proto Local Address Foreign Address State
TCP svr01:epmap svr01:0 LISTENING
TCP svr01:microsoft-ds svr01:0 LISTENING
・
・
UDP svr01:epmap *:*
UDP svr01:microsoft-ds *:*
**プロセスIDとコネクションの関連の調査 [#l3a316da]
***「-o」オプション [#g626c6a6]
「-o」オプションを付けて実行すると、
--そのコネクションを所有しているプロセスのID(PID)を表示することができる。
--PIDが分かれば、タスク マネージャや「tasklist /svc」コマンドから、プロセスやサービスを調べることができる。
C:\>netstat -o
Active Connections
Proto Local Address Foreign Address State PID
TCP pc01:1047 svr01:9080 ESTABLISHED 3588
TCP pc01:1097 svr02:microsoft-ds ESTABLISHED 4
TCP pc01:2757 svr01:9100 ESTABLISHED 3240
TCP pc01:1051 localhost:1052 ESTABLISHED 2592
***「-b」オプション [#udf1560e]
また、「-b」オプションを付けて実行すると、~
ポートの作成に使われた実行可能ファイル(exe)の情報を出力できる。
***「-bv」オプション [#d21b48cb]
「-bv」オプションを付けて実行すると、~
実行可能ファイル(exe)・コンポーネント(dll)の情報を出力できる。
**通信状態の調査 [#o6c0e662]
***繰り返し実行 [#lf69c547]
interval引数に数値を付けて実行すると、~
その時間間隔(秒)で繰り返し実行できる。
-通信の状態を定常的にモニタしたい場合に有用なオプションである。
-止めるには、[Ctrl] + [C]を押して強制終了させる。
***通信状態の反映 [#g855872f]
実際の通信状態が反映されるまでしばらく時間がかかる。
-このため、このような特性を理解して使うか、
-長い時間間隔(例:10分など)でモニタしていても構わないような場合に使う。
***「-s」、「-e」オプション [#n71c603f]
「-s」、「-e」オプション付けて実行すると、下記項目を確認することができる。
-NIC・プロトコル毎のネットワーク上の
--負荷(パケット数、メッセージ数)、
--エラー数、
--コネクションの状態
-ただし、ここで表示される数値はOS起動時からの積算値であるため、~
現時点でエラーが多発しているかどうかを調べたい場合は、~
何度かコマンドを実行して数値の変化を確認する必要がある。
**特定のポートが開いているかどうか確認する。 [#gd3d2b60]
-指定のポート番号が開いているかどうか確認する。
netstat -ano | findStr "<ポート番号>"
-開けているプログラムをPIDから確認する。
tasklist /fi "pid eq <PID>"
*参考 [#o94f6ee1]
-Windowsのnetstatコマンドを試してみた - いろいろ解析日記~
http://d.hatena.ne.jp/nattou_curry_2/20090818/1250611294
-TCP/IP通信の状態を調べる「netstat」コマンドを使いこなす (1/2):Tech TIPS - @IT~
https://www.atmarkit.co.jp/ait/articles/0207/20/news003.html
----
Tags: [[:通信技術]], [[:Windows]]
Tags: [[:インフラストラクチャ]], [[:通信技術]], [[:Windows]], [[:シェル]]