mac linux查看pid和服务端口的对应关系 - 端口明明在,但没搜索到

背景:端口明明在,但没搜索到

作为从事web开发的人员,无论是mac linux windows,每天几乎都会操作一个场景:找到web服务的pid,然后看看它的服务端口是啥;还有一个场景你也时常会操作到:检查下某个端口是否开启。在实际场景中,你会遇到这种情况:“我根据pid搜到的信息怎么没有显示端口数字啊,或者,我没有搜到这个端口,为啥用这个端口启动时提示端口已被占用呢”

现场复现

操作一波
启动一个kafka服务(端口:9092)
20210218122300

使用ss -ptl|grep 9092
20210218121934

结果显示没有找到,那换个命令看看呢,使用lsof看看呢
20210218122706

很奇怪吧,服务是明明启动了,但是没有找到

我们看看其他的角度
20210218214315

解决办法

看看这个呢,出现了我们想要的结果
20210218214719

所以,要想真的找到我们的要找的端口,采取如下措施

  • 》1. 使用ss命令时,加上 -n 参数《
  • 》2. 使用lsof命令时,加上 -P 参数《
  1. ss-n参数的作用:Do not try to resolve service names (意思是不将ip的端口等解析为名称)

  2. lsof-P参数的作用:inhibits the conversion of port numbers to port ames for names (意思是抑制端口数字转化为端口名称)

根本原因

20210218220050

如下:9092XmlIpcRegSvc的关系
20210218220251

详细参考:Service Name and Transport Protocol Port Number Registry