端口打开/侦听但没有关联的进程

端口打开/侦听但没有关联的进程

在我得到一个未知的开放 tcp 端口的输出中nmap -p- localhost,每次重新启动时该端口都不同。我如何确定哪个进程打开了它并监听它。我尝试了许多常用工具(netstat、、 ) sslsof但我找不到罪魁祸首。例如。sudo netstat -pan -Ainet | grep <PORT>没有给出 PID/程序名称:

tcp 0 0 0.0.0.0:<PORT> 0.0.0.0:* LISTEN -

也许我应该分析启动顺序?但怎么会这样呢?

有人可以帮忙吗?

答案1

作为暗示ss也可以提供答案;语法是:

sudo ss --tcp --listening --processes 'sport = 1234'

1234你的 nmap 扫描的当天端口在哪里。这会将输出限制为 TCP 端口,并显示正在侦听该端口的进程名称和 PID。sudo仅当您需要该标志时才需要--process,该标志提供进程名称和 PID。

答案2

当以 root 身份运行并使用正确的标志时,Netstat 完全按照您的要求执行:

sudo netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1931/dnsmasq    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      32296/cupsd     
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      1550/postgres   
tcp6       0      0 :::80                   :::*                    LISTEN      3198/docker-proxy

另外,和ss的替换netstat大部分采用相同的标志,但具有不同格式的输出

答案3

内核和某些特定服务(NFS、OCFS、ssh 隧道)打开的某些端口对于 netstat 或 ss 是不可见的

相关内容