关于非对象存储的web 种子制作 失败询问

我现在有一个阿姆斯特丹的HDD大鸡,觉得发布种子的时候纯p2p速度还是太慢了,G口跑不满
之前曾经使用backblaze B2 +cf cdn 绕过缓存成功搞过
不过我觉得成本又是个问题,本来都有保种鸡的话为什么不直接用鸡来做web种子算了
由于本人技术有限,使用的是1panel,
直接把种子文件存在静态网站目录下面保种,同时使用cf 的cdn隐藏IP
https协议
但是比较神奇的是出现了报错,而且是可以下载,但是几秒钟过后就完蛋了
Snipaste_2025-05-26_14-51-35


请问有什么办法解决吗?
cf开启黄云,同时绕过缓存了,我很确信是同一个文件,因为保种我https用的都是同一个文件
使用qb下载的时候也是同样的情况,但是qb是连接失败或者DNS查询失败,peer ban也是下了几秒钟后暴毙
贴上我的现在的配置`server {
listen 80;
listen 443 ssl http2;
server_name 我的域名;
root /www/sites/我的域名/index;

client_max_body_size 100G;
client_body_timeout 3600s;
client_header_timeout 3600s;
send_timeout 3600s;
proxy_connect_timeout 3600s;
proxy_send_timeout 3600s;
proxy_read_timeout 3600s;

ssl_certificate /www/sites/我的域名/ssl/fullchain.pem;
ssl_certificate_key /www/sites/我的域名/ssl/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

access_log /www/sites/我的域名/log/access.log;
error_log /www/sites/我的域名/log/error.log;

if ($http_cf_ipcountry = "JP") {
    return 404;
}

error_page 497 https://$host$request_uri;

location ~* \.(rar|zip|7z|tar|gz|mp4|mkv|avi|iso)$ {
    sendfile on;
    sendfile_max_chunk 2m;
    tcp_nopush off;
    tcp_nodelay on;
    keepalive_timeout 300s;
    keepalive_requests 100;
    add_header Accept-Ranges bytes always;
    expires 8d;
    add_header Cache-Control "max-age=720000";
    output_buffers 4 2m;
    client_body_buffer_size 4m;
    send_timeout 300s;
    error_page 404 = @webseed_404;
    error_page 416 = @webseed_416;
    add_header X-WebSeed-Compatible "true";
    add_header X-Content-Type-Options nosniff;
    gzip off;
    add_header Content-Encoding identity;
}

location /upload {
    dav_methods PUT;
    dav_access user:rw group:rw all:r;
    client_max_body_size 100G;
    client_body_timeout 7200s;
    create_full_put_path on;
    client_body_temp_path /tmp/nginx_upload;
}

location = / {
    return 200 "WebSeed HTTP Seeding Service\nServer: 我的域名\nStatus: Online\nSupports: Range Requests, Resume Downloads\nCompatible: BitTorrent WebSeed Protocol\n";
    add_header Content-Type text/plain;
    add_header Cache-Control "max-age=3600";
    add_header Accept-Ranges bytes;
    access_log off;
}

location / {
    try_files $uri $uri/ =404;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    expires 1h;
    add_header Cache-Control "max-age=3600";
    add_header Accept-Ranges bytes;
    send_timeout 1800s;
    keepalive_timeout 1800s;
}

location ~* \.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
    expires 1d;
    add_header Cache-Control "max-age=86400";
    add_header Accept-Ranges bytes;
    error_log /dev/null;
    access_log /dev/null;
}

location @webseed_404 {
    add_header Content-Type text/plain;
    return 404 "WebSeed: File not found\n";
}

location @webseed_416 {
    add_header Content-Type text/plain;
    add_header Accept-Ranges bytes;
    return 416 "WebSeed: Range not satisfiable\n";
}

location /health {
    access_log off;
    return 200 "WebSeed Service Healthy\n";
    add_header Content-Type text/plain;
    add_header Accept-Ranges bytes;
}

} `

你的G口跑不满可以先尝试在1panel里安装docker版本的比特彗星webui版

种子发出来看看或者自己用HTTPDebuggerPro抓包一下,too many errors这种情况一般是web服务器输出了429状态的错误码,可能是cf拦截了http下载请求,要在cloudflare防火墙里面过白,绕过waf拦截

一般直接推荐用kangle + itzmx tcp加速,可以轻松发挥出40Gbps服务器的性能,而不需要用cf隐藏ip,因为搜索引擎不会收录视频文件,一般也难以受到投诉的影响
目前各大BT站点的发布组都在用比特彗星,同时搭配kangle作为web种子服务器来发挥10Gbps以上服务器的性能

想问一下如何屏蔽直链浏览器下载只强迫bt软件下载,Ua的话也很容易伪造吧

你说的屏蔽ua就是最常见的一种方法,也是效率最高的方法,能伪造ua的也不是小白了,能有1w种方法绕过你的拦截检测
用kangle的话可以参考这个文章
https://bbs.itzmx.com/thread-15771-1-1.html

web 种子有两种实现方法 一个是 BEP17 另一个是 BEP19

BEP17的请求方法和一般的HTTP下载是一致 这使得BT客户端可以从普通HTTP站点上获取资源

而BEP19算是为BT专门设计的在请求时需要指定 info_hash piece 等参数
这些参数是由BT客户端自动处理的用手动拼凑非常麻烦基本无法实现

也许可以通过只支持BEP19来屏蔽浏览器下载?不过实现起来可能有些困难