Networking

如何辨識沒有pid的程序?

  • May 25, 2020

我有一個監聽 2 個埠的程序:45136/tcp 和 37208/udp(實際上我認為它是同一個程序)。但 netstat 不返回任何 pid :

netstat -antlp | grep 45136
tcp        0      0 0.0.0.0:45136           0.0.0.0:*           LISTEN      - 

與“grep 37208”的結果相同。

我也試過 lsof :

lsof -i TCP:45136

但它不返回任何東西。這是一個新安裝的squeeze,我真的不知道這個過程是什麼。任何的想法 ?

回答 感謝您的評論,我發現了它是什麼。我解除安裝了 nfs-server nfs-common (在 dkpg –get-selections | grep nfs 搜尋之後)並且未知程序消失了。奇怪的是,核心程序沒有以任何方式標記。

再次感謝你們倆。;)

網路統計

那裡有一個過程,您的使用者 ID 只是不知道它是什麼。lsof這是防止您看到這一點所提供的一層保護。只需重新執行該命令,但使用該sudo命令為其添加前綴。

$ sudo netstat -antlp | grep 45136

lsof在頂部的輸出中甚至有一個警告。

(並非所有程序都可以辨識,不會顯示非擁有程序資訊,您必須是 root 才能看到所有內容。)

例子

$ netstat -antlp | grep 0:111
tcp        0      0 0.0.0.0:111       0.0.0.0:*     LISTEN      -                   

$ sudo netstat -antlp | grep 0:111
tcp        0      0 0.0.0.0:111       0.0.0.0:*     LISTEN      1248/rpcbind

ss

如果你沒有任何運氣netstat也許ss會做。您仍然需要使用sudo,並且輸出可能有點神秘。

例子

$ ss -apn|grep :111
LISTEN     0      128         :::111             :::*     
LISTEN     0      128          *:111              *:*     

$ sudo ss -apn|grep :111
LISTEN     0      128         :::111             :::*      users:(("rpcbind",1248,11))
LISTEN     0      128          *:111              *:*      users:(("rpcbind",1248,8))

程序ID仍然沒有?

在某些情況下,根本沒有與正在使用的 TCP 埠關聯的 PID。您可以在@derobert 的回答中了解 NFS,這是其中之一。還有其他的。我有使用 ssh 隧道連接回 IMAP 等服務的實例。這些也顯示沒有程序 ID。

在任何情況下,您都可以使用更詳細的形式,netstat這可能會進一步說明最終使用 TCP 埠的程序。

$ netstat --program --numeric-hosts --numeric-ports --extend

例子

$ netstat --program --numeric-hosts --numeric-ports --extend |grep -- '-' | head -10
Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name   
tcp        0      0 192.168.1.103:936           192.168.1.3:60526           ESTABLISHED root       160024310  -                   
tcp        0      0 192.168.1.1:2049            192.168.1.3:841             ESTABLISHED sam        159941218  -                   
tcp        0      0 127.0.0.1:143               127.0.0.1:57443             ESTABLISHED dovecot    152567794  13093/imap-login    
tcp        0      0 192.168.1.103:739           192.168.1.3:2049            ESTABLISHED root       160023970  -                   
tcp        0      0 192.168.1.103:34013         192.168.1.3:111             TIME_WAIT   root       0          -                   
tcp        0      0 127.0.0.1:46110             127.0.0.1:783               TIME_WAIT   root       0          -                   
tcp        0      0 192.168.1.102:54891         107.14.166.17:110           TIME_WAIT   root       0          -                   
tcp        0      0 127.0.0.1:25                127.0.0.1:36565             TIME_WAIT   root       0          -                   
tcp        0      0 192.168.1.1:2049            192.168.1.6:798             ESTABLISHED tammy      152555007  -             

如果您注意到輸出包含 INODES,那麼我們可以使用此資訊回溯到流程。

$ find -inum 152555007

這將向您顯示一個可能會引導您進入流程的文件。

參考

引用自:https://unix.stackexchange.com/questions/97752