linux – 为什么rpc.lockd会从netstat / lsof输出中隐藏?
发布时间:2020-12-13 17:19:20 所属栏目:Linux 来源:网络整理
导读:序幕: 在许多恰好充当NFS客户端的计算机上,netstat报告两个打开的端口,没有为关联的守护程序列出PID.通常这可能有点令人担忧. # netstat -lnp | egrep -- '- +$'tcp 0 0 0.0.0.0:57448 0.0.0.0:* LISTEN -udp 0 0 0.0.0.0:48933 0.0.0.0:* - 另外netcat确认
序幕:
在许多恰好充当NFS客户端的计算机上,netstat报告两个打开的端口,没有为关联的守护程序列出PID.通常这可能有点令人担忧. # netstat -lnp | egrep -- '- +$' tcp 0 0 0.0.0.0:57448 0.0.0.0:* LISTEN - udp 0 0 0.0.0.0:48933 0.0.0.0:* - 另外netcat确认TCP端口确实是开放的. # nc -v localhost 57448 localhost [127.0.0.1] 57448 (?) open ^C 然而,lsof没有报告这两个端口.阴谋增长. # lsof -i TCP:57448 -i UDP:48933 然而,rpcinfo最终指出了我们正确的方向.它由nlockmgr保持打开,也就是为NFS锁定.取消搜索. # rpcinfo -p | egrep '57448|48933' 100021 1 udp 48933 nlockmgr 100021 3 udp 48933 nlockmgr 100021 4 udp 48933 nlockmgr 100021 1 tcp 57448 nlockmgr 100021 3 tcp 57448 nlockmgr 100021 4 tcp 57448 nlockmgr 很明显,在挂载NFS导出时会调用lockd / rpc.lockd.这是一个内核线程(它总是吗?),它将自己绑定到临时范围内的一个TCP和一个UDP端口.端口通常可使用fs.nfs.nlm_tcpport和fs.nfs.nlm_udpport sysctls进行重新配置. 问题: 我很感兴趣.会喜欢一些内核内部的洞察力. >为什么netstat不能看到内核线程的PID? 解决方法
netstat和lsof都抓取/ proc /< pid> / fd将进程关联到端口/套接字,并且/ proc /< pid> / fd不会填充内核线程AFAIK.
lockd始终是一个内核线程 – 至少在现代(比2.2更新)的内核上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |