在我的 CentOS 7 上,有一次sudo ss -plt
列出了一个标记为 LISTENING on 的端口*:30565
,但其所在行的进程列中没有任何信息。其他侦听端口照常显示其所属进程,例如users:(("sshd",pid=1381,fd=3))
,但这一行没有任何进程信息。lsof -i :30565
或者netstat -p
也没有产生任何信息。
我无法重现这一点,并且我很难想象“非进程”可能正在端口上侦听的情况(因为我非常确定当 tcp 侦听进程终止时 Linux 会执行预期的清理工作)。由于多个程序也会发生这种情况,我能想到的唯一解释是,这是 CentOS 的“有意但非常 rootkit-y”行为,但我肯定错过了一些东西。可能是什么原因造成的?
答案1
在某些情况下(例如 NFS)不显示进程信息的一点netstat
是,NFS 是一个内核模块,因此它不会作为正常进程运行,并且没有 PID。
如果您的 google 搜索中包含 NFS,您可以定期找到有关此情况的线程:
注意:对于其他不使用 sudo 的用户,使用 -p 需要 root 权限才能显示端口的相关进程。