与套接字关联的用户

与套接字关联的用户

我用来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 的进程信息。

我的问题是:

  1. 为什么存在没有关联用户的套接字?
  2. 这些没有用户的socket会经过owneriptables的模块匹配吗?

答案1

我想说你的“sudo ss”显示与用户 sshd 相关的连接,同时“netstat -net” - 与你自己的用户相关。这就是为什么 netstat 的版本不需要 sudo 来查找有关套接字的详细信息。

ss -e也可以用来获取 UID。

相关内容