Torrent调试工具

时间:2014-12-15 19:07:05

标签: debugging bittorrent torrent

是否有某种工具来调试bittorrent? 例如我希望查询跟踪器以获取对等列表。 我想检查一下我是否能够连接到某个同行。

我的家庭网络有奇怪的行为。 我希望了解它是如何工作的,我找不到任何模拟洪流的工具。

PS 我已经制作了一个简单的python应用来检查我是否可以接收UDP数据包

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应用程序通信。

一个torrent客户端工作,其他人不想知道什么是错的。

2 个答案:

答案 0 :(得分:2)

没有" Bittorrent调试器",但您可以使用各种工具来诊断问题。

您可以在本地使用nmap或为远程nmap实例提供前端的Web服务来探测端口的可访问性。

你可以使用wireshark与bittorrent解析器来调试协议本身,需要对bittorrent协议有所了解。

某些客户端(例如vuze)提供非常详细的日志记录,直至单个bittorrent消息,这有助于诊断问题。

您可以在不同的端口或虚拟机上运行第二个客户端,让它们通过本地网络相互通信,以排除潜在的路由器/防火墙问题。

答案 1 :(得分:0)

我在自己的代码中调试协议问题所做的是我设置了各种VM /容器,其中1个运行跟踪器(opentracker),其他运行各种客户端,而我的主机运行我自己的客户端,我定期测试。然后我有选择地启动和停止客户端,让他们与我的客户端和跟踪器进行通信,然后我可以轻松地分析所有通过wireshark在所有部分之间传递的bittorrent流量。您可以轻松扩展相同的设置,以在真实网络中包含多台计算机,而不是虚拟机/容器和虚拟网络。

要“让”客户互相交谈,只需使用其中一个客户端创建一个torrent(大多数客户端可以使用您拥有的文件制作种子)并将自己的跟踪器添加到torrent。然后将torrent文件添加到其他客户端,他们开始相互通信并立即分发数据。

最后,你会有这样的事情:

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

您可以通过bittorrent协议精确分析您获得的流量。 Wireshark甚至还有用于bittorrent TCP协议的解剖器,所以你甚至不必自己解密这些神秘的字节。

请注意,您必须了解协议本身: