NETSTAT(1)

名称
netstat - ネットワークの状態を表示する

解説
netstat コマンドは、ネットワークに関連したさまざまなデータ構造の情報を、 シンボル表記を交えて表示します。 出力の形式は様々あり、指定したオプションによって変わります。

    netstat [-AaLnSW] [-f protocol_family | -p protocol] [-M core] [-N system] 各ネットワークプロトコル、または 特定の protocol_family あるいは単一の protocol についてアクティブなソケット (プロトコル制御ブロック) の一覧を表示します。 -A も指定された場合、ソケットに結び付けられた プロトコル制御ブロック (PCB) のアドレスを表示します。 デバッグ用に使用します。 -a も指定された場合、すべてのソケットを表示します。 通常はサーバプロセスに使用されているソケットは表示しません。 -L も指定された場合、 様々な listen 待ち行列の大きさを表示します。 1 番目の数は、受け付けられなかった接続数です。 2 番目の数は、受け付けられなかった不完全な接続数の合計です。 3 番目の数は、待ち行列に繋がれた接続の最大数です。 -S も指定された場合、 (-n と同じように) ネットワークアドレスを数字で表示しますが、 ポートはシンボル表記で表示します。

    netstat -i | -I interface [-abdnt] [-f address_family] [-M core] [-N system] 自動設定されているすべてのネットワークインタフェースまたは単一の interface の状態を表示します (システムに静的に組み込まれていても ブート時に存在していないインタフェースは表示されません)。 インタフェース名の後の (“*”) は、そのインタフェースが “down” していることを意味します。 -a も指定された場合、各イーサネットインタフェース および各 IP インタフェースアドレス について、現在使用されているマルチキャストアドレスが表示 されます。 マルチキャストアドレスは、 各々対応するインタフェースアドレスに続いて別個の行に表示 されます。 -b も指定された場合、入出力したバイト数を表示します。 -d も指定された場合、取りこぼしたパケット数を表示します。 -t も指定された場合、watchdog タイマの内容を表示します。 -W も指定された場合、フィールド幅を広くしてインタフェース名を表示します。

    netstat -w wait [-I interface] [-d] [-M core] [-N system] すべての設定済みネットワークインタフェースまたは単一の interface 上のパケットトラフィックに関する情報を wait 秒間隔で表示します。 -d も指定された場合、取りこぼしたパケット数も表示します。

    netstat -s [-s] [-z] [-f protocol_family | -p protocol] [-M core] [-N system] 各ネットワークプロトコル、または特定の protocol_family あるいは単一の protocol に対して、システム全体の統計情報を表示します。 -s が繰り返された場合、値が 0 のカウンタは省略されます。 -z も指定された場合、統計情報を表示した後リセットします。

    netstat -i | -I interface -s [-f protocol_family | -p protocol] [-M core] [-N system] 各ネットワークプロトコル、または特定の protocol_family あるいは単一の protocol に対して、インタフェースごとの統計情報を表示します。

    netstat -m [-M core] [-N system] メモリ管理ルーチン (mbuf(9)) によって記録されている統計情報を表示します。 ネットワークは、独自にメモリバッファを確保しています。

    netstat -r [-AanW] [-f address_family] [-M core] [-N system] 全て、または指定した address_family に関するルーティングテーブルを表示します。 -A も指定されていた場合、 内部 Patricia 木構造の内容を表示します。 デバッグ用に使用します。 -a も指定されていた場合、 プロトコル複製されたルート (親ルートを RTF_PRCLONING することによって生成されたルート) を表示します。 通常これらのルートは表示されません。 -W も指定されていた際には、 各ルートの path MTU と、広いフィールド幅のインタフェース名を表示します。

    netstat -rs [-s] [-M core] [-N system] ルーティングの統計情報を表示します。 -s が繰り返された場合、値が 0 のカウンタは省略されます。

    netstat -g [-W] [-f address_family] [-M core] [-N system] マルチキャスト (グループアドレス) ルーティングに関連した情報を 表示します。 デフォルトでは、IP マルチキャスト仮想インタフェースおよび ルーティングテーブル、マルチキャストグループメンバを表示します。

    netstat -gs [-s] [-f address_family] [-M core] [-N system] マルチキャストルーティングの統計情報を表示します。 -s が繰り返された場合、値が 0 のカウンタは省略されます。

いくつかのオプションは共通の意味で使えます。

-f address_family, -p protocol
    指定された address_family または単一の protocol に関するレコードのみを表示します。 以下のアドレスファミリまたはプロトコルが指定できます。

    ファミリ
        プロトコル
    inet (AF_INET)
        bdg, divert, icmp, igmp, ip, ipsec, pim, tcp, udp
    inet6 (AF_INET6)
        bdg, icmp6, ip6, ipsec6, rip6, tcp, udp
    pfkey (PF_KEY)
        pfkey
    atalk (AF_APPLETALK)
        ddp
    netgraph, ng (AF_NETGRAPH)
        ctrl, data
    ipx (AF_IPX)
        ipx, spx
    unix (AF_UNIX)
    link (AF_LINK)

    このプログラムは protocol が不明であったり対応する統計ルーチンが存在しなかったりした場合には 文句を言います。

-M  デフォルトで使用される /dev/kmem の代わりに指定した core から、ネームリストに関連する各値を 取り出します。

-N  システムが起動されたカーネルイメージ のかわりに、指定したシステムからネームリストを取り出します。

-n  ネットワークアドレスを数字で表示します。 通常、 netstat コマンドは、ネットワークアドレスとポートを可能な限り解決して シンボル表記で表示しようとします。

-W  ある表示において、欄が溢れる場合でも、アドレスを縮めません。

デフォルトのアクティブソケット表示では、ローカルおよびリモートアドレス、 送受信キューのサイズ(バイト単位)、プロトコル、そしてプロトコルの内部状態が それぞれ表示されます。 アドレス形式については、 “host.port” もしくは、ソケットのアドレスが ネットワーク単位でしか特定できない場合には “network.port” という形式が採用されます。 ホストもしくはネットワークアドレスがデータベース hosts(5) や networks(5) の内容にしたがって変換可能である場合、各アドレスはシンボル表記で 表示されます。 このような変換が不可能な場合、もしくは -n オプションが指定された場合には、アドレスはアドレスファミリに従って 数値で表示されます。 インターネット IPv4 の “ドット形式” についてさらに知りたい場合には、 inet(3) を参照して下さい。 特にアドレスが指定されてない場合や、アドレスが “ワイルドカード” 指定されている場合には、その部分のアドレスやポート番号のところには “*” が表示されます。

インタフェース表示では、パケット転送、エラー、コリジョンに関する 累積統計情報を見ることができます。 また、インタフェースの ネットワークアドレスおよび最大転送可能ユニットサイズ (“mtu”) も見ることができます。

ルーティングテーブル表示では、利用可能なルートとその状態が表示 されます。 各ルートは、到達先ホストもしくはネットワークと、 パケットの転送 (forward) に使用されるゲートウェイから成ります。 フラグフィールドは、 ルートに関する情報の集合が表示されます。 フラグフィールドの 個別のフラグに関する内容は、 route(8) および route(4) でより詳細に論ざれています。 表示される文字とフラグの間の対応は以下の通りです。
1 | RTF_PROTO1 | プロトコル特有のルーティングフラグ #1
2 | RTF_PROTO2 | プロトコル特有のルーティングフラグ #2
3 | RTF_PROTO3 | プロトコル特有のルーティングフラグ #3
B | RTF_BLACKHOLE | パケットを破棄 (更新中)
b | RTF_BROADCAST | ブロードキャストアドレスを表現するルート
C | RTF_CLONING | 使用時にルートを新たに生成する
c | RTF_PRCLONING | 使用時にプロトコル特有のルートを新たに生成する
D | RTF_DYNAMIC | (リダイレクトによって) 動的に生成される
G | RTF_GATEWAY | ゲートウェイ等による中継を必要としている到達先
H | RTF_HOST | ホストエントリ (これ以外はネットワーク)
L | RTF_LLINFO | リンクアドレスへ変換できるプロトコル
M | RTF_MODIFIED | (リダイレクトによって) 動的に変更される
R | RTF_REJECT | 到達不可能なホストもしくはネットワーク
S | RTF_STATIC | 手動で追加された
U | RTF_UP | 使用可能ルート
W | RTF_WASCLONED | クローンした結果として作成されたルート
X | RTF_XRESOLVE | 外部の daemon がプロトコルからリンクアドレス変換を行なう

直接到達可能なルートは、ローカルホストにアタッチされた各インタフェースごとに 生成されます。 このようなエントリのゲートウェイフィールドは、 対外インタフェースのアドレスを表します。 refcnt フィールドは、使用されているルートの現在数を示します。 コネクション指向のプロトコルは、通常、コネクションの間中 単一のルートを保持します。 他方で、コネクションレス型のプロトコルは、同じ到達先に対して パケットを送る場合にも、新たにルートを確保します。 use フィールドは、そのルートを通って送られたパケット数を表示します。 インタフェースエントリは、そのルート用に用いられる ネットワークインタフェースを表示します。

netstat が -w オプションと wait インターバル引数を与えられて起動された場合、ネットワークインタフェースに 関連した統計情報を定期的に表示します。 ほとんど使われませんが、オプション指定なしで数字だけを netstat の引数と して指定することもでき、本オプションと同様の動作をさせることができます。 しかし、この使い方は以前との互換性のためにのみ存在します。 デフォルトでは、本表示は すべてのインタフェースについてのサマリ情報からなります。 -I オプションを用いることで、特定の インタフェースの情報を表示させることが可能です。

関連項目
fstat(1), nfsstat(1), ps(1), sockstat(1), inet(4), route(4), unix(4), hosts(5), networks(5), protocols(5), services(5), iostat(8), route(8), trpt(8), vmstat(8), mbuf(9)

歴史
netstat コマンドは、 4.2BSD にはじめて登場しました。

IPv6 サポートは WIDE/KAME プロジェクトが追加しました。

バグ
エラーの概念については、定義が間違っています。