2

bittorrent をデバッグするツールはありますか? たとえば、トラッカーにクエリを実行してピア リストを取得したいとします。特定のピアに接続できるかどうかを確認したい。

ホーム ネットワークで奇妙な動作が発生します。トレントをシミュレートするツールが見つかりません。

PS UDPパケットを受信できるかどうかを確認するための簡単なpythonアプリをすでに作成しました

import socket
port = 50000
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("", port))
print "waiting on port:", port
while 1:
    data, addr = s.recvfrom(1024)
    print data

そして私は送ることができますncat $IP $PORT -u -v

しかし、特定のポートにパケットを送信できることがわかり、開いています。そのポートで torrent アプリと通信できるかどうかを確認したいと思います。

1 つの torrent クライアントは動作しますが、他のクライアントは動作しません。何が問題なのか知りたいです。

4

2 に答える 2

2

「The Bittorrent Debugger」はありませんが、さまざまなツールを使用して問題を診断できます。

nmap をローカルで使用するか、リモートの nmap インスタンスにフロントエンドを提供する Web サービスを使用して、ポートの到達可能性を調べることができます。

プロトコル自体をデバッグするために、bittorrent ディセクタで wireshark を使用できます。そのためには、bittorrent プロトコルをある程度理解している必要があります。

一部のクライアント (vuze など) は、問題の診断に役立つ個々の bittorrent メッセージに至るまで、非常に詳細なログを提供します。

別のポートまたは仮想マシンで 2 番目のクライアントを実行し、ローカル ネットワークを介して相互に通信することで、潜在的なルーター/ファイアウォールの問題を排除できます。

于 2014-12-16T16:05:49.377 に答える
1

自分のコードでプロトコルの問題をデバッグするために行ったことは、さまざまな VM/コンテナーをセットアップして、トラッカー (opentracker) を実行する 1 つとさまざまなクライアントを実行する他の VM と、定期的にテストする独自のクライアントを実行するホストを設定することです。次に、クライアントを選択的に開始および停止し、クライアントとトラッカーと通信させます。その後、wireshark を使用して、すべての部分の間を通過するすべての bittorrent トラフィックを簡単に分析できます。同じ設定を簡単に拡張して、VM/コンテナーや仮想ネットワークではなく、実際のネットワークに複数のマシンを含めることができます。

クライアントが互いに話すようにするには、クライアントの 1 つを使用して torrent を作成し (ほとんどのクライアントは、所有しているファイルから torrent を作成できます)、独自のトラッカーを torrent に追加します。次に、トレント ファイルを他のクライアントに追加すると、クライアント同士が話し始め、すぐにデータが配布されます。

最後に、次のようなものがあります。

                    +-----------+
Debug client <----> |           | <----> opentracker <--------> another client
     ^              | Wireshark |                                     ^
     |              |           |                                     |
     +------------> |           | <-----------------------------------+
                    +-----------+

また、bittorrent プロトコルを介して取得しているトラフィックを正確に分析できます。Wireshark には bittorrent TCP プロトコルのディセクタもあるため、暗号化されたバイトを自分で解読する必要さえありません。

プロトコル自体について知っておく必要があることに注意してください。

于 2016-04-13T19:43:01.737 に答える