为什么'netstat'无法检测到某些开放套接字?

时间:2013-07-09 19:33:21

标签: sockets hadoop tcp netstat

使用' netstat' Linux命令验证我的Hadoop Namenode机器是否正常运行,我注意到Namenode的主端口,' 8020'虽然所有Hadoop进程都可以正常连接并正常工作,但并未显示为主动监听。而且,我能够运行telnet mydnshostname 8020'并成功打开一个连接,指示此套接字正在正确收听,尽管它与netstat列表中的显着缺席。

这是我第一次注意到netstat列表中没有出现打开的套接字。是因为Hadoop Namenode通信基于专有IPC protocol吗?这个协议似乎是基于TCP的,所以我不明白它为什么没有出现。

总结:

  1. 为什么/如何打开netstat未命中的套接字?
  2. 任何用于显示所有套接字的低级Linux命令/函数,包括netstat因某种原因而未命中的套接字?

1 个答案:

答案 0 :(得分:2)

这是另一个* facepalm *时刻。

事实证明,TCP端口8020也是一个名为“intu-ec-svcdisc”的协议常用的端口,因此netstat试图通过将端口8020上的所有套接字识别为此服务名称来提供帮助。

在更通用/实用的术语中,如果您在查找特定的开放套接字并且知道端口号时遇到问题,请确保将netstat传递给'-n'选项,以便它根据端口号停止尝试识别协议并以数字方式显示整个列表!