我想查看哪个端口,例如 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
您还可以对结果使用任何标准文本处理工具来仅获得所需的内容。