- 1. 概要
- 2. netstat 状態表示
- 3. netstat 一覧表示
- 4. sockstat
- 5. Linux
- 6. 参考サイト
1. 概要
「netstat」は、ネットワークの状態を表示するコマンドです。
「sockstat」は、開いているソケットを列挙するコマンドです。
「Linux」の場合、「net-tools」というパッケージをインストールしていないと、「netstat」はインストールされていません。
「Linux」では、「sockstat」はありません。
2. netstat 状態表示
ネットワークの状態(オープン中のサーバポートや接続中のアドレス・ポート番号)を表示します。
このコマンドは非常に使いこなすのが難しくて、はっきり言えばわたしも使いこなしていないのです。
単に。
netstat
と入力すると、以下のように表示されます。
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 ns.local.ssh pc01.local.1146 ESTABLISHED
tcp4 0 0 localhost.953 *.* LISTEN
tcp6 0 0 localhost.953 *.* LISTEN
tcp4 0 0 localhost.domain *.* LISTEN
・・・ 略 ・・・
udp4 0 0 ns.local.ntp *.*
Active UNIX domain sockets
Address Type Recv-Q Send-Q Inode Conn Refs Nextref Addr
c514bdc0 stream 0 0 0 c514be00 0 0
・・・ 略 ・・・
c514afc0 dgram 0 0 c5148680 0 c514be80 0 /var/run/log
詳しい説明は省略しますが、上記で簡単に説明すると。
「pc01.local」というクライアントが、「ssh」でログインして作業中であるということがわかります。
ポート番号「953」を使うサーバプログラムが、「IPv4」と「IPv6」で接続待ち状態であることがわかります。
「DNS」サーバや「NTP」サーバが動作中であるということがわかります。
3. netstat 一覧表示
netstat [-AaLnSW] [-f protocol_family | -p protocol] [-M core] [-N system]
「IPv4」の状態を見るには、「-f」オプションを使用します。
「-f」はアドレスファミリーを指定します。
「-p」でプロトコルと組み合わせることもできます。
ファミリ | 意味 | 設定可能なプロトコル |
inet | IPv4 | bdg, divert, icmp, igmp, ip, ipsec, pim, tcp, udp |
inet6 | IPv6 | bdg, icmp6, ip6, ipsec6, rip6, tcp, udp |
例)
netstat -f inet
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 vm.ssh 172.20.10.2.52089 ESTABLISHED
udp4 0 0 vm.domain *.*
udp4 0 0 localhost.domain *.*
udp4 0 0 localhost.ntp *.*
udp4 0 0 vm.ntp *.*
netstat -f inet -p tcp
Active Internet connections
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp4 0 0 vm.ssh 172.20.10.2.52089 ESTABLISHED
4. sockstat
「sockstat」は、開いているソケットを列挙するコマンドです。
基本形は。
sockstat [-46clu] [-p ports]
主なオプションは、下記の通り。
オプション | 意 味 | 備考 |
-4 | IPv4 を表示 | |
-6 | IPv6 を表示 | |
-c | connect しているソケット数を表示 | |
-l | listen しているソケット数を表示 | |
メールサーバの「imap」を「dovecot」が使用している場合。
sockstat -4 -l -p 143
上記のコマンドの結果は、例えば、下記のように表示されます。
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root dovecot 68174 39 tcp4 *:143 *:*
列挙される情報は、下記の意味を持ちます。
項 目 | 意 味 | 備考 |
USER | ソケットを所有するユーザ | |
COMMAND | ソケットを保持するコマンド | |
PID | ソケットを保持するコマンドの、プロセス ID | |
FD | ソケットのファイルディスクリプタ | |
PROTO | 関連付けられている、転送プロトコル | |
LOCAL ADDRESS | ローカルアドレス | |
FOREIGN ADDRESS | リモートアドレス | |
5. Linux
「Linux」の場合、「sockstat」に相当するものとして、「ss」「lsof」があります。
「lsof」は、「netstat」と同様、「net-tools」というパッケージをインストールする必要があります。
「ss」の基本形は、下記の通り。
ss [options] [ FILTER ]
主なオプションは、下記の通り。
オプション | 意味 | 備考 |
-l | listen 状態のソケットのみ | |
-t | tcp | |
-u | udp | |
-n | 名前解決しない(数値表示) | |
-p | プロセス情報(PID/名前) | |
「Ubuntu 25.04」で試してみました。
$ ss -ltp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 127.0.0.54:domain 0.0.0.0:*
LISTEN 0 4096 127.0.0.1:ipp 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:domain 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:ssh 0.0.0.0:*
LISTEN 0 4096 [::]:ssh [::]:*
LISTEN 0 4096 [::1]:ipp [::]:*
「lsof」の基本形は下記の通り(長ぇよ)。
lsof [ -?abChHlnNOPQRtUvVX ] [ -A A ] [ -c c ] [ +c c ] [ +|-d d ] [ +|-D D ] [ +|-e s ] [ +|-E ] [ +|-f [cfgGn] ] [ -F [f] ] [ -g [s] ] [ -i [i] ] [ -k k ] [ -K k ] [ +|-L [l] ] [ +|-m m ] [ +|-M ] [ -o [o] ] [ -p s ] [ +|-r [t[m]] ] [ -s [p:s] ] [ -S [t] ] [ -T [t] ] [ -u s ] [ +|-w ] [ -x [fl] ] [ -z [z] ] [ -Z [Z] ] [ -- ] [names]
ユーザ配下のプロセスについて表示するので、管理者権限で実行しないと、システム全体は見ることができません。
実際には、プロセスが、オープンしているファイルになりますので、下記のオプションを組み合わせて使用します。
オプション | 意 味 | 備 考 |
-P | ポート番号を名前に変換しない | |
-n | アドレスを名前に変換しない | こちらは使わなくてもよい |
「Ubuntu 25.04」で試してみました。
$ sudo lsof -i -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root 313u IPv4 9513 0t0 TCP *:22 (LISTEN)
systemd 1 root 317u IPv6 9515 0t0 TCP *:22 (LISTEN)
systemd-r 306 systemd-resolve 14u IPv4 5001 0t0 UDP _localdnsstub:53
systemd-r 306 systemd-resolve 15u IPv4 5002 0t0 TCP _localdnsstub:53 (LISTEN)
systemd-r 306 systemd-resolve 16u IPv4 5003 0t0 UDP _localdnsproxy:53
systemd-r 306 systemd-resolve 17u IPv4 5004 0t0 TCP _localdnsproxy:53 (LISTEN)
avahi-dae 754 avahi 12u IPv4 10073 0t0 UDP *:5353
avahi-dae 754 avahi 13u IPv6 10074 0t0 UDP *:5353
avahi-dae 754 avahi 14u IPv4 10075 0t0 UDP *:51372
avahi-dae 754 avahi 15u IPv6 10076 0t0 UDP *:51785
NetworkMa 941 root 26u IPv4 12453 0t0 UDP ubuntu2504.sing.ne.jp:68->_gateway:67
cupsd 1412 root 6u IPv6 13824 0t0 TCP ip6-localhost:631 (LISTEN)
cupsd 1412 root 7u IPv4 13825 0t0 TCP localhost:631 (LISTEN)
sshd 2510 root 3u IPv4 9513 0t0 TCP *:22 (LISTEN)
sshd 2510 root 4u IPv6 9515 0t0 TCP *:22 (LISTEN)
sshd-sess 2513 root 4u IPv4 19633 0t0 TCP ubuntu2504.sing.ne.jp:22->192.168.10.102:52038 (ESTABLISHED)
sshd-sess 2574 hogehoge 4u IPv4 19633 0t0 TCP ubuntu2504.sing.ne.jp:22->192.168.10.102:52038 (ESTABLISHED)
6. 参考サイト
本ページは、「ChatGPT」くんを参考にさせていただきました。
|