我用來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
,無需root,我可以看到用戶:
$ 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 僅顯示 root 的進程資訊。
我的問題是:
- 為什麼存在沒有關聯用戶的套接字?
- 這些沒有用戶的socket是否接受
owner
iptables的模組匹配?
答案1
我想說你的“sudo ss”顯示與用戶 sshd 相關的連接,同時“netstat -net” - 與你自己的用戶相關。這就是為什麼 netstat 的版本不需要 sudo 來查找有關套接字的詳細資訊。
您ss -e
也可以用來取得 UID。