linux – 为什么rpc.lockd会从netstatlsof输出中隐藏?

linux – 为什么rpc.lockd会从netstatlsof输出中隐藏?,第1张

概述序幕: 在许多恰好充当NFS客户端的计算机上,netstat报告两个打开的端口,没有为关联的守护程序列出PID.通常这可能有点令人担忧. # netstat -lnp | egrep -- '- +$'tcp 0 0 0.0.0.0:57448 0.0.0.0:* LISTEN -udp 0 序幕:

在许多恰好充当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 57448localhost [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?
>为什么lsof不能看到绑定的端口?

解决方法 netstat和lsof都抓取/ proc /< pID> / fd将进程关联到端口/套接字,并且/ proc /< pID> / fd不会填充内核线程AFAIK.

lockd始终是一个内核线程 – 至少在现代(比2.2更新)的内核上.

总结

以上是内存溢出为你收集整理的linux – 为什么rpc.lockd会从netstat / lsof输出隐藏?全部内容,希望文章能够帮你解决linux – 为什么rpc.lockd会从netstat / lsof输出中隐藏?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1041177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存