Linux,netstat:如何显示使用端口的程序的所有者?

Linux,netstat:如何显示使用端口的程序的所有者?

我对这个命令感到很着迷netstat
在 man 中我们可以读到,在 Active Internet Connections (TCP, UDP, raw) 的输出中我们应该有:

用户:套接字所有者的用户名或用户 ID (UID)。

但当我这样做

netstat -natp

我的输出没有显示任何所有者(或 UID)

Active Internet connections (servers and established)  
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
tcp        0      0 0.0.0.0:4713            0.0.0.0:*               LISTEN      2159/pulseaudio  
(...)

并且我没有看到任何显示 PID 所有者的选项。

有这个--numeric-users选项,但是它不会改变任何东西。

我是不是漏掉了什么?还是 netstat 出了问题?还有
其他方法可以获取此信息吗?

感谢您的帮助 :)

答案1

使用netstat -natpe

从手册页中:

-e, --extend
 Display additional information.  Use this option twice for maximum detail.

清澈如泥。

这将在显示中添加两列,即用户和 Inode。

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      100        13119      1901/mysqld

答案2

或者,您可以使用lsof -i向用户显示的内容。

COMMAND     PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
httpd     32500  apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
httpd     32501  apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
httpd     32502  apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
httpd     32503  apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)

相关内容