【Linux入門】netstat コマンド:ポートの状態を確認する
コマンドの概要
「netstat」コマンドは、Linuxシステム上でネットワーク関連の情報を表示するためのユーティリティです。ネットワーク接続やルーティングテーブル、インターフェースの状態など、さまざまな情報を表示できます。
主なオプションと説明
オプション | 説明 |
---|---|
-t | TCP接続の情報を表示する。 |
-u | UDP接続の情報を表示する。 |
-l | リスニング(待ち受け)状態のポートの情報を表示する。 |
-a | 全ての接続およびリスニング(待ち受け)状態のポートを表示する。 |
-n | 名前解決をせずに数字で表示する。 |
-p | プロセスIDとプログラム名を表示する。 |
-r | ルーティングテーブルの情報を表示する。 |
-s | プロトコルごとの統計情報を表示する。 |
-e | 詳細情報を表示する。 |
-c | 一定間隔で情報を表示し続ける。 |
コマンドの使用例と解説
1.TCP接続の情報を表示する。
このコマンドは、TCP接続の情報のみを表示します。
$ netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost.localdo:59694 93.243.107.34.bc.:https ESTABLISHED
tcp 0 0 localhost.localdo:42098 123.208.120.34.bc:https ESTABLISHED
tcp 0 0 localhost.localdo:43410 191.144.160.34.bc:https ESTABLISHED
tcp 0 0 localhost.localdo:45864 209.100.149.34.bc:https ESTABLISHED
2.UDP接続の情報を表示する。
このコマンドは、UDP接続の情報のみを表示します。
$ netstat -u
3.リスニング状態のポートの情報を表示する。
このコマンドは、リスニング(待ち受け)状態のポートの情報のみを表示します。
$ netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost.locald: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 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
4.全ての接続およびリスニング状態のポートを表示する。
このコマンドは、全ての接続およびリスニング状態のポートの情報を表示します。
$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost.locald: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 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 localhost.localdo:59694 93.243.107.34.bc.:https ESTABLISHED
tcp 0 0 localhost.localdo:42098 123.208.120.34.bc:https TIME_WAIT
tcp 0 0 localhost.localdo:48882 239.237.117.34.bc:https TIME_WAIT
(略)
5.プロセスIDとプログラム名と共にポートの情報を表示する。
このコマンドは、プロセスIDとプログラム名と共にポートの情報を表示します。rootユーザーに切り替えてnetstatコマンドを実行します。
$ su -
パスワード:
最終ログイン: 2024/02/21 (水) 23:27:53 JST日時 pts/0
[root@localhost ~]# netstat -p
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost.localdo:59694 93.243.107.34.bc.:https ESTABLISHED 3649/firefox
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ] DGRAM 18432 710/chronyd /var/run/chrony/chronyd.sock
unix 2 [ ] DGRAM 12616 1/systemd /run/systemd/shutdownd
unix 3 [ ] DGRAM 7638 1/systemd /run/systemd/notify
unix 2 [ ] DGRAM 7640 1/systemd /run/systemd/cgroups-agent
unix 5 [ ] DGRAM 7654 1/systemd /run/systemd/journal/socket
(省略)
6.ルーティングテーブルを表示する。
このコマンドは、ルーティングテーブルを表示します。
# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 enp0s3
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
まとめ
「netstat」コマンドは、ネットワーク接続やポートの利用状況を確認する際に便利なツールです。ネットワークのトラフィック状況を把握したり、ネットワークトラブルシューティングを行う際に役立ちます。