netstat は、 トラブルシューティングに便利なコマンド ライン ネットワーク ツールです。クロスプラットフォーム ユーティリティなので、Linux、macOS、または Windows で使用できます。
netstat は次のような場合に非常に便利です。
- 受信および送信ネットワーク接続を表示する
- ルーティングテーブルを表示する
- ネットワークインターフェース数の表示
- ネットワークプロトコル統計の表示
はじめましょうか…
すべての接続を表示
netstat から始めるために、すべての接続を表示するコマンドを見てみましょう。
netstat -a
上記のコマンドを入力して Enter キーを押します。以下に示すように、さまざまな状態のアクティブな接続がすべて表示されます。
C:\Windows\system32>netstat -a
Active Connections
Proto Local Address Foreign Address State
TCP 192.168.43.15:139 DESKTOP-A0PM5GD:0 LISTENING
TCP 192.168.43.15:52484 153:https ESTABLISHED
TCP 192.168.43.15:52532 ec2-13-228-49-204:https TIME_WAIT
UDP [fe80::998c:d2d:17df:65d9%12]:58903 *:*
Proto、Local Address、Foreign Address、State を含むヘッダーが表示されます。それらについての簡単な情報を見てみましょう。
- Proto – ソケットのプロトコル タイプ (TCP、UDP など) を定義します。
- ローカル アドレス – コンピュータの IP アドレスとポート、ソケットのローカル エンドが表示されます。
- 外部アドレス – コンピュータが接続されているリモート コンピュータ、つまりソケットのリモート エンドを表示します。
- 状態 – ソケットの状態 (LISTENING、ESTABLISHED、CLOSE_WAIT、TIME_WAIT) を定義します。
さまざまな方法で接続をフィルタリングできます。見てみましょう。
確立された接続のみを表示
接続情報で状態を確認しました。以下の構文を使用して、Windows サーバーとの間で確立されたすべての接続を表示できます。
netstat | findstr ESTABLISHED
C:\Windows\system32> netstat | findstr ESTABLISHED
TCP 172.16.179.128:49375 a23-77-202-113:http ESTABLISHED
C:\Windows\system32>
注: LISTEN、CLOSE_WAIT、TIME_WAIT を表示するには、次のように使用します。
LISTENING 状態にある接続を確認するには、前のコマンドの ESTABLISHED キーワードを LISTENING に変更します。次のように、リスニング状態にある接続に関する情報を取得します。
netstat | findstr LISTENING
C:\Windows\system32> netstat | findstr LISTENING
TCP 192.168.43.15:139 DESKTOP-A0PM5GD:0 LISTENING
同様に、次のコマンドを実行して、 CLOSE_WAIT 状態にあるすべての接続を表示します。
netstat | findstr CLOSE_WAIT
C:\Windows\system32> netstat | findstr CLOSE_WAIT
TCP 192.168.43.15:52581 ec2-52-1-183-160:https CLOSE_WAIT
TCP 192.168.43.15:52584 ec2-34-227-121-63:https CLOSE_WAIT
最後に、
TIME_WAIT
フラグを使用して、
TIME_WAIT
状態にあるすべての接続に関する情報を取得します。
netstat | findstr TIME_WAIT
C:\Windows\system32> netstat | findstr TIME_WAIT
TCP 192.168.43.15:52590 server-13-33-179-97:https TIME_WAIT
ポート番号で使用されるPIDを表示
すべての接続は内部プロセスです。そして、すべてのプロセスには ID があり、それは PID と呼ばれます。次のコマンドを使用して、すべてのソケット接続の PID を確認できます。
netstat -o
上記のコマンドは、PID を持つすべての接続を表示します。コマンドを実行して結果がどのように得られるかを見てみましょう。
C:\Windows\system32> netstat -o
Active Connections
Proto Local Address Foreign Address State PID
TCP 192.168.43.15:50664 40.90.189.152:https ESTABLISHED 3676
TCP 192.168.43.15:50733 40.90.189.152:https ESTABLISHED 10556
PID という追加の列が追加されました。そしてそれは プロセス識別子 です。
どの PID が特定のポート番号を使用しているかを調べる必要がある場合に非常に便利です。
netstat –o | findstr $portnumber
上記のコマンドを使用すると、次の情報が表示されます。
C:\Windows\system32> netstat -o | findstr 50664
TCP 192.168.43.15:50664 40.90.189.152:https ESTABLISHED 3676
すべてのプロトコルの統計を表示する
受信ヘッダー エラー、受信アドレス エラー、破棄されたパケットなどを確認する必要がある場合に役立ちます。IPv4、IPv6、ICMPv4、ICMPv6、TCP、UDP などの統計が一覧表示されます。
netstat –s
以下に示すように、すべてのプロトコルの統計が表示されます。
C:\Windows\system32> netstat -s
IPv4 Statistics
Packets Received = 1097370
Received Header Errors = 0
Received Address Errors = 9
Datagrams Forwarded = 0
Unknown Protocols Received = 0
Received Packets Discarded = 1425
Received Packets Delivered = 1098173
Output Requests = 743601
Routing Discards = 0
Discarded Output Packets = 43
Output Packet No Route = 23
Reassembly Required = 0
Reassembly Successful = 0
Reassembly Failures = 0
Datagrams Successfully Fragmented = 0
Datagrams Failing Fragmentation = 0
Fragments Created = 0
IPv6 Statistics
Packets Received = 24
Received Header Errors = 0
Received Address Errors = 0
Datagrams Forwarded = 0
Unknown Protocols Received = 0
Received Packets Discarded = 208
Received Packets Delivered = 519
Output Requests = 1507
Routing Discards = 0
Discarded Output Packets = 0
Output Packet No Route = 0
Reassembly Required = 0
Reassembly Successful = 0
Reassembly Failures = 0
Datagrams Successfully Fragmented = 0
Datagrams Failing Fragmentation = 0
Fragments Created = 0
ICMPv4 Statistics
Received Sent
Messages 52 143
Errors 0 0
Destination Unreachable 52 143
Time Exceeded 0 0
Parameter Problems 0 0
Source Quenches 0 0
Redirects 0 0
Echo Replies 0 0
Echos 0 0
Timestamps 0 0
Timestamp Replies 0 0
Address Masks 0 0
Address Mask Replies 0 0
Router Solicitations 0 0
Router Advertisements 0 0
ICMPv6 Statistics
Received Sent
Messages 0 25
Errors 0 0
Destination Unreachable 0 0
Packet Too Big 0 0
Time Exceeded 0 0
Parameter Problems 0 0
Echos 0 0
Echo Replies 0 0
MLD Queries 0 0
MLD Reports 0 0
MLD Dones 0 0
Router Solicitations 0 15
Router Advertisements 0 0
Neighbor Solicitations 0 5
Neighbor Advertisements 0 5
Redirects 0 0
Router Renumberings 0 0
TCP Statistics for IPv4
Active Opens = 4405
Passive Opens = 5
Failed Connection Attempts = 164
Reset Connections = 347
Current Connections = 19
Segments Received = 980542
Segments Sent = 674787
Segments Retransmitted = 5759
TCP Statistics for IPv6
Active Opens = 48
Passive Opens = 10
Failed Connection Attempts = 38
Reset Connections = 2
Current Connections = 0
Segments Received = 680
Segments Sent = 552
Segments Retransmitted = 128
UDP Statistics for IPv4
Datagrams Received = 117977
No Ports = 1385
Receive Errors = 1
Datagrams Sent = 54516
UDP Statistics for IPv6
Datagrams Received = 1036
No Ports = 208
Receive Errors = 0
Datagrams Sent = 1131
エラーをすぐに見つけるには、構文を使用できます。
netstat -s | findstr Errors
C:\Windows\system32> netstat -s | findstr Errors
Received Header Errors = 0
Received Address Errors = 0
Received Header Errors = 0
Received Address Errors = 0
Errors 0 0
Errors 0 0
Receive Errors = 0
Receive Errors = 0
C:\Windows\system32>
上記のコマンドは、すべてのプロトコルの統計からすべてのエラーをフィルタリングします。
ルーティング情報を表示する
ルート テーブルを表示するには、次の構文を使用できます。次の構文もすべてのインターフェイスをリストします。
netstat –r
上記のコマンドを使用すると、以下に示すようにルーティングに関する情報が表示されます。
C:\Windows\system32> netstat -r
===========================================================================
Interface List
4...8c 16 45 32 4d 3c ......Realtek PCIe GBE Family Controller
16...d4 6d 6d 27 8a 9a ......Microsoft Wi-Fi Direct Virtual Adapter
5...d6 6d 6d 27 8a 99 ......Microsoft Wi-Fi Direct Virtual Adapter #2
12...d4 6d 6d 27 8a 99 ......Intel(R) Dual Band Wireless-AC 3165
10...d4 6d 6d 27 8a 9d ......Bluetooth Device (Personal Area Network)
1...........................Software Loopback Interface 1
===========================================================================
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.43.1 192.168.43.15 55
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
192.168.43.0 255.255.255.0 On-link 192.168.43.15 311
192.168.43.15 255.255.255.255 On-link 192.168.43.15 311
192.168.43.255 255.255.255.255 On-link 192.168.43.15 311
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 192.168.43.15 311
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 192.168.43.15 311
===========================================================================
Persistent Routes:
Network Address Netmask Gateway Address Metric
0.0.0.0 0.0.0.0 10.30.28.1 Default
===========================================================================
IPv6 Route Table
===========================================================================
Active Routes:
If Metric Network Destination Gateway
1 331 ::1/128 On-link
12 311 fe80::/64 On-link
12 311 fe80::998c:d2d:17df:65d9/128
On-link
1 331 ff00::/8 On-link
12 311 ff00::/8 On-link
===========================================================================
Persistent Routes:
None
インターフェース統計の表示
すべてのインターフェイスのステータスを表示するには、次の構文を使用できます。これにより、受信および送信の詳細が表示されます。
netstat -e
C:\Windows\system32> netstat -e
Interface Statistics
Received Sent
Bytes 8988576 2105244
Unicast packets 12972 11880
Non-unicast packets 0 0
Discards 0 0
Errors 0 0
Unknown protocols 0
C:\Windows\system32>
外部アドレス (リモート ホスト) の完全修飾ドメイン名を表示する
いくつかの問題を追跡していて、リモート ホストの FQDN を知りたい場合は、次の構文を使用できます。
netstat –f
上記のコマンドを実行すると、次のような結果が表示されます。
C:\Windows\system32> netstat -f
Proto Local Address Foreign Address State
TCP 192.168.43.15:50664 40.90.189.152:https LISTENING
TCP 192.168.43.15:51437 104.27.119.115:https ESTABLISHED
注:
以下のように、
findstr
構文を組み合わせて正確な結果を表示できます。
netstat –f | findstr ESTABLISHED
上記のコマンドは接続をフィルタリングし、確立された接続のみを表示します。例を見てみましょう。
C:\Windows\system32> netstat -f | findstr ESTABLISHED
TCP 192.168.43.15:51437 104.27.119.115:https ESTABLISHED
次のコマンドを使用して、ドメインを使用して接続をフィルタリングできます。
netstat –f | findstr $domainnameifyouknow
コマンドでドメインを指定すると、次のようにフィルターされた接続が表示されます。
C:\Windows\system32> netstat -f | findstr ec2-52-202-6-97.compute-1.amazonaws.com
TCP 192.168.43.15:52573 ec2-52-202-6-97.compute-1.amazonaws.com:https ESTABLISHED
これが Windows での netstat コマンドの使用方法に慣れるのに役立つことを願っています。 Windows 管理の学習に興味がある場合は、この コース をチェックすることをお勧めします。