Netstatコマンドとは。その概要やオプション、使える場面は?

netstatは、ネットワーク関連でよく出てくるコマンドの一つです。

さまざまな機器やデバイスがネットワークに接続されている現代では、ネットワーク接続が正常かどうか、正しく情報がやりとりされているか、どのくらいの情報が流れているのかなどネットワーク状態を確認することはとても大切です。

netstatは、こうしたときに使われているコマンドの一つで、ネットワークエンジニアが覚えるべき基本の一つでもあります。

今回は、netstatコマンドの概要やその他のコマンドとの使い分け、実際の使い方などを解説していきます。

Winserverなら
Windows VPS業界最高レベルのコスパ
月額990円~ 2週間無料トライアル
2週間無料で試してみる

 

netstatは、どのようなコマンド?

netstatは、ネットワーク関連の調査や確認でよく使われるコマンドの一つです。

netstatコマンドは実際にどのようなものなのでしょうか。

ネットワークで重要なことの一つに「接続状態を把握する」ということがあります。

接続されているべき機器が正常に接続され、通信が行われているかどうか、どのくらいの情報が流されているのかといったことを確認するということがそれです。

こうした役割を果たしているのがnetstatコマンドです。

そうした意味では、ネットワークを扱う場合の基本的なコマンドの一つであると言えます。

netstatで得られる情報はどのようなもの?

ネットワーク関連の調査などで、netstatを実行することは多いと思いますが、このコマンドを実行することで得られる情報にはどのようなものがあるのでしょうか。

以下で、得られる情報を表にして整理しました。

項目内容
現在のソケットの状況ネットワーク接続やソケットの状況を表示
ルーティング情報ルーティングの設定や状況などの情報を表示
マルチキャストの情報マルキキャストの経路指定の内容や状況を表示
ネットワークインターフェースの状況ネットワークインターフェースの通信量などの状況を表示
IPマスカレードの情報IPマスカレードの動作状況の表示
各種プロトコルの状況プロトコルごとの通信やエラーなど統計情報の表示

なお、ソケットとはIPアドレスとポート番号を組み合わせて指定したものです。

netstatを含むネットワークエンジニアが使うさまざまなコマンド

ネットワークのさまざまな設定や接続状況、流れる情報の確認など、ネットワークエンジニアはnetstat以外にもさまざまなコマンドを使います。

以下では、ネットワークエンジニアが使うさまざまなコマンドを見ていきましょう。

コマンド役割使い方
netstatネットワークの接続状況や状態の確認netstatもしくはnetstat オプション
ipconfig (Windows)
ifconfig (Mac/Linux)
ネットワーク設定(IPアドレスなど)の確認ipconfig /allやifconfig -a
nslookupIPアドレスとホスト名の変換
DNSサーバーとの通信確認
nslookup サーバー名など
nbtstatIPアドレスとホスト名の変換nbtstat -a ホスト名
hostnameホスト名の確認hostname
pingネットワークの疎通確認ping 相手先
tracert (Windows)
traceroute (Mac/Linux)
ネットワークの経路確認tracert 相手先
arpIPアドレスとMACアドレスの「一覧を表示(過去に通信したもの)arp -a

これら以外にもネットワーク関連のコマンドはいろいろありますが、それぞれできることが違うので、目的に合わせて使い分けることが大切です。

netstatの使い方

ここまでnetstatについて解説してきましたが、実際にどのように使うのでしょうか。

以下では、netstatコマンドの使い方について見ていきましょう。

netstatの基本的な使い方

netstatコマンドは、実際にどのように使うのでしょうか。

基本的にnetstatコマンドは、コマンドラインで使用します。

Windowsではコマンドプロンプト、MacやLinuxではターミナルから、以下のように実行します。

netstat

これを実行すると、以下のように表示されます。

ここで表示されている各項目については、以下のようになっています。

項目内容備考
Proto使われているプロトコルTCPやUDPなど
Recv-Q接続されたユーザーに送られなかったデータ(バイト数)
Send-Qリモートホストが拒否したデータ(バイト数)
Local Addressローカル側のアドレスとポート番号
Foreign Address相手側アドレスとポート番号
(state)接続の状態 *下記に記載

なお、接続の状態(state)に関しては、以下のようになっています。

  • ESTABLISHED:接続が確立している
  • SYN_SENT:接続を試みている
  • SYN_RECV:接続要求を受信している
  • FIN_WAIT1:切断中のソケット
  • FIN_WAIT1:リモートからの切断を待っている
  • TIME_WAIT:リモートからの切断の再送を待っている
  • CLOSED:未使用のソケット
  • CLOSE_WAIT:リモート側から切断され、クローズを待っている
  • LAST_ACK:切断済みでクローズされているソケット
  • LISTEN:接続待ち
  • CLOSING :切断されているかすべてのデータが転送されていない
  • UNKNOWN:状態不明

このように、さまざまな項目にわたる情報を知ることができるだけでなく、接続状態も詳細に把握することができます。

netstatオプションを使いこなそう

netstatコマンドには、先ほど解説した使い方以外にも、さまざまなオプションがあります。

コマンドの形式としては、netstatは以下のようになっています。

netstat オプション

それを踏まえて例えば、以下のようなものがそれです。

オプションできること備考
-aすべての接続を表示
-c情報を1秒おきに更新して表示
-e情報を詳細に表示-eeでさらに詳細になる
-iすべてのネットワークインターフェースを表示Windowsでは使えない
-rルーティングテーブル(ルーティングキャッシュ)を表示
-s各プロトコルの統計情報を表示

これらは、目的に合わせてうまく使うことで、自分の知りたい得たい情報を得ることができるようになっています。

netstatの使い方〜応用編

標準的なnetstatの使い方と比べて、オプションを使うと目的に合わせてさまざまな得たい情報を得ることができるようになります。

ここでは、netstatコマンドで具体的に特定のオプションを使う例を見ていきましょう。

<使い方1:ルーティングテーブルの確認>

設計し、設定した通りのネットワーク経路で疎通が取れないとルーティングテーブルを確認します。

それは、以下のように行います。

netstat -r

これを実行すると以下のように、宛先ネットワークやゲートウェイ、インターフェースの情報を確認することができ、正しく設定されているかどうか確認できます。

Kernel IP routing table
Destination         Gateway             Genmask           Flags             MSS Window    irtt   Iface
111.222.333.0        *                       255.255.255.0      U                      0 0                 0    eth0
link-local               *                       255.255.0.0          U                      0 0                 0    eth0
default                ccc.ddd.eee.1     0.0.0.0                  UG                    0 0                 0    eth0

 

<使い方2:ネットワーク統計情報からプロトコルエラーを確認>

統計情報を確認するには、以下のオプションを使います。

netstat -s

このオプションを使うことで、以下のようにプロトコルごとの処理状況などを確認することができると同時にエラーの発生状況もチェックできます。

障害発生時などにも有効なオプションです。

tcp:
0 packet sent
0 data packet (0 byte)
0 data packet (0 byte) retransmitted
0 resend initiated by MTU discovery
0 ack-only packet (0 delayed)
0 URG only packet
0 window probe packet
0 window update packet
0 control packet
0 data packet sent after flow control
0 challenge ACK sent due to unexpected SYN
0 challenge ACK sent due to unexpected RST
0 checksummed in software
0 segment (0 byte) over IPv4
0 segment (0 byte) over IPv6
0 packet received
0 ack (for 0 byte)
0 duplicate ack
0 ack for unsent data
0 packet (0 byte) received in-sequence
0 completely duplicate packet (0 byte)
0 old duplicate packet

 

<使い方3:インターフェースごとの通信量の確認>

サーバーなど、複数のネットワークインターフェースがあるケースなどでは、ネットワークインターフェースごとの通信量を確認するケースもあります。

こうした場合は、以下のように行います。

netstat -i

これを実行すると、以下のようにインターフェースごとの受信と送信の情報量が把握できるようになります。

Name         Mtu      Network           Address                   Ipkts    Ierrs       Opkts    Oerrs     Coll
lo0              16384  <Link#1>                                         501190      0     501190           0         0
lo0              16384  127                    localhost                 501190      –     501190           –         –
lo0              16384  localhost           ::1                            501190      –     501190           –         –

netstatを使うときの注意

netstatは、ネットワーク接続やルーティングテーブルの状態など、ネットワーク関連の情報を確認する際にとても便利なコマンドです。

しかし、netstatを使うときには、いくつか注意すべきことがあります。

netstatを使う際には、以下の点に注意しておきましょう。

  • 実行に管理者権限が必要なオプションもある(-pなど)
  • 特定のOSだけで使えるオプションがある(-iなど)
  • OSのバージョンによって利用できないオプションがある

特にOSに依存したオプションはいろいろとあるので、実行時には自分が使おうとしているOSで使えるかどうか把握しておくことが大切です。

サーバー リプレース

まとめ

netstatは、ネットワークエンジニアやシステムエンジニアなど、インフラ関連に触れる情報処理技術者にとって基本とも言えるネットワークコマンドの一つです。

今回解説したように、netstatコマンド自体には、基本的な使い方以外にさまざまなオプションを駆使して、得たい情報を得ることでネットワークシステムの運用や障害対応などに幅広く使えるものとなっています。このコマンドは、非常に多くの場面で使えるものなのでぜひ理解して使いこなせるようにしておきましょう。

Winserver紹介資料

Winserver紹介資料

Windows Server専門のホスティングサービス「Winserver(ウィンサーバー)」の基本資料です。
各サービスの概要、特徴をまとめています。

Winserver紹介資料

Winserver紹介資料

Windows Server専門のホスティングサービス「Winserver(ウィンサーバー)」の基本資料です。
各サービスの概要、特徴をまとめています。

資料をダウンロードする

"VPS for 会計ソフト"

・コスパ◎ 会計ソフトが特別価格!
・テレワーク◎ 自宅から共同作業できる!

▶ プランを見る

関連記事

特集記事

Windows Serverなら「Winserver」

サーバー移行など、ご相談ください◎

Windows環境を利用するなら!

クラシックASPの移行事例をご紹介!

月額495円から使えるVPS

TOP