为什么“netstat”无法检测到某些打开的套接字?

5n0oy7gb  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(494)

当使用'netstat'linux命令验证hadoop namenode机器是否正常工作时,我注意到namenode的主端口'8020'没有显示为主动侦听,尽管所有hadoop进程都可以正确连接并正常工作。此外,我能够运行“telnet mydnshostname 8020”并成功地打开一个连接,这表明这个套接字正在正确地侦听,尽管它明显不在netstat的列表中。
这是我第一次注意到netstat列表中没有出现打开的套接字。是不是因为hadoop namenode通信基于一个专有的ipc协议?这个协议似乎是基于tcp的,所以我不明白为什么它没有出现。
总而言之:
为什么/如何有netstat未命中的开放套接字?
是否有任何较低级别的linux命令/函数来显示所有套接字,包括netstat由于某种原因丢失的套接字?

c7rzv4ha

c7rzv4ha1#

好吧,这是另一个“掌心”时刻。
原来,tcp端口8020也是一个被称为“intu ec svcdisc”的协议常用的端口,因此netstat试图通过将端口8020上的所有套接字标识为该服务名称来提供帮助。
在更通用/实用的术语中,如果您在查找特定打开的套接字并知道端口号时遇到问题,请确保向netstat传递'-n'选项,以便它停止尝试根据端口号标识协议,并以数字显示整个列表!

相关问题