netstat 显示端口号而不是进程名称

netstat 显示端口号而不是进程名称

我想查看哪个端口,例如 postgresql 正在侦听,所以我使用:

netstat -l

但这是想变得聪明并打印进程名称而不是端口:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:postgresql    *:*                     LISTEN     
tcp        0      0 *:31416                 *:*                     LISTEN   

如何使用 netstat 确定任何进程正在侦听哪个端口?

答案1

netstat正在将(默认)端口转换为服务名称,它从/etc/services文件中获取此映射。

因此,您可以从以下位置获取端口/etc/services

grep '^postgresql' /etc/services

或者更好地添加-n选项以netstat防止任何(主机、端口、主机名)解析并以数字形式发布输出:

netstat -nl

-t您可以通过添加仅显示侦听 TCP 套接字的选项来限制搜索界面(-u对于 UDP,-x对于 UNIX 域套接字也类似):

netstat -nlt

您还可以对结果使用任何标准文本处理工具来仅获得所需的内容。

相关内容