2

是否有某种工具可以调试 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 客户端可以工作,而另一个我不想知道出了什么问题。

4

2 回答 2

2

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

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

您可以将wireshark 与bittorrent 解析器一起使用来调试协议本身,为此需要对bittorrent 协议有一些了解。

一些客户端(例如 vuze)提供非常详细的日志记录,包括可以帮助诊断问题的单个 bittorrent 消息。

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

于 2014-12-16T16:05:49.377 回答
1

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

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

最后,你会得到这样的东西:

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

您可以精确分析通过 bittorrent 协议获得的流量。Wireshark 甚至具有用于 bittorrent TCP 协议的解析器,因此您甚至不必自己破译神秘的字节。

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

于 2016-04-13T19:43:01.737 回答