Netstatコマンドの使用方法

例、スイッチなど

netstat コマンドは、コンピュータが他のコンピュータやネットワークデバイスとどのように通信しているかに関する非常に詳細な情報を表示する コマンドプロンプトコマンド です。

具体的には、netstatコマンドは個々のネットワーク接続、全体的およびプロトコル固有のネットワーキング統計などの詳細を表示することができ、これらのすべてが特定の種類のネットワーク問題のトラブルシューティングに役立ちます。

Netstatコマンドの可用性

netstatコマンドは、 Windows 10Windows 8Windows 7Windows VistaWindows XP 、Windows Server オペレーティングシステム 、および一部の古いバージョンのWindowsなど、ほとんどのWindowsのコマンドプロンプトから使用できます。

注:特定のnetstatコマンドスイッチと他のnetstatコマンド構文の利用可能性は、オペレーティングシステムによって異なります。

Netstatコマンドの構文

netstat [ -a ] [ -b ] [ -e ] [ -f ] [ -n ] [ -o プロトコル ] [ -r ] [ -s ] [ -t ] [ -x ] [ -y ] [ time_interval ] [ /? ]

ヒント:上記のようにnetstatコマンド構文を読み込む方法がわからない場合は、「 コマンド構文の読み方」を参照してください。

netstatコマンドだけを実行すると、ローカルIPアドレス (コンピュータ)、外部IPアドレス(他のコンピュータまたはネットワークデバイス)、およびそれぞれのローカルIPアドレスとそれぞれのアクティブなTCP接続の比較的単純なリストが表示されますポート番号、およびTCP状態を表示します。

-a =このスイッチは、アクティブなTCP接続、リスニング状態のTCP接続、およびリッスンされているUDPポートを表示します。

-b =このnetstatスイッチは、下記の-oスイッチと非常によく似ていますが、PIDを表示する代わりに、プロセスの実際のファイル名が表示されます。 -b over -oを使用すると、1つまたは複数のステップを省くように思えるかもしれませんが、netstatが完全に実行されるまでの時間を大幅に延長することがあります。

-e =このスイッチをnetstatコマンドとともに使用して、ネットワーク接続に関する統計情報を表示します。 このデータには、接続が確立された後に送受信されたバイト、ユニキャストパケット、非ユニキャストパケット、破棄、エラー、および未知のプロトコルが含まれます。

-f = -fスイッチは、可能であれば、各外部IPアドレスのFQDN( Fully Qualified Domain Name )を表示するようにnetstatコマンドを強制します。

-n = -nスイッチを使用して、netstatが外部IPアドレスのホスト名を判別しないようにします。 現在のネットワーク接続に応じて、このスイッチを使用すると、netstatが完全に実行されるまでの時間が大幅に短縮されます。

-o =多くのトラブルシューティング作業の便利なオプションである-oスイッチは、表示された各接続に関連付けられたプロセスID(PID)を表示します。 netstat -oの使用の詳細については、以下の例を参照してください。

-p =特定のプロトコルに対してのみ接続または統計情報を表示するには、 -pスイッチを使用します 。 一度に複数のプロトコルを定義することはできませんし、 プロトコルを定義しないで-pを指定してnetstatを実行することもできません。

protocol = -pオプションでプロトコルを指定する場合、 tcpudptcpv6 、またはudpv6を使用できます。 プロトコルで統計情報を表示するために-sとともに-sを使用する場合は、前述の最初の4つに加えてicmpipicmpv6 、またはipv6を使用できます。

-r = IPルーティングテーブルを表示する-rを指定してnetstatを実行します。 これはrouteコマンドを使ってroute printを実行するのと同じです。

-s = -sオプションをnetstatコマンドとともに使用すると、プロトコル別の詳細な統計情報を表示できます。 表示される統計情報を特定のプロトコルに限定するには、 -sオプションを使用してそのプロトコルを指定しますが、スイッチを一緒に使用する場合は-p プロトコルの前に必ず-sを使用してください。

-t =通常は表示されているTCP状態の代わりに、現在のTCP煙突オフロード状態を表示するには、 -tスイッチを使用します。

-x =すべてのNetworkDirectリスナー、接続、および共有エンドポイントを表示するには、 -xオプションを使用します。

-y = -yスイッチを使用すると、すべての接続のTCP接続テンプレートを表示できます。 -yは他のnetstatオプションと一緒に使用できません。

time_interval =これは、netstatコマンドを自動的に再実行し、 Ctrl-Cを使用してループを終了した場合にのみ停止する時間を秒単位で表したものです。

/? = ヘルプスイッチを使用し 、netstatコマンドのいくつかのオプションに関する詳細を表示します。

ヒント: リダイレクション演算子を使用して、画面に表示されている内容をテキストファイルに出力すると、コマンドラインのすべてのnetstat情報を簡単に操作できます。 詳細な手順は、コマンド出力をファイルにリダイレクトする方法を参照してください。

Netstatコマンドの例

netstat -f

この最初の例では、すべてのアクティブなTCP接続を表示するためにnetstatを実行します。 しかし、私は単純なIPアドレスではなく、FQDN形式[ -f ]で接続しているコンピュータを見たいと思っています。

表示される内容の例を次に示します。

アクティブな接続Protoローカルアドレス外部アドレス状態TCP 127.0.0.1:5357 VM-Windows-7:49229 TIME_WAIT TCP 127.0.0.1:49225 VM-Windows-7:12080 TIME_WAIT TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT TCP 192.168 .1.14:49196 a795sm.avast.com:http CLOSE_WAIT TCP 192.168.1.14:49197 a795sm.avast.com:http CLOSE_WAIT TCP 192.168.1.14:49230 TIM-PC:wsd TIME_WAIT TCP 192.168.1.14:49231 TIM-PC:icslap ESTABLISHED TCP 192.168.1.14:49232 TIM-PC:netbios-ssn TIME_WAIT TCP 192.168.1.14:49233 TIM-PC:netbios-ssn TIME_WAIT TCP [:: 1]:2869 VM-Windows-7:49226 TCP [:: 1]を設定しました。 :49226 VM-Windows-7:icslap ESTABLISHED

ご覧のとおり、私はnetstatを実行した時点で11のアクティブなTCP接続を持っていました。 リストされている唯一のプロトコル( Proto列内)はTCP です 。私は-aを使用しなかったので、期待されていました。

Local Address列には、私の実際のIPアドレス192.168.1.14と、 ループバックアドレスの IPv4とIPv6バージョンの3つのセットと、各接続が使用しているポートが表示されます。 [ 外部アドレス ]列には、FQDN( 75.125.212.75が何らかの理由で解決されなかった)とそのポートも一覧表示されます。

最後に、 Stateカラムには、その特定の接続のTCP状態がリストされます。

netstat -o

この例では、通常のnetstatを実行して、アクティブなTCP接続のみを表示したいのですが、接続ごとに対応するプロセス識別子[ -o ]も表示したいのです。

私のコンピュータに表示されるものは次のとおりです。

アクティブな接続Protoローカルアドレス外部アドレス状態PID TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT 2948 TCP 192.168.1.14:49196 a795sm:http CLOSE_WAIT 2948 TCP 192.168.1.14:49197 a795sm:http CLOSE_WAIT 2948

おそらく、新しいPID列に気づいたでしょう。 この場合、PIDはすべて同じです。つまり、コンピュータ上の同じプログラムがこれらの接続を開いたことを意味します。

私のコンピュータ上で2948のPIDで表されるプログラムを特定するには、 タスクマネージャを開いて[ プロセス ]タブをクリックし、 PID列で探しているPIDの横に表示されているイメージ名を確認するだけです。 1

netstatコマンドを-oオプションと一緒に使用すると、どのプログラムが帯域幅に占める割合が大きすぎるかを追跡する際に非常に役立ちます。 また、何らかの種類のマルウェアや正当なソフトウェアであっても、あなたの許可なしに情報を送信している場所を特定するのに役立ちます。

注:これと前の例は両方とも同じコンピュータ上で実行されていましたが、1分以内にアクティブなTCP接続のリストがかなり異なっていることがわかります。 これは、お使いのコンピュータが、ネットワーク上のさまざまな他のデバイスに常時接続しているか、インターネットから切断しているためです。

netstat -s -p tcp -f

この3番目の例では、プロトコル固有の統計情報[ -s ]は表示したいが、すべてではなく、TCP統計情報[ -p tcp ]だけを見たいと思う。 私はまた、FQDN形式[ -f ]で表示される外部アドレスも必要です。

上記のようにnetstatコマンドが私のコンピュータ上で生成されたものです:

現在の接続= 5セグメントの受信= 7313セグメントの送信= 4824セグメントの再送信= 5アクティブな接続プロトのローカルアドレス外部アドレスの状態TCP 127.0.0.1:IPv4アクティブなオープンのTCP統計= 77パッシブオープン= 21失敗した接続試行= 2869 VM-Windows-7:49235 TIME_WAIT TCP 127.0.0.1:2869 VM-Windows-7:49238 TCP 127.0.0.1:49238を設定VM-Windows-7:icslap ESTABLISHED TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT TCP 192.168.1.14:49196 a795sm.avast.com:http CLOSE_WAIT TCP 192.168.1.14:49197 a795sm.avast.com:http CLOSE_WAIT

ご覧のとおり、TCPプロトコルのさまざまな統計情報が表示されます。そのときのすべてのアクティブなTCP接続も表示されます。

netstat -e -t 5

この最後の例では、netstatコマンドを実行して、いくつかの基本的なネットワークインタフェースの統計情報[ -e ]を表示しました。これらの統計情報を5秒ごとにコマンドウィンドウで継続的に更新したいと考えました。

ここでは、画面上で何が生成されます:

インターフェイス統計受信済み送信バイト22132338 1846834ユニキャストパケット19113 9869非ユニキャストパケット0 0廃棄0 0エラー0 0未知プロトコル0インターフェイス統計受信送信バイト22134630 1846834ユニキャストパケット19128 9869非ユニキャストパケット0 0廃棄0 0エラー0 0不明プロトコル0 ^ C

ここで見ることができ、上記の-e構文にリストされているさまざまな情報が表示されます。

私はnetstatコマンドが自動的に1つの余分な時間を実行するようにしています。 一番下の^ Cに注意してください。これは、Ctrl-C abortコマンドを使用してコマンドの再実行を停止したことを示しています。

Netstat関連コマンド

netstatコマンドは、nslookup、 pingtracert 、ipconfigなどのネットワーク関連のコマンドプロンプトコマンドでよく使用されます。

[1] PID列をタスクマネージャに手動で追加する必要があるかもしれません。 これを行うには、タスクマネージャの「表示」 - >「列の選択」から「PID(プロセス識別子)」チェックボックスを選択します。 また、探しているPIDがリストされていない場合は、[プロセス]タブの[すべてのユーザーからプロセスを表示]ボタンをクリックする必要があります。