為什麼 nmap、ss(netscan?)和 lsof 會給出不同的結果?

為什麼 nmap、ss(netscan?)和 lsof 會給出不同的結果?

我試圖了解哪些連接埠正在我的機器上積極偵聽(正在使用?),但並不真正知道我在做什麼。我嘗試過的三個命令是nmapss(? netscan?) 和lsof

netscan報告只有 1 個連接埠正在主動偵聽 (631):

$ sudo nmap -sT  localhost
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:28 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
631/tcp open  ipp

ss(? netscan?) 報告 2 個連接埠正在使用中(631 和 53):

$ sudo ss -tulwn | grep LISTEN
tcp    LISTEN  0       4096     127.0.0.53%lo:53           0.0.0.0:*            
tcp    LISTEN  0       5            127.0.0.1:631          0.0.0.0:*            
tcp    LISTEN  0       5                [::1]:631             [::]:*       

最後,如果我使用 檢查各個端口lsof -i:xx,我會看到 631 和 53 的結果,也會看到端口 80 和 443 的結果:

$ sudo lsof -i:80

COMMAND  PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
firefox 3481 me   74u  IPv4  85172      0t0  TCP Machine:56024->lga25s63-in-f3.1e100.net:http (ESTABLISHED)

$ sudo lsof -i:443
COMMAND    PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
skypeforl 2426 me   27u  IPv4  77133      0t0  TCP Machine:60396->13.83.65.43:https (ESTABLISHED)
skypeforl 2453 me   72u  IPv4  56536      0t0  TCP Machine:58945->40.86.187.166:https (ESTABLISHED)
firefox   3481 me   95u  IPv4  81375      0t0  TCP Machine:53788->104.16.249.249:https (ESTABLISHED)
firefox   3481 me  157u  IPv4  80283      0t0  TCP Machine:49080->lga34s15-in-f5.1e100.net:https (ESTABLISHED)
chrome-gn 3799 me   74u  IPv4  55080      0t0  TCP Machine:42196->server-52-85-61-100.ewr53.r.cloudfront.net:https (CLOSE_WAIT)
chrome-gn 3799 me   95u  IPv4  55072      0t0  TCP Machine:43998->104.16.248.249:https (CLOSE_WAIT)

我原以為這三個指令基本上是同一資訊的不同視圖。為什麼某些連接埠僅由其中某些命令顯示?

答案1

ss從和之間的差異開始nmap。對於連接埠 53,原因是localhost與本機保留的其他 1,600 萬個位址之間的差異。127.0.0.1不等於127.0.0.53.ss正在報告本地計算機的所有端口,同時nmap將自身限制為地址 127.0.0.1。

至於來自 的額外報告lsof,這是在尋找非常不同的東西。您的ssnmap命令正在尋找處於LISTEN狀態的套接字,即等待傳入連線。您lsof正在尋找所有套接字,特別是包括任何已建立的連接和已拆除的連接。您正在尋找的東西任何一個結束正在使用連接埠 80 或任何一個end 使用連接埠 443。

所以重點是這 3 個指令顯示不同的內容,因為您認為這些指令顯示相同資訊的想法是錯誤的。這是蘋果、柳橙和香蕉的比較。 3個不同的指令顯示不同的訊息,因為它們顯示的訊息不同。

相關內容