Linux

網路埠打開,但沒有附加程序?

  • May 3, 2017

我有一個奇怪的情況,一個開放的網路埠。我的主要問題是,為什麼沒有與開放 TCP 埠關聯的程序:

netstat -ln --program
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      -  

對於我的具體情況,應該有一個 nrpe 守護程序(opsview 安裝)在埠 5666 上偵聽,但沒有執行 nrpe 守護程序。如果我嘗試啟動它,它會立即退出。

lsof -i :5666也不顯示任何輸出。我的系統上沒有執行 (x)inetd。

更新

是的,我以 root 身份執行這些命令。Telnet 可以,但從來沒有任何響應。

經過進一步調查,我發現了一個核心錯誤dmesg:這是一個執行舊核心的 EC2 實例(實際上是其中的幾個)(2.6.16 顯然不穩定)。阻止崩潰的解決方法是升級核心

看起來核心崩潰的方式導致程序消失並保持埠打開。

核心打開的埠不會顯示程序名稱。我想到了一些 NFS 和 OCFS 的東西。也許是這樣的?

或者它可能是一個核心錯誤。檢查核心日誌中的 OOPS 和 BUG。

您是否以 root 或 sudo 身份執行 netstat 和 lsof?注意最後一列:

netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -

sudo netstat -ln --program
tcp        0      0 192.168.21.1:53         0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      2566/named      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3125/sshd

從 netstat 聯機幫助頁:

您還需要超級使用者權限才能在您不擁有的套接字上查看此資訊。

你怎麼知道沒有人跑?如果埠正在使用中,它會立即退出並出現“使用中的套接字”錯誤是有道理的。telnet 到埠時會發生什麼?

telnet localhost 5666

引用自:https://serverfault.com/questions/51499