2016-11-30 121 views
-1

我在兩臺機器上運行風暴。爲什麼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的不顯示端口50778是與PID的進程打開= 10669,其中爲lsof清楚地表明,相同的過程中有一個已建立的連接爲host1:50778->host2:6700

+1

因爲你比較蘋果和桔子。試試'netstat -tulpn | grep -w 6700'。 – EJP

+0

'netstat -tulpn | grep -w 6700'只返回了一行6700.我仍然沒有看到端口50778.如果它對你顯而易見,請在答案中解釋相同。其他人可能沒有像你一樣的經驗或知識,並會從你的答案中受益。 – user2250246

回答

1

netstat -l將結果限制爲偵聽套接字,並防止在其他狀態下顯示套接字。

試試這個:

netstat -anp | egrep :6700