![netstat 显示端口号而不是进程名称](https://linux22.com/image/112344/netstat%20%E6%98%BE%E7%A4%BA%E7%AB%AF%E5%8F%A3%E5%8F%B7%E8%80%8C%E4%B8%8D%E6%98%AF%E8%BF%9B%E7%A8%8B%E5%90%8D%E7%A7%B0.png)
我想查看哪个端口,例如 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
您还可以对结果使用任何标准文本处理工具来仅获得所需的内容。