次の一部として、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
を削除しても、速度は目立って変化しませんでした。
私はネットワーキングについてほとんど何も知らないので、この質問への答えはおそらく恥ずかしいほど明白です。
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メッセージをまだ送信します」無音。