为什么netstat报告的开放端口数量少于lsof

时间:2016-11-30 02:48:21

标签: linux networking netstat lsof

我在两台机器上运行风暴。

每台机器运行nimbus进程(主要进程的花哨)和工作进程。

我希望看到它们之间的通信 - 哪些端口是开放的以及它们如何相互连接。

$ netstat -tulpn | grep -w 10669
tcp        0      0 :::6700       :::*            LISTEN      10669/java          
udp        0      0 :::42405      :::*                        10669/java          


$ lsof -i :6700
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    10669 storm   25u  IPv6  57830      0t0  TCP host1:50778->host2:6700 (ESTABLISHED)
java    10669 storm   26u  IPv6  57831      0t0  TCP host1:6700->host2:57339 (ESTABLISHED)
java    10669 storm   29u  IPv6  57843      0t0  TCP host1:6700->host1:50847 (ESTABLISHED)
java    10669 storm   53u  IPv6  57811      0t0  TCP *:6700 (LISTEN)
java    10681 storm   53u  IPv6  57841      0t0  TCP host1:50780->host2:6700 (ESTABLISHED)
java    10681 storm   54u  IPv6  57842      0t0  TCP host1:50847->host1:6700 (ESTABLISHED)

我从上面的输出中得知的是,为什么netstat没有在PID = 10669的过程中显示端口50778被打开,其中lsof清楚地表明同一进程已建立连接为{{1 }}

1 个答案:

答案 0 :(得分:1)

netstat -l将结果限制为侦听套接字,并阻止在其他状态下显示套接字。

请改为尝试:

netstat -anp | egrep :6700