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