ss -p
TCP ソケット情報を確認するために使用しています。ただし、一部のソケットのプロセス情報は印刷されません。以下:
$ ss -p4
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 10.146.18.213:50368 199.7.59.72:http
しかし、sudo を使用すると、プロセス情報を見ることができます:
$ sudo ss -p4
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 10.146.18.213:50368 199.7.59.72:http users:(("sshd",473,18))
では、ルートなしでnetstat -net
、ユーザーを確認できます:
$ netstat -net
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode
tcp 0 0 10.146.18.213:50368 199.7.59.72:80 ESTABLISHED 222 3693189
私のユーザーIDは222です:
$ id -u
222
しかし、ss はルートでのみプロセス情報を表示します。
私の質問は次のとおりです:
- ユーザーが関連付けられていないソケットが存在するのはなぜですか?
- ユーザーがいないこれらのソケットは、
owner
iptables のモジュール マッチングの対象になりますか?
答え1
「sudo ss」はユーザー sshd に関連する接続を表示し、「netstat -net」は自分のユーザーに関連する接続を表示します。netstat のバージョンでは、ソケットに関する詳細を調べるために sudo を必要としないのはそのためです。
ss -e
UID を取得するためにも使用できます。