Linuxコマンド辞典 netstatコマンド(ネットワーク)
通信状況やルーティングテーブルを表示する「netstat」コマンドの概要と使い方を記載しています。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
目次
概要・使用方法
書式
$ netstat [オプション] ネットワーク接続/ルーティングテーブル/インターフェース/マスカレード/マルチキャストなどの状態を表示します。
netstatで示される項目
| 項目 | 説明 |
|---|---|
| Proto | ソケットで利用されるプロトコル(tcp/udp/rawのいずれか) |
| Recv-Q | ソケットに接続したプログラムに渡されていないデータのバイト数 |
| Send-Q | 宛先ホストに受け入れられなかったデータのバイト数 |
| Local Address | ローカルアドレスとポート番号 |
| Foreign Address | 宛先アドレスとポート番号 |
| State | ソケットと接続の状態 |
| User | ソケットのオーナーもしくはユーザ名 |
| PID | ソケットを所有しているプログラムのプロセスIDとプログラム名 |
| RefCnt | ソケットを利用しているプロセス数 |
| Type | ソケットのタイプ |
| Path | プロセスが接続しているソケットのパス |
ソケット状態の表示項目
| ESTABLISHED | ソケットは確立され接続している |
| SYN_SENT | ソケットを確立しようとSYNを送っている |
| SYN_RECV | 接続要求をリモートから受信している |
| FIN_WAIT1 | ソケットは閉じられ接続は切れている |
| FIN_WAIT2 | 接続先からの切断を待っている |
| TIME WAIT | ソケットを閉じたが宛先から切断が来ていない |
| CLOSE | ソケットが使用されていない |
| CLOSE_WAIT | 接続先とは切断している、ソケットが閉じるのを待っている |
| LAST_ACK | 接続先とは切断し、ソケットも閉じている。ACK(了承)待ち |
| LISTEN | ソケットが待ち状態 |
| CLOSING | 両ホストのソケットは閉じているが送信していないデータがある |
| UNKNOWN | ソケットの状態がわからない |
接続状態の表示項目
| 項目 | 説明 |
|---|---|
| FREE | ソケットが割り当てられていない |
| LISTENING | 待受中 |
| CONNECTING | 接続が確立中 |
| CONNECTED | 接続中 |
| DISCONNECTING | 切断中 |
| 空 | 接続していない |
| UNKNOWN | 状態不明 |
ソケットのタイプ
| タイプ | 説明 |
|---|---|
| DGRAM | プロセスがUDP接続するためのコネクションレスなデータグラムモード |
| STREAM | プロセスがTCP接続するためのストリートモード |
| RAW | プロセスがICMPなどを利用するためのRAWモード |
オプション
| -r –route | ルーティングテーブル情報を表示する |
| -g –groups | IPv4、IPv6のマルチキャストグループ情報を表示する |
| -i –interfaces | すべてのインターフェースの状態を表示する |
| -s –statistics | 各プロトコルの統計情報を表示する |
| -M –masquerade | マスカレードされた接続を表示する |
| -t –tcp | TCPの情報を表示する |
| -u –udp | UDPの情報を表示する |
| -x –unix | UNIXドメインの情報を表示する |
| -w raw –raw | (TCPでもUDPでもないその他のプロトコル)の情報を表示する |
| -v –verbose | 冗長モードで詳細に表示する |
| -n –numeric | ホスト名の名前解決を行わない |
| –numeric-hosts | ホストのみ名前解決を行わない。ユーザとポートは名前解決を行う |
| –numeric-ports | ポートのみ名前解決を行わない。ユーザとホストは名前解決を行う |
| –numeric-users | ユーザのみ名前解決を行わない。ホストとポートは名前解決を行う |
| -6 | IPv6情報を表示する |
| -4 | IPv4情報を表示する |
| -A アドレスファミリ –protocol=アドレスファミリ | 利用するアドレスファミリを(「,」区切りで)指定する |
ルーティング情報と利用ソケットを表示する
$ netstat実行結果
[rin@centos ~]$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 36 centos:ssh 192.168.0.29:50698 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 211486 /run/user/1002/systemd/notify
unix 4 [ ] DGRAM 11827 /run/systemd/notify
unix 2 [ ] DGRAM 11829 /run/systemd/cgroups-agent
unix 7 [ ] DGRAM 11844 /run/systemd/journal/socket
unix 23 [ ] DGRAM 11860 /run/systemd/journal/dev-log
unix 3 [ ] STREAM CONNECTED 266025
unix 3 [ ] STREAM CONNECTED 265771
unix 3 [ ] STREAM CONNECTED 264854
unix 3 [ ] STREAM CONNECTED 24550
unix 3 [ ] STREAM CONNECTED 24428
unix 3 [ ] STREAM CONNECTED 263310 /run/systemd/journal/stdout
・
・
・開いているTCPポートを表示する
$ netstat -lt実行結果
[rin@centos ~]$ netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 centos:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:ipp [::]:* LISTEN
tcp6 0 0 [::]:mysqlx [::]:* LISTEN
tcp6 0 0 [::]:mysql [::]:* LISTEN
tcp6 0 0 [::]:sunrpc [::]:* LISTEN TCPのソケット状態をすべて表示する
$ netstat -tan実行結果
[rin@centos ~]$ netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 36 192.168.0.60:22 192.168.0.29:50698 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 :::33060 :::* LISTEN
tcp6 0 0 :::3306 :::* LISTEN
tcp6 0 0 :::111 :::* LISTEN
[rin@centos ~]$ ルーティング情報を名前解決せずに表示する
$ netstat -rn実行結果
[rin@centos ~]$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 ➊
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 ➋
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 ➌
[rin@centos ~]$ ➊の「Genmask」が「0.0.0.0」の行で示されるGatewayは「デフォルトゲートウェイ」として、標準経路でeth0のデバイスが使われます。➋と➌はそれぞれ違うネットワークで、❷のネットワークはこのホストが所属するネットワークと推測できます。Getewayが「0.0.0.0」でIfaceがeth0になっているので、デフォルトゲートウェイは「192.168.0.1」を経由してネットワークに接続します。➌はGetewayが「0.0.0.0」ですがIfaceが「virbr0」です。ネットワーク「192.168.122.0」への接続はデフォルトゲートウェイとは異なる経路で接続されることを示します。
オープンしているソケットの利用プログラムを表示する
$ netstat -pn | head -n 10実行結果
[rin@centos ~]$ netstat -pn | head -n 10
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 36 192.168.0.60:22 192.168.0.29:50698 ESTABLISHED -
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ] DGRAM 211486 12771/systemd /run/user/1002/systemd/notify
unix 4 [ ] DGRAM 11827 - /run/systemd/notify
unix 2 [ ] DGRAM 11829 - /run/systemd/cgroups-agent
unix 7 [ ] DGRAM 11844 - /run/systemd/journal/socket
unix 23 [ ] DGRAM 11860 - /run/systemd/journal/dev-log