連接埠開啟/偵聽但沒有關聯的進程

連接埠開啟/偵聽但沒有關聯的進程

在我得到一個未知的開放 tcp 連接埠的輸出中nmap -p- localhost,每次重新啟動時該連接埠都不同。我如何確定哪個進程打開了它並監聽它。我嘗試了許多常用工具(netstat、、 ) sslsof但我找不到罪魁禍首。例如。sudo netstat -pan -Ainet | grep <PORT>沒有給出 PID/程式名稱:

tcp 0 0 0.0.0.0:<PORT> 0.0.0.0:* LISTEN -

也許我應該分析啟動順序?但怎麼會這樣呢?

有人可以幫忙嗎?

答案1

作為暗示ss也可以提供答案;語法是:

sudo ss --tcp --listening --processes 'sport = 1234'

1234你的 nmap 掃描的當天連接埠在哪裡。這會將輸出限制為 TCP 端口,並顯示正在偵聽該端口的進程名稱和 PID。sudo只有當您需要該標誌時才需要--process,該標誌提供進程名稱和 PID。

答案2

當以 root 身份運行並使用正確的標誌時,Netstat 完全按照您的要求執行:

sudo netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1931/dnsmasq    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      32296/cupsd     
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      1550/postgres   
tcp6       0      0 :::80                   :::*                    LISTEN      3198/docker-proxy

另外,和ss的替換netstat大部分採用相同的標誌,但有不同格式的輸出

答案3

核心和某些特定服務(NFS、OCFS、ssh 隧道)開啟的某些連接埠對於 netstat 或 ss 是不可見的

相關內容