2.04测试版

这种700GB大文件下载并且连接的人数比较多的话,建议给多一些磁盘缓存,2G肯定不够的,这会导致爆内存后频繁读写磁盘,引起4K随机寻址导致速率变慢。硬盘速度一旦变慢了,就会引起写入变慢然后就积累在磁盘写缓存区中了,2.04版本会增加一个通知提示,不过目前没有在右下角的操作中心弹出不够明显,等待下一版改进界面

右下角那個小鈴鐺通知有什麼用的?

能否在无人值守的情况下修改BC的监听端口?

正在尝试通过STUN开通端口的自动化
由于BT需要向Tracker提交监听端口,因此STUN得到的公网端口需要在BT软件中应用才起到意义
这操作可以由用户手动完成,但STUN的公网端口会意外变更,实际应用中需要用户值守
若能通过脚本等方式实现自动化,可用性能大幅提升

目前在OpenWrt下已经实现前置步骤的自动化,可以获得公网端口并进行映射
已尝试通过SMB修改BitComet.xml中的<ListenPort>,但需要重启程序才生效
有方法在不退出正在运行的进程的前提下反映BitComet.xml的配置吗?
又或者有其他思路能达到这个目的?
我注意到目前的WebUI可以通过浏览器(JavaScript?)实时修改下载和上传速度,或者能通过它来修改监听端口

又或者添加一个高级设置,强制一定的间隔读取BitComet.xml中的配置
除了STUN的自动化之外,应该还有别的场景下能用到

目前版本可以通过hosts设置http tracker域名的ip为127.0.0.1,然后使用kangle来监听tracker所用的端口,使用url_rewrite模块操作来实现修改汇报端口
这样就能实现客户端端口号不变的情况下,通知tracker其他的端口号

例子

^(.*)&port=(.*)$

直接修改比特彗星的xml理论上也可以,可以让官方加一个命令行参数,例如 .exe -r来重载配置文件

也许直接加一个 -ListenPort 参数会更简单一些
http://wiki-zh.bitcomet.com/bitcomet命令行

我觉得吧
如果BC能内置STUN,自动检测及汇报NAPT后的公网端口,那么连端口映射都可以免了
只要运营商和路由器能提供NAT1,那么跟公网几乎同等了
内置STUN的话,还可以解决第三方工具只能TCP和UDP二选一的问题

目前BC已经有NAT检测工具,只要在这基础上增加一个保活操作就能变成一个STUN工具
第三方STUN需要把流量转发给应用程序,对操作系统或路由器造成一定的负担
而BC内置STUN的话,流量会发到自身,不需要转发

当检测到外部端口和监听端口一致时,什么都不用做
当检测到外部端口跟监听端口不同时,修改tracker汇报端口为外部端口
这过程中甚至不需要考虑是NAT1还是NAT3,因为NAT3的话无论汇报的是哪个端口都无法接受连接,那么可以乐观地默认本机是NAT1

对于运营商提供NAT1,但是路由器强制NAT3的情况,只需要添加一个常规的映射规则即可突破

即使运营商提供NAT3,对tracker汇报NAPT后的公网端口也有利于BEP055的打洞


关于NAPT导致的监听端口和外部端口不一致的问题,2年前的帖子中也有提过
附有libtorrent的实现方案

要是能在这基础上再优化向tracker汇报的外部端口,内网问题可以最大限度地解决了

可以将现有的 NAT检测工具改造成为stun穿透功能
再加入一个 NAT 层数探测功能
毕竟现在的NAT基本都不止一层
直接的NAT类型检测并不准确

可以用路由追踪来实现
再加上NAT判断功能 毕竟私有地址范围是确定的
可以看看这个:


BEP055应该也可以用于穿透 光猫或者路由器的IPv6防火墙
在IPv6中实现穿透可能会更简单
因为端口不会改变

现在很多家庭宽带已经有了IPv6
但是光猫里的IPv6防火墙很难关闭
即使桥接光猫绕过光猫中的IPv6防火墙
路由器中的IPv6防火墙又是一道坎

现在版本中如果希望充当中继节点协助穿透必须要打开utp吗?


不知道BEP055穿透能不能跨任务
如果可以的话 那就能通过”断头档“来相对稳定的保持用户之间的连接
使用公网用户协商打洞
这样就无需设置服务器充当中继节点

问题的原因找到了
可以复现了

@zhuxiaoying85309 @wxhere15

是种子市场或者种子存档的问题

在种子存档或种子市场中纯v2任务的哈希值似乎存在问题

应该是没有适配v2哈希的长度
导致存储在种子存档或种子市场中
的v2哈希值被截断 当成的v1哈希


但这样竟然能成功添加任务
而且还能连接到其他用户

但是无法下载元数据 更无法正常下载

正常的v2哈希值

0585b27c0d3788dc7c69b29e741c0637c03a096145120182835957a90c4a5aeb

被截断的错误v2哈希值

0585b27c0d3788dc7c69b29e741c0637c03a0961

评论区也是这样的问题
似乎除了核心功能以外的部分都没有适配v2哈希


用你的特征码复现了,持续在下载,但是红X错误,一直提示 Torrent 文件打开失败。

在qb做种,使用qb下载复现了这个小文件无法开始下载的问题,qb下载方与qb做种方两者互相握手后就断开了连接,应该是qb自身的原因。

windows下有没有办法实现均衡负载,让每次新建链接访问通过不同的ip地址出去,不然tracker只能收到一个ip
已知可以装虚拟机部署爱快来实现,这样能查出多个ip
https://ip.skk.moe/multi

linux下已知使用系统防火墙写nat规则也可以实现爬虫效果,每次请求都是走不同的ip地址出去
Windows下有没有不装虚拟机直接实现的办法,有网友知道吗,可以分享下!

GitHub上勉强能用的一个方案,WIndows Server 的话也有NLB
但效率都非常低,且可操作性都不如OpenWrt或者ROS的现成方案
特别是OpenWrt下,mwan3+ipset+nftalbes几乎无死角应对各种环境,当然包括IPv6

Windows作为网关的能力,还真不如四五十块的二手路由器
理论上用WSL2也可以,但实质上也是虚拟机

如果有多个网卡(理论上虚拟网卡也行)的话,可以通过设置相同跃点数的方法实现简单负载均衡

还有个据说效率比较高的方案,是使用PowerShell的NetSwitchTeam模块
但可能需要额外的操作来实现网络层的聚合,并且也限于Windows Server,与Hyper-V配套
(微软官方说仅限Server,但似乎Client也有实装)

另外,如果想在Cilent系统上使用Server组件,有个方法是替换Windows\BrandingWindows\System32\spp\tokens\skus文件夹,并修改密钥
但修改后的系统可能出现意想不到的问题,已知的是WSA和WIndows Hello可能无法正常使用,以及一些驱动实用程序(比如AMD显卡)会阻止在Server系统上安装


我一直是多线接入,也尝试过多个基于Windows的分流方案
然而即便是最简单的源地址选择,也表现得非常孱弱,唯一值得称赞的可能是俄罗斯人做的3proxy
当然微软有提供Hyper-V,(相比起Windows整机来说)只需要较少的资源就可以从根源上解决这个问题

1個讚

看你说到proxy,不知道有没有小程序可以通过系统api实现这种功能,比特彗星上设置个127.0.0.1本地代理接入程序也可以,这样也能实现,搞虚拟机开路由器确实太复杂,虚拟网卡做跃点是个好想法,等会去试试

Clash等软件有现成的分流方案,可以较大程度的自定义,也支持socks5服务器
可以试下利用3proxy创建两个本地socks5,分别指向两个不同的出口源网卡或源地址,再交给其他软件分流
对于不支持设置代理的程序,可以用Netch,我玩游戏就是用它

是的,但是我这个需求还是不一样的,因为是要本机发起多个ip,那个软件是分流到多个服务器上,原理还是不一样的

意思是说 两个或多个IP地址发起请求 这样在tracker服务器有两个或多个记录?

网卡跃点数的方法我倒是用过 应该是有一定的效果的
至少两个网卡同时都有流量在走


希望在代理设置中增加一个选项 对IPV6地址不使用代理


http下载收到429的时候会停止下载,应该只在403和404的时候才明确停止吧?

右键禁止IP失灵了。
不止一次对peer列表里某一IP右键禁止24个小时,但过不了几分钟又重新出现在了peer列表connected分类里,且对它有上传速度。
前后截图对照过,确定是同一IP,对方用的bitcomet 1.84,我用的2.04.

编辑这个回复前,我禁用了他24小时,刚刚看了一下又出现在了列表里,这还没几分钟呢。

beta4 已发布,修复部分bug

image
beta4依旧没有在操作中心弹出这个通知。。。

界面改进:torrent v2任务文件列表显示piece layer哈希下载情况
功能正常

核心修正:torrent v2任务在获取piece layer哈希之前不应启动长效下载及eMule下载
虽然看服务器列表成功查询了长效服务器,但是没有触发下载,功能正常

然后发现问题,种源A进度30%的情况,分块哈希是完整的,B作为下载方取不到完整的分块哈希
查看peer日志,,视乎没有什么有用的信息
image

下载方的分块哈希进度就卡在这了,AB两方互相重启在开始任务都没用

把A种源的进度提升后,B才成功获取到完整的分块哈希,分块哈希获取完成后长效开始触发下载成功提速
这个分块哈希在A进度未完整100%的情况下,无法传递给B?

复现方法,算一个BUG
A制作一个v2种子文件,然后删除本地文件,客户端上重新校验使其进入0%的下载状态
B以磁力或者特征码形式添加任务,此时任务摘要显示A有完整的分块哈希,B无法获得任何分块哈希