CygwinでTracerouteを取得する方法は?

CygwinでTracerouteを取得する方法は?

Traceroute(tracert)の実装はWindowsとUnixで異なります。 2つをWiresharkと比較したいです。私は現在Windows 7を使用しており、Unix Tracerouteをすばやく実装したいと思います。

私の最初の考えは、MSYSまたはCygwinを使用して得ることでした。 Cygwinをインストールして「inetutils *」パッケージを確認しましたが/usr/bin/

私も「traceroute」を検索してみました。Cygwinパッケージの検索「zsh」ファイルのリストで対応する部分文字列を見つけます。 zshをインストールしましたが、結果がありませんtracerouteでしたtcptraceroute

Tracerouteをインストールするには、どのパッケージを確認する必要があり、CygwinにTracerouteがありますか?

答え1

traceroutetracertWindowsで常に使用できるため、Cygwinパッケージにはありません。バラよりhttps://cygwin.com/ml/cygwin/2005-12/msg00443.htmlこの問題を簡単に議論するスレッドです。tracerouteCygwinを使用してソースからUnixスタイルをコンパイルできます。

tracertWindowsのバージョンをUnixのバージョンと比較するにはネットワークスタックが異なるため、UnixまたはLinuxで実行することをお勧めtracerouteします。したがって、WindowsでUnixバージョンを実行すると、UnixのUnixバージョンとまったく同じネットワークトレースは提供されません。traceroutetraceroutetraceroute

答え2

さて、Stephen Kittが言ったように、Cygwinはまだトレースパスバイナリを使用する準備ができていません。だから私は自分でコンパイルしてみました。

そこにいることがわかります近代的な追跡経路しかし、説明によると、以前のLinuxカーネルでは動作しませんでした。

私はコンパイルできます古い実装ただし、TTL以降はICMP応答が表示されないように動作します(結果の代わりにアスタリスクがあります)。

1 ** * *

2 ** * *

Cygwinで動作するにはいくつかの修正が必要な場合があります。これがCygwinにTracerouteパッケージがない理由です。

Wiresharkを確認した結果、UDPテストパケットを使用し、対応するICMP応答が正しく転送されることがわかりました。この古いトレースパスは、Win tracert(ノードを1つずつ「クエリ」)のように遅く実行されることに注意したいと思います。最新の追跡パスは非常に迅速に結果を提供することができます。

答え3

mtr次のガイドラインを使用してCygwin32でポートを構築できました。

https://github.com/traviscross/mtr/

MTRは別のオープンソースパス追跡ツールです。 GUIとNcursesのテキストインターフェイスがあります。非常に古典的な追跡経路ではありませんが、私はそれを好みます。

関連情報