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ユーザのみ名前解決を行わない。ホストとポートは名前解決を行う
-6IPv6情報を表示する
-4IPv4情報を表示する
-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