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です。接続

nc2番目を実行して何かを入力すると、パケットが送信されます。その後他の手段で(通信の反対側、たとえば別のコンピュータ画面を見て) 通信が行われていることを確認します。 「リスニング」がない場合nc、「送信」NC は、パケットが受信されたかドロップされたかの手がかりもなく、同じパケットを送信します。

も同様ですnmap。パケットを送信しても応答がないため、パケットがブラックホールに消えたと判断します。

これは UDP です。このようなものです。受信の確認は本質的には行われません。アプリケーションで必要な場合は、アプリケーション自体で確認が行われます。ここで確認を行うアプリケーション レベルのプロトコルがないため、nmap は応答を受信せず、「開いているポート」も検出されません。

比較すると、TCP には確認 (ACK) が組み込まれているため、ポートが開いているかどうかを確実に検出できます。

関連情報