1.78测试版

目前的测试版是这样的流程,默认打孔后再发起uTP连接,除非用户列表右键菜单设置为“直接”

由第三方peer通过pex交换而来的peer,都是该第三方peer已连接成功的,大概率能保证其TCP或UDP端口畅通。

可以考虑增加一个设置项,来控制uTP连接是必须先打洞,还是允许直接连接。

这个得开发版看peer连接日志才知道了。

1個讚

依赖PEX来协助打洞是很合理的方法,这一点没有异议。

主要是有些节点是TCP端口阻塞,但UDP端口可以被连接。
目前uTP与PEX强制绑定的流程,会错失与这些节点的连接。

同意。包括PEX来源的uTP连接,也应该允许直接连接。

我是怀疑他们从tracker获得我的节点信息,然后通过uTP直连,而不是打洞的方式连上了我。
当然也有可能是连接上了一个公网peer并且很快就断开,以至于我没能察觉。
这样就有可能经由这个peer把我的节点信息扩散并打洞建立连接。

等回头加了设置项就可以再来测试了。

1個讚

感谢开发者,那么大的更新。点赞

1個讚

服务器肯定是效率最高的,但是属于中性化网络。去中心化才是大势所趋。

我在准备服务器了,准备三台晚上测试一下好不好使,根据说明,至少需要3台设备,并且其中有一台是TCP端口开放,才能进行打洞

辛苦辛苦 :+1:主要是各种NAT环境不容易模拟

这样的话,内网也能作为长效种子,给内网传数据。

是的,内网还不能同一个内网。同一个内网,会触发lsd协议。

测试时lsd可以在高级设置页面关闭

1個讚


有BUG,如果处于自动检测的情况下,两台服务器互相彻底连不上。。。需要先禁用UTP才可以连接上。
具体如视频

复现步骤
做种服务器A
防火墙通过高级设置阻止入站连接UDP端口3900-65535,做种客户端设置为UTP自动检测

下载服务器B
一样设置为UTP自动检测操作,执行下载,永远无法连接上服务器A进行下载,此时服务器A可以看到一个来源为被动的服务器B请求。只有在服务器B上设置UTP禁止,才能连接成功服务器A下载

关于NAT打洞,测试了并不成功,服务器C无法连接服务器B,可能受上方描述的BUG影响了
服务器B和服务器C均是先操作了禁用UTP,在改成自动检测

如下图,服务器B监听端口为6666,如果进行NAT打洞,此时服务器B的NAT端口号不应当为6666,服务器A没有给予服务器C的服务器B新的NAT端口号


服务器A为外部网络,TCP开放,屏蔽UDP传入数据
服务器B为NAT1类型,服务器C给NAT4类型

关于该BUG测试2
在服务器A中取消防火墙封锁UDP,重新启用任务,在自动检测的情况下,服务器B依旧无法连入服务器A,所以该BUG和防火墙无关系
3台服务器均使用了1.78测试版

以前我也测过utorrent,是根本无法NAT打洞的。。。包括 qBittorrent 也不行,可能开发者都搞错了,现在市面上所有的BT软件,,基本都是需要对方为外部网络,TCP端口开放,然后通过升级到UTP传输而已,而不是打洞

比特彗星1.78这个版本,,连都连不上,BUG比较严重了,等修复
我试了自动检测,优先,强制,三个选项都无法进行连接,只有禁用才可以

qBittorrent 的nat1打洞测试,并打洞不上,无法从服务器C连接到服务器到B,但是它不存在比特彗星打开UTP后就无法连接服务器A的BUG,顺便吐槽一下,,qBittorrent 这么多年了,单线程传输速率还是这么烂,5MB/S极限了,比特彗星可以跑到80MB/S

不应当由统一服务器的方式,安全性不足,易查出作者信息,容易喝茶,最好是通过DHT网络查询其他有公网ip的客户端用户协助进行NAT内网穿透,但由于实际网络的多样性,不一定能穿透成功

感谢反馈。这种情况下应该是建立TCP连接。目前版本的uTP连接需要是pex返回的peer才会尝试,tracker返回的应该不行。我也来测试一下。

来自tracker的节点应该只包含本机申报的监听端口,而不提供NAPT后的外部端口。
因此只能依赖PEX提供协议支持和外部端口信息来打洞。
这里可能出现一个问题,如果某个IP先从tracker获得,后又获得PEX来源,这时候软件会如何处理?
如果把PEX来源的信息丢弃,只保留tracker来源的话,则不具备可用作UDP打洞的正确外部端口。

另外,如果通过TCP连接上中继节点,交换的是TCP连接时的外部端口。
这个外部端口显然是无法用作UDP打洞的,因此需要再建立UDP连接获得一个新的外部端口,并把它通过PEX交换给需要打洞的peer。

bug已修复,是判断使用TCP加密协议重连或uTP重连的代码问题。在下一版发布前,您可以暂时把协议加密设置为禁用,以方便测试。

目前尚无机制处理NAPT后的外部端口与peer自己监听端口不一致的状况。后续版本再优化吧,先改bug

1個讚

目前尚无机制处理NAPT后的外部端口与peer自己监听端口不一致的状况。后续版本再优化吧,先改bug

以前我也测过utorrent,是根本无法NAT打洞的。。。包括 qBittorrent 也不行,可能开发者都搞错了,现在市面上所有的BT软件,,基本都是需要对方为外部网络,TCP端口开放,然后通过升级到UTP传输而已,而不是打洞

这就是我上面说的,其实目前市面上没有任何一款软件做了打洞,单纯的只是升级为同端口的udp传输而已。

如果nat打洞功能没有实现成功,,,那utp实属无意义,等下一个测试版看看