Linux 上无人拥有的监听套接字

Linux 上无人拥有的监听套接字

以 root 身份netstat -tnlp4e包含一些没有所有者的监听套接字。

Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 0.0.0.0:58245           0.0.0.0:*               LISTEN      0          9578        -  

lsof -n -i :58245不返回任何内容。

以下搜索也无结果:

for D in $(ls -1 /proc); do 
  if [ -d $D -a -d "$D/fd" ];then 
    ls -l $D/fd/ | grep 9578
  fi
done

我已经验证该搜索将返回套接字列表,正如我期望的其他 inode 编号一样。

我认为内核监听套接字会使其不在 netstat 中显示 PID,但是不应该有这个套接字/inode 的其他记录吗?

我如何找到这个套接字上正在监听的内容?

(Ubuntu 14.04,Linux 3.13.0-24-通用)

答案1

我 99% 确定那是nfs内核模块。停止 nfs-kernel-server,卸载所有 nfs 共享,然后监听端口就会消失。

相关内容