nmap 未檢測到明顯開放的 udp 端口

nmap 未檢測到明顯開放的 udp 端口

我在本機上開啟了連接埠 4000,如下所示:

nc -lvup 4000

然後嘗試連接到同一端口,如下所示:

nc -vu 127.0.0.1 4000

並能夠成功連接並來回發送和接收文字。但是,當我偵聽第一個片段中所示的相同端口,然後嘗試使用 UDP 掃描時

nmap -sU 127.0.0.1 -p 4000

結果如下:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.000061s latency).

PORT     STATE  SERVICE
4000/udp closed icq

既然第一次測試確定連接埠顯然是開放的,那麼它不應該說開放嗎?請讓它有意義,因為我真的被這個難住了。

答案1

不,你不明白發生了什麼事。這是UDP,沒有連接

當您運行第二個nc並在其中輸入內容時,它只會發送資料包。然後你透過其他方式(請參閱通訊的另一端,例如另一台電腦螢幕)確認通訊發生。如果沒有「監聽」nc,「發送」NC 會很樂意發送相同的資料包,而不知道這些資料包是否被接收或丟棄。

也是如此nmap。它發送資料包,沒有看到任何答案,並決定其資料包剛剛消失在黑洞中。

這就是UDP,就是這樣的。它沒有內在的接收確認。如果應用程式需要它,它會自行進行確認。由於我們沒有應用程式級協定來執行此操作,因此 nmap 沒有看到任何答案,也沒有偵測到「開放埠」。

相比之下,TCP 內建了確認 (ACK),這就是為什麼我們可以可靠地偵測連接埠是否開啟。

相關內容