traceroute が機能せず、出力は * * * ですが、ネットワークは正常です

traceroute が機能せず、出力は * * * ですが、ネットワークは正常です

私の Linux ボックスではtraceroute動作しません。出力は次のようになります。

$ traceroute google.com

traceroute to google.com (209.85.231.104), 30 hops max, 52 byte packets
1  * * *
2  * * *
3  * * *
4  * * *

なぜ動作しないのか誰か教えてもらえますか? 何か考えられる理由はありますか?

答え1

デフォルトでは、tracerouteホストのトレースには高レベルの UDP ポートを使用します。ただし、ファイアウォールによってこれらの UDP ポートがブロックされることがあります。

-Iコマンドラインに (大文字の i) パラメータを追加してみてください。例:

traceroute -I www.google.it

これにより、ホストのトレースに UDP ではなく ICMP が使用されます。

答え2

ファイアウォールをバイパスするには、-T (tcp) または -U (udp) を使用してください。
一部のルーター/ファイアウォールは、icmp エコーを通過させないため、これら 2 つを使用してバイパスします。
とにかく、Wikipedia に書かれていることとは反対に、私の Debian ボックスでは、traceroute は udp ではなく icmp パケットを使用します。

編集

間違っていました...UDP を使用しています...返ってくる ICMP は到達不可能なポート用です...申し訳ありません

答え3

上流のファイアウォールがUDPパケットをブロックしている可能性があります トレースルート

最新の Unix 系オペレーティング システムでは、traceroute ユーティリティはデフォルトで、宛先ポート番号が 33434 から 33534 までの UDP データグラムを使用します。

答え4

これはおそらく、icmp TIME_EXCEEDED 応答が、デフォルトゲートウェイとして使用しているルーター/ファイアウォールまたは Linux システム自体によってフィルタリングされているためです。

関連情報