この記事では、通信状況を表示できるネットワークコマンド「netstat」の使い方を説明します。
「netstat」は「ネットスタット」と読みます。
「netstat」を使うと、「netstat」を実行するコンピュータの通信状況を一覧表示することができます。
ノンネットワークエンジニアには難しいかもしれませんが、覚えておくと役に立つことが多いので是非使ってほしいネットワークコマンドです。
この記事では、Windowsのコマンドプロンプトでネットワークコマンド「netstat」を使います。
コマンドプロンプトの基本操作についてはこちらの記事にまとめていますので、必要な方はご参照下さい。
目次
「netstat」は実行したコンピュータの通信状況を表示できる
「netstat」を使うと、実行するコンピュータが、どのコンピュータとどんなプロトコルを使って何番ポートで通信しているかがわかります。
意図しない通信をしている時や、逆に、意図した通信をしていない場合は「netstat」で全てわかります。
「netstat」コマンドの使い方
「netstat」の使い方について説明していきます。
ノンネットワークエンジニアの方は、次の項目だけ読んでおけば十分です。
もう少し詳しく知りたい方は、その先を読み進めていって下さい。
よく使う書式
ノンネットワークエンジニアが「netstat」を使うなら、次の書式だけ覚えておきましょう。
netstat
「netstat」はオプションなしで実行すると、アクティブになっているコネクションを全て表示します。
通信相手のコンピュータはホスト名で表示されます。
プロトコルの主要なものはプロトコル名で表示されます。
例えば、80番ポートは「http」と表示されます。
ホスト名やプロトコル名で表示されるのは人間にわかりやすくしているからなのですが、結果を表示するまで時間がかかる場合があります。
時間がかかる原因は、内部の処理でIPアドレスからホスト名を検索したり、ポート番号からプロトコル名に変換したりしているからです。
早く結果を表示させたい場合は、後ほど説明する「-n」オプションをして「netstat」を実行しましょう。
「-n」を指定すると、ホスト名とプロトコル名は数値で表示されるため、表示されるまでの時間が短くなります。
実行結果の見方(ポイントのみ)
「netstat」を実行すると、コマンドプロンプトに実行結果が表示されます。
実行結果にはアクティブなコネクションが表示されます。
TCPで通信する時は、コネクションの確立が必ず必要になります。
「netstat」では、1つのコネクションに対して次の項目が表示されます。
- プロトコル
- ローカルアドレス
- 外部アドレス
- 状態
「TCP」、「UDP」といったトランスポート層のプロトコル名が入ります。
オプションなしで「netstat」を実行した場合UDPは表示されません。
UDPが表示されない理由は、UDPだとコネクションを確立しないためです。
アクティブなコネクション以外の状況(UDPの通信状況)も確認したい場合は、後ほど説明する「-a」オプションを付けて「netstat」を実行すると通信状況が表示されます。
実行したコンピュータのIPアドレスとポート番号が表示されます。
IPアドレスは、2種類あります。
1つ目は、外部と通信するためのIPアドレス、2つ目は、コンピュータ内部での通信に使用するループバックアドレス(127.0.0.1)です。
「:」の左がIPアドレスで、右がポート番号です。
通信相手のIPアドレスとポート番号が表示されます。
「:」の左がIPアドレスまたはホスト名で、右がポート番号またはプロトコル名です。
TCPの状態遷移を表しています。
TCPでは、それぞれのポートにおいて状態を変化させながら通信を行っています。
「状態」には、この状態が表示されます。
ノンネットワークエンジニアの方には難しいと思いますので、「ESTABLISHED」であれば通信するためのコネクションが確立している、とだけ覚えておきましょう。
ヘルプで全てのオプションを表示する
「netstat」にはたくさんのオプションが用意されています。
しかし、ノンネットワークエンジニアの方には、これらのオプションはほとんど必要ありません。
ここでは、コマンドプロンプトで「netstat」のオプションを一覧表示する方法だけ説明しておきます。
「netstat」のオプションを一覧表示するには、コマンドプロンプトで次のように入力します。
netstat /?
実行すると、次の様に全オプションと説明が表示されます。
C:\>netstat /?
プロトコルの統計と現在の TCP/IP ネットワーク接続を表示します。
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]
-a すべての接続とリッスン ポートを表示します。
-b それぞれの接続またはリッスン ポートの作成に使われた実行可能ファイルを表示します。場合により、よく知られた実行可能ファイルが複数の独立したコンポーネントをホストすることもあり、この場合、接続またはリッスン ポートの作成に使われたコンポーネント群が表示されます。この場合、実行可能ファイル名は下に [] で表示され、上には TCP/IP に到達するまで順に呼び出したコンポーネントが表示されます。このオプションには時間がかかり、十分なアクセス許可がないとエラーが発生することに注意してください。
-e イーサネットの統計を表示します。これは、-s オプションと併用できます。
-f 外部アドレスの完全修飾ドメイン名 (FQDN) を表示します。
-n アドレスとポート番号を数値形式で表示します。
-o 各接続に関連付けられたそれらを所有するプロセス ID を表示します。
-p proto proto で指定されたプロトコルの接続を表示します。
proto は次のいずれかです:
TCP、UDP、TCPv6、または UDPv6。
プロトコルごとの統計を表示するため、-s オプションと併用する場合、proto は次のいずれかです:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP または UDPv6。
-q すべての接続、リッスン ポート、およびバインドされている非リッスン TCP ポートを表示します。バインドされている非リッスン ポートは、アクティブな接続に関連付けられている場合と関連付けられていない場合があります。
-r ルーティング テーブルを表示します。
-s プロトコルごとの統計を表示します。既定では、IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP および UDPv6 の統計が表示されます。
-p オプションを使って、既定のプロトコルのサブセットを指定することもできます。
-t 現在の接続のオフロードの状態を表示します。
-x NetworkDirect の接続、リスナー、および共有エンドポイントを表示します。
-y すべての接続の TCP 接続テンプレートを表示します。他のオプションと併用することはできません。
interval 各表示で interval 秒間一時停止しながら、選択した統計を再表示します。統計の再表示を停止するには、Ctrl+C を押してください。
interval が省略された場合、現在の構成情報を一度だけ表示します。
もしオプション指定が必要になることがあれば「/?」で確認して下さい。
時々使うオプション
ノンネットワークエンジニアの方でも、時々使うかもしれない「netstat」のオプションをご紹介しておきます。
軽く知っておく程度で良いと思います。
-n
「-n」を使うと、実行結果にコンピュータ名やプロトコル名を使わず、IPアドレスとポート番号で情報を表示します。
netstat -n
「-n」を指定しな場合と比べて表示速度がかなり速いため、調べたいコンピュータのIPアドレスやポート番号があらかじめわかっている場合は、「-n」を指定するのがおすすめです。
-a
「-a」を使うと、接続と待ち受けをしているすべてのポートの状況を表示することができます。
netstat -a
例えば、コネクションを確立せずに通信するUDPの待ち受けポートを確認したい場合は「-a」の指定が必要になります。
-r
「-r」を指定するとルーティングテーブルを表示することができます。
netstat -r
※ルーティングテーブルは「route」コマンドでも表示することができます。
「tracert」で経路確認したときに、経路が間違っている場合は「netstat -r」でルーティングテーブルに問題がないかどうか確認しましょう。
「netstat」のまとめ
この記事では、通信状況を表示できるネットワークコマンド「netstat」の使い方を説明しました。
「netstat」を使うと、「netstat」を実行するコンピュータの通信状況を一覧表示することができます。
表示される情報には次の項目があります。
- プロトコル
- ローカルアドレス
- 外部アドレス
- 状態
ノンネットワークエンジニアは次の書式だけ覚えておきましょう。
netstat
2 件のコメント
下記のコマンドを打った結果なのですが
状態のLISTENINGとは何でしょうか?
これは携帯の状態がわかるということですか?
C:\Users\nksol>080********
‘08010359421’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\Users\nksol>netstat /a
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態
TCP 0.0.0.0:135 YY1215:0 LISTENING
TCP 0.0.0.0:445 YY1215:0 LISTENING
TCP 0.0.0.0:8142 YY1215:0 LISTENING
TCP 0.0.0.0:49664 YY1215:0 LISTENING
TCP 0.0.0.0:49665 YY1215:0 LISTENING
LISTENINGは、待ち受け状態です。
こちらのサイトがご参考になるかもしれません。
https://atmarkit.itmedia.co.jp/ait/articles/0207/20/news003.html
「netstat /a」を実行後に表示される状態は、実行した端末自身の状態です。