1.95测试版

已经24小时没有出新的beta版本了

A接受B的远程连接后,间隔1秒后通过PEX向B发送A已有的用户列表。之后间隔60秒通过PEX向B发送新增peer。

beta9 又做了修改,试试看。这次用openWRT虚拟机做的测试,NAT设置比ikuai要细致一些。

感谢反馈,麻烦具体介绍一下重现步骤。能配上截图或动画更好(用ScreenToGif)

感谢建议

双显示器,bc在显示器1上打开,拖动窗口到显示器2,关闭bc,下次打开还是自动在显示器1上显示,窗口位置坐标信息没有保存

建议增加个【保存路径】列,毕竟有时候路径排序挺方便

这是帮一个朋友发的,他说【建议增加个“种子内部文件筛选”功能,毕竟有时候种子包含的文件太多,文件找起来就会有点麻烦】

v1.95 Beta9 [20220924]绿色版分流
bb853a807a298101797c16cf07887e54cf99b30a

感谢反馈,已记录。是在全屏状态吧?非全屏没问题

感谢建议,已记录。

感谢建议,已记录。

2个显示器分辨率不一样,显示器1是全屏,拖动到显示器2是窗口

估计改瞬间代码太复杂了,,,上面有GIF图例,,目前7秒PEX出来也算可以接受了。

Beta9 实测私有种子下ABC三者还是不行呢。。。

UTP发起的时候,本地发起,没有远程端口正常吗。

该功能已有
image

本地发起的uTP连接,远程端口用的是对方的监听端口,这里只是没有显示出来。下一版加上。

可能是测试环境或测试流程不一致。我的测试过程如下:

一、 网络环境:

A是公网映射型做种,B和C可直接连接到A,之后A可回连B和C。
B是NAT1型,可直接连接到A,之后A可回连B;B直接连接C会失败,但在此之后C可通过A看到的B的外网端口连接到B。
C是NAT4型,可直接连接到A,之后A可回连C;C直接连接B会失败,且在此之后B也无法通过A看到的C的外网端口连接到C。(NAT4和NAT1的区别)

二、 连接顺序:

  1. A开始做种,连接HTTP tracker。
  2. B开始下载,连接HTTP tracker,获得A的IP及外网端口,成功连接A。
  3. C开始下载,连接HTTP tracker,获得A的IP及外网端口,成功连接A;获得B的IP及外网端口,连接B失败。
  4. C重新尝试连接B,发现可通过A协助打洞,向A发送协助打洞请求。
  5. A收到协助打洞请求后,向B发送C的外网IP端口,要求B连接C;同时A向C发送B的外网IP端口,要求C连接B。
  6. B从A收到C的外网IP端口,但由于C是NAT4,B使用A提供的C外网端口无法连接上C。
  7. C从A收到B的外网IP端口,由于B是NAT1且已向C发送UDP数据包,C使用A提供的B外网端口可以连接上B,由此B和C成功互连。

三、其他情况

  1. A先启动,C再启动,B最后启动,B和C同样能够通过A的协助实现打洞互连。
  2. 私有种子和普通种子的区别,在于第4步查找协助打洞的A时,是否要求从A收到的PEX用户列表中存在目标用户的地址,且目标用户被PEX标记为支持uTP协议和打洞协议。

你的B和C通过NAT后的端口是否发生了改变。B和C都要发生改变才是NAT类型。
我测试环境和打洞步骤和视频一样。NAT后的远程端口都会改变

我的测试环境和你描述一样,不过始终收不到PEX,关于你说的第四点,这个是发送打洞请求是需要怎么开启嘛?
高级设置中,bittorrent.private_torrent_peer_hole_punch 设置的是

最关键的这一步,,,我没有获得,C用户列表里拿不到B的远程端口

我在openwrt做了设置,NAT外网端口会发生变化,与本地监听端口不相同。

我测试时 enable uTP 设为强制
bittorrent.peer_hole_punch 设为默认值 true
bittorrent.utp_after_holepunch 设为默认值 true

这一步对非私有种子,是通过PEX拿到的;对私有种子,是通过第5步打洞协议拿到的。你测试时非私有种子可以拿到,私有种子拿不到是吧?

bittorrent.utp_after_holepunch 我是始终禁用,bittorrent.peer_hole_punch 保持默认值
难道和这个有关系,一直觉得这个功能没任何作用,从来都是禁用状态。

对的,我是测试在私有种子拿不到PEX,然后就没办法建立连接了

应该是和这个有关系的。开启后再测试测试呢?

今晚试一下,感觉就算成功了也不是希望所想要的样子。。

bittorrent.utp_after_holepunch 启用后(自动),私有种子确实是打洞成功了,不过等待了2分钟左右才开始响应UDP打孔的来源。。。论效率完全不如PEX
还有,,我想起来我为什么把bittorrent.utp_after_holepunch 禁用掉了,因为这个功能有BUG,之前反馈过你没修复,打开后connect不会超时了,一段时间后会积累几百万的connect状态。

改成BT那样的PEX不行吗?

Content not available in your region.
所在地区内容不可用……蛋疼……没有电脑端的梯子……

其他客户端都遵循私有种子不支持PEX,彗星还是遵守规范比较好。至少打洞协议已经能用了,虽然慢一点。

感谢反馈,我再测试一下