NETSTAT(8)

名前
netstat - ネットワーク接続、経路テーブル、インターフェースの状態、マスカレード接続、 netlink メッセージ、マルチキャストのメンバーシップを表示する

書式

netstat [address_family_options] [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--symbolic|-N] [--extend|-e[--extend|-e]] [--timers|-o] [--program|-p] [--verbose|-v] [--continuous|-c]

netstat {--route|-r} [address_family_options] [--extend|-e[--extend|-e]] [--verbose|-v] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c]

netstat {--interfaces|-i} [iface] [--all|-a] [--extend|-e[--extend|-e]] [--verbose|-v] [--program|-p] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c]

netstat {--groups|-g} [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c]

netstat {--masquerade|-M} [--extend|-e] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c]

netstat {--statistics|-s} [--tcp|-t] [--udp|-u] [--raw|-w]

netstat {--version|-V}

netstat {--help|-h}

address_family_options:

[--protocol={inet,unix,ipx,ax25,netrom,ddp}[,...]] [--unix|-x] [--inet|--ip] [--ax25] [--ipx] [--netrom] [--ddp]

説明
netstat は Linux のネットワークシステムに関する情報を表示する。 表示される情報のタイプは、最初の引き数で以下のように制御される。

  (引き数なし)
デフォルトでは、 netstat はオープンされているソケットの一覧を表示する。 アドレスファミリーが指定されていなければ、 設定されている全てのアドレスファミリーに関して、 アクティブなソケットが表示される。

  --route , -r
カーネルの経路テーブルを表示する。

  --groups , -g
IPv4 と IPv6 のマルチキャストグループメンバーシップ情報を表示する。

  --interface=iface , -i
全ての (あるいは iface で指定した) ネットワークインターフェースの状態テーブルを表示する。

  --masquerade , -M
マスカレードされた接続を表示する。

  --statistics , -s
各プロトコルの統計情報の一覧を表示する。

オプション

  --verbose , -v
詳細表示モードになり、起こっていることをユーザーに知らせる。 特に、設定されていないアドレスファミリー関する有用な情報をいくつか表示する。

  --numeric , -n
ホスト・ポート・ユーザーなどの名前を解決せずに、数字のアドレスで表示する。

  --numeric-hosts
ホストアドレスを数値で表示する。 ただし、ポート名とユーザー名の解決は行う。

  --numeric-ports
ポート番号を数値で表示する。 ただし、ホスト名とユーザー名の解決は行う。

  --numeric-users
ユーザー ID を数値で表示する。 ただし、ホスト名とポート名の解決は行う。

  --protocol=family , -A
接続状態を表示するアドレスファミリーを指定する (低レベルのプロトコルを指定すれば、 アドレスファミリーをうまく記述できるだろう)。 family はコンマ (',') で区切られたリストで、 アドレスファミリーのキーワードを指定する。 キーワードとして inet, unix, ipx, ax25, netrom, ddp が指定できる。 これは、 --inet, --unix (-x), --ipx, --ax25, --netrom, --ddp オプションを使った場合と同じ効果がある。

アドレスファミリー inet には raw, udp, tcp プロトコルソケットが含まれる。

  -c, --continuous
指定された情報を 1 秒ごとに表示し続ける。

  -e, --extend
さらに詳しい情報を表示する。 このオプションを 2 個指定すれば最も詳しい表示が得られる。

  -o, --timers
ネットワーキングタイマーに関する情報が追加される。

  -p, --program
各ソケットが属しているプログラムの PID と名前が表示される。

  -l, --listening
接続待ち (listen) 状態にあるソケットのみを表示する (このオプションはデフォルトでは省略される)。

  -a, --all
接続待ち状態にあるソケットも、接続待ち状態にないソケットも表示する。 --interfaces オプションが指定された場合、 マークされていないインターフェースを表示する。

  -F
FIB からの経路情報を表示する (これはデフォルトである)。

  -C
経路キャッシュからの経路情報を表示する。

出力

  アクティブなインターネット接続 (TCP, UDP, raw)

  Proto
ソケットで用いられているプロトコル (tcp, udp, raw のいずれか)。

  Recv-Q
このソケットに接続されたユーザープログラムに渡されなかったデータのバイト数。

  Send-Q
リモートホストに受け入れられなかったデータのバイト数。

  Local Address
ローカル側ソケットのアドレスとポート番号。 --numeric (-n) オプションが指定されない限り、 ソケットアドレスは正式なホスト名 (FQDN) になり、 ポート番号は対応するサービス名に変換される。

  Foreign Address
リモート側ソケットのアドレスとポート番号。 その他は "Local Address" と同様である。

  State
ソケットの状態 (state)。 raw モードには状態がなく、また UDP も通常状態を使用しないため、 この項目は空白になっている。 普通は以下の値のどれか:

ESTABLISHED
    ソケットは確立した接続状態にある。

SYN_SENT
    ソケットは接続を確立しようと試みている。

SYN_RECV
    接続要求をネットワークから受信している。

FIN_WAIT1
    ソケットはクローズされており、接続は切断中である。

FIN_WAIT2
    接続はクローズされ、ソケットはリモート側からの切断を待っている。

TIME_WAIT
    ソケットは、クローズ後にリモートからの切断が再送されるのを待っている。

CLOSED
    ソケットは使用されていない。

CLOSE_WAIT
    リモート側は既に切断され、ソケットがクローズされるのを待っている。

LAST_ACK
    リモート側は既に切断され、ソケットもクローズされている。 確認 (acknowledgement) を待っている。

LISTEN
    ソケットは接続待ち (listen) である。 このようなソケットは、 --listening (-l) または --all (-a) オプションを指定しない限り、出力には含まれない。

CLOSING
    両方のソケットが切断されているが、まだ全てのデータが送られていない。

UNKNOWN
    ソケットの状態は不明である。

  User
ソケットのオーナーの、名前またはユーザー ID (UID)。

  PID/Program name
このソケットを所有しているプログラムの プロセス ID (PID) とプログラム名の対 (スラッシュで区切られる)。 --program オプションによってこの項目が現れる。 自分が所有していないソケットの情報を見るためには、 スーパーユーザー 特権が必要である。 この識別情報は IPX ソケットに対してはまだ利用できない。

  Timer
(まだ書いていない)

  アクティブな UNIX ドメインソケット

  Proto
ソケットで用いられているプロトコル (通常は unix)。

  RefCnt
参照カウント (このソケットに接続されているプロセス数)。

  Flags
表示されるフラグは SO_ACCEPTON (ACC と表示される)、 SO_WAITDATA (W)、 SO_NOSPACE (N) である。 SO_ACCEPTON は、ソケットが接続されておらず、 かつそれを用いているプログラムが接続要求を待っている場合に用いられる。 他のフラグは通常は重要ではない。

  Type
ソケットアクセスのタイプ。何種類かある:

SOCK_DGRAM
    データグラム (connectionless) モードのソケットである。

SOCK_STREAM
    ストリーム (connection) ソケットである。

SOCK_RAW
    raw ソケットである。

SOCK_RDM
    信頼性の高いメッセージを届けるソケットである。

SOCK_SEQPACKET
    シーケンシャルパケットのソケットである。

SOCK_PACKET
    raw インターフェースアクセスのソケットである。

UNKNOWN
    将来なにが起こるか誰が知ろうか - ここに書いて下さい :-)

  State
このフィールドには、以下のキーワードのいずれかが入る:

FREE
    ソケットは割り当てられていない。

LISTENING
    ソケットは接続要求の待ち状態である。 これらのソケットは、 --listening (-l) または --all (-a) オプションが指定されない限り、出力されない。

CONNECTING
    ソケットは接続中である。

CONNECTED
    ソケットは接続されている。

DISCONNECTING
    ソケットは切断中である。

(空白)
    ソケットは他のソケットに接続されていない。

UNKNOWN
    このステートは現われないはずである。

  PID/Program name
このソケットをオープンしているプログラムのプロセス ID (PID) とプロセス名。 より詳しい情報は上記の アクティブなインターネット接続 の項を参照のこと。

  Path
ソケットに結び付けられているプロセスのパス名。

  アクティブな IPX ソケット
(知識を持っている人が記述してほしい)

  アクティブな NET/ROM ソケット
(知識を持っている人が記述してほしい)

  アクティブな AX.25 ソケット
(知識を持っている人が記述してほしい)

注意
カーネルリリース 2.2 から、 netstat -i では別名インターフェースの インターフェース統計を表示しなくなった。 別名インターフェース毎の統計を得るためには、 ipchains(8) コマンドを用いて明示的にルールを設定する必要がある。

ファイル
/etc/services -- サービス名と番号の変換表が入ったファイル

/proc -- proc ファイルシステムのマウントポイント。 このファイルシステムにより、 以下のファイルを使ってカーネルの統計情報にアクセスできる。

/proc/net/dev -- デバイスの情報

/proc/net/raw raw ソケットの情報

/proc/net/tcp -- TCP ソケットの情報

/proc/net/udp -- UDP ソケットの情報

/proc/net/igmp -- IGMP マルチキャストの情報

/proc/net/unix -- Unix ドメインソケットの情報

/proc/net/ipx -- IPX ソケットの情報

/proc/net/ax25 -- AX25 ソケットの情報

/proc/net/appletalk -- DDP (appletalk) ソケットの情報

/proc/net/nr -- NET/ROM ソケットの情報

/proc/net/route -- IP 経路情報

/proc/net/ax25_route -- AX25 経路情報

/proc/net/ipx_route -- IPX 経路情報

/proc/net/nr_nodes -- NET/ROM ノードリスト

/proc/net/nr_neigh -- NET/ROM ネイバー (neighbour)

/proc/net/ip_masquerade -- マスカレード接続

/proc/net/snmp -- 統計情報

関連項目
route(8), ifconfig(8), ipchains(8), iptables(8), proc(5)

バグ
ソケットが表示中に変更されると、たまに妙な情報が表示されることがある。 あまり起こらないとは思うが。

著者
netstat のユーザーインターフェースは Fred Baumgarten <dc6iq@insu1.etec.uni-karlsruhe.de> が書いた。 マニュアルページは主に Matt Welsh <mdw@tc.cornell.edu> が書き Alan Cox <Alan.Cox@linux.org> が更新した。 しかし、作業はあまり多くなかった。 そしてさらに Tuan Hoang <tqhoang@bigfoot.com> が更新した。
net-tools パッケージに入っているマニュアルページとコマンドは、 Bernd Eckenfels <ecki@linux.de> が全体的に書き直した。