この記事では、通信状況を表示できるネットワークコマンド「netstat」の使い方を説明します。
「netstat」は「ネットスタット」と読みます。
「netstat」を使うと、「netstat」を実行するコンピュータの通信状況を一覧表示することができます。
ノンネットワークエンジニアには難しいかもしれませんが、覚えておくと役に立つことが多いので是非使ってほしいネットワークコマンドです。
この記事では、Windowsのコマンドプロンプトでネットワークコマンド「netstat」を使います。
コマンドプロンプトの基本操作についてはこちらの記事にまとめていますので、必要な方はご参照下さい。
目次
「netstat」は実行したコンピュータの通信状況を表示できる
「netstat」を使うと、実行するコンピュータが、どのコンピュータとどんなプロトコルを使って何番ポートで通信しているかがわかります。
意図しない通信をしている時や、逆に、意図した通信をしていない場合は「netstat」で全てわかります。
「netstat」コマンドの使い方
「netstat」の使い方について説明していきます。
ノンネットワークエンジニアの方は、次の項目だけ読んでおけば十分です。
- よく使う書式
- 実行結果の見方
もう少し詳しく知りたい方は、その先を読み進めていって下さい。
よく使う書式
ノンネットワークエンジニアが「netstat」を使うなら、次の書式だけ覚えておきましょう。
netstat
「netstat」はオプションなしで実行すると、アクティブになっているコネクションを全て表示します。

通信相手のコンピュータはホスト名で表示されます。
プロトコルの主要なものはプロトコル名で表示されます。
例えば、80番ポートは「http」と表示されます。
ホスト名やプロトコル名で表示されるのは人間にわかりやすくしているからなのですが、結果を表示するまで時間がかかる場合があります。
時間がかかる原因は、内部の処理でIPアドレスからホスト名を検索したり、ポート番号からプロトコル名に変換したりしているからです。
早く結果を表示させたい場合は、後ほど説明する「-n」オプションをして「netstat」を実行しましょう。
「-n」を指定すると、ホスト名とプロトコル名は数値で表示されるため、表示されるまでの時間が短くなります。
打つ前に確認したいときは、やりたいことを選ぶだけでコマンドを組み立てられる道具もあります。経路(ルート)の一覧を見る netstat -r も選べます。ネットワークコマンドを作る
実行結果の見方
「netstat」を実行すると、コマンドプロンプトに実行結果が表示されます。

実行結果にはアクティブなコネクションが表示されます。
TCPで通信する時は、コネクションの確立が必ず必要になります。
「netstat」では、1つのコネクションに対して次の項目が表示されます。
- プロトコル
- ローカルアドレス
- 外部アドレス
- 状態

実行したコンピュータのIPアドレスとポート番号が表示されます。
IPアドレスは、2種類あります。
1つ目は、外部と通信するためのIPアドレス、2つ目は、コンピュータ内部での通信に使用するループバックアドレス(127.0.0.1)です。
「:」の左がIPアドレスで、右がポート番号です。
通信相手のIPアドレスとポート番号が表示されます。
「:」の左がIPアドレスまたはホスト名で、右がポート番号またはプロトコル名です。
TCPの状態遷移を表しています。
TCPでは、それぞれのポートにおいて状態を変化させながら通信を行っています。
「状態」には、この状態が表示されます。
ノンネットワークエンジニアの方には難しいと思いますので、次の4つだけ覚えておけば十分です。実際の画面によく出てくるのはこの4つです。
| 表示 | 意味 |
|---|---|
| ESTABLISHED | 相手とつながっていて、やりとりできる状態 |
| LISTENING | 相手から話しかけられるのを待っている状態。まだ誰ともつながっていない |
| TIME_WAIT | 通信を終えたあとの後片づけ中。しばらくすると消える |
| CLOSE_WAIT | 相手が先に切ったが、こちら側はまだ閉じていない。TIME_WAIT と違い、放っておいても消えるとは限らない |
⚠ Microsoft の一覧では「LISTEN」「TIMED_WAIT」と書かれていますが、画面に出るのは「LISTENING」「TIME_WAIT」です。調べるときは画面に出ている方の文字で検索して下さい。
この4つは、パソコンの表示言語にかかわらずアルファベットのまま表示されます。一方、列の見出しは「プロトコル/ローカル アドレス/外部アドレス/状態」と日本語で出ることも、「Proto/Local Address/Foreign Address/State」と英語で出ることもあります(当サイトでは両方を確認しています)。どちらでも、右端の列が「状態」です。

後で説明する「-a」を付けて実行すると、「LISTENING」の行が一気に増えます。知らないポート番号がずらりと並ぶので、不正なプログラムが動いているのではと不安になるかもしれません。
ですが「-a」は、Microsoft の説明どおり「すべてのアクティブな TCP 接続と、コンピューターがリッスンする TCP および UDP ポート」を表示するオプションです。増えた行は、もともとパソコンの中で待機していたものが見えるようになっただけです。
Windowsは、標準の状態でもいくつものポートを待ち受けています。当サイトが確認したパソコン(Windows 11・仕事で使っているもの)では、「LISTENING」の行が26ありました。「LISTENING」が並ぶこと自体は、めずらしいことではありません。ただしこの数はパソコンごとに大きく変わります(入れているソフトの数で増えます)ので、数を人と比べても意味はありません。
ヘルプで全てのオプションを表示する
「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
「状態」の欄でよく見るのは ESTABLISHED(つながっている)、LISTENING(待っている)、TIME_WAIT(後片づけ中)、CLOSE_WAIT(相手が先に切った)の4つです。とくに「LISTENING」がたくさん並んでも、それだけでは異常とは言えません。
「この症状のときは、どのコマンドを使えばいいのか」を一覧で確かめたい方は、次の記事にまとめてあります。





