以 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 共享,然后监听端口就会消失。