web-dev-qa-db-ja.com

nmapはローカルホストをスキャンするのに数分かかります

次の一部として、nmapを実行して、コンピューターが開いているポートを確認しようとしています dockerをセットアップするためのこのガイド 。私が使う

Sudo nmap -sU -sS -T4 --defeat-rst-ratelimit -p 1-65535 localhost

これは永遠にかかります。私はそれを500ポートだけに落としました、そしてそれは約45かかります。ガイドでは、65000ポートすべてのスキャンにかかる時間は約3秒であることがわかります。何が起こっているのかわかりません。

システムは新しいCentos7.4.1708(昨夜インストールされた)です。それは決して素晴らしいラップトップではありませんが(2010年頃)、これほど何桁も遅くなることは意味がありません。私はコンシューマールーターの後ろにいますが、ローカルホストスキャンを行っているので、それは問題ではないと思います。

どんな助け/アドバイスも大歓迎です。私は試しました この質問で提案されたコマンド

nmap -d -n -Pn -p 4730 localhost

nmap -d -n -sn localhost

nmap -d -sL localhost

最初の応答は0.07秒、残りの応答は0.01秒と非常に高速でした。単一ポートスキャンはかなり高速ですが、多数のポートでは非常に低速です。また、--defeat-rst-ratelimit-T4を削除しても、速度は目立って変化しませんでした。

私はネットワーキングについてほとんど何も知らないので、この質問への答えはおそらく恥ずかしいほど明白です。

1
jeremysprofile

Nmapは、これに使用するのに最適なツールではありません。私はNmapが大好きで、フルタイムの仕事でNmapに取り組んで宣伝していますが、これはNmapがその仕事に最適なツールではない1つのケースです。 Linuxカーネルは、開いているポートと開いているプロセスの完全な記録を保持しており、一般的なコマンドラインツールでこれを照会できます。あなたにとって最も役立つコマンドはnetstat -tulnp、すべてのリスニングを一覧表示します(-l)TCP(-t)およびUDP(-u)ポート番号(-n)および関連するプロセスID(-p)。一部のシステムではnetstatコマンドが非推奨になっているため、代わりに ss を使用できます:ss -tunpo state listening

Nmapに時間がかかる理由として、最も可能性の高い原因はUDPスキャン(-sU)。 Nmap開いているポートと閉じているポートを見つけたいが、UDPは開いているポートからの応答パケットを必要としない代わりに、閉じたポートへのプローブに応答してICMPポート到達不能メッセージを送信しますポート。LinuxはこれらのICMPメッセージをレート制限するため、Nmapは、「開いているポート、応答なし」の無音と「閉じているポート」を区別するために速度を落とす必要がありますが、 ICMPメッセージをまだ送信します」無音。

7
bonsaiviking