跳转至

P2P

Bittorrent

基本知识

  • Seeder:做种者,即顶栏显示的“做种数”

  • Peer:拥有你缺失分片的下载者,即顶栏显示的“用户/对等节点”

  • Leecher:下载者(通常指未完成下载的用户)

  • 可用性(Availability):在BT网络中至少拥有一个完整文件副本的做种者(Seeder)数量

  • 磁力链接(Magnet Link) :一种特殊的URI链接(结构:magnet:?xt=urn:btih:40位SHA1哈希值&dn=文件名&tr=tracker服务器地址),用于在P2P网络中标识和共享资源。它本身不包含完整的元数据,仅包含资源的唯一标识符(infohash)。

参数 含义
xt Exact Type,资源类型标识
dn Display Name,显示名称
tr Tracker服务器地址
ws Web Seed地址
  • 元数据获取:根据infohash,从网络中获取完整的.torrent文件信息的过程。获取到InfoHash后,客户端会同时通过三个渠道在P2P网络中寻找拥有该资源元数据的节点:

    • DHT(分布式哈希表)网络查询:使用 Kademlia协议。客户端向分布式哈希表网络发送查询请求,询问哪些节点持有这个InfoHash对应的元数据。DHT网络会返回多个候选节点的信息。

    • Tracker服务器查询:如果磁力链接中包含了Tracker服务器地址,客户端会向该服务器发送请求,获取正在共享该资源的用户列表。

    • PEX节点交换:如果客户端已经连接了一些其他Peer,会通过节点交换协议从这些已有连接中获取更多候选节点信息。

当客户端找到愿意分享元数据的节点后,会与它们建立连接并下载元数据。元数据内容包括:文件列表、每个文件的大小、文件目录结构、以及文件分块信息(piece信息)等。元数据下载完成后,客户端就拥有了完整的.torrent文件信息。此时客户端可以正式开始正常的BT下载流程,从各个Peer处获取文件的实际内容数据。

  • uTP协议:解决大流量下载时的网络拥塞问题

  • 加密:防止ISP通过深度包检测(DPI)识别P2P流量并进行限速、隐藏用户正在下载的内容和连接信息、避免被网络监控设备标记或封锁。包括以下方式:

    • 协议加密(Protocol Encryption,PE):仅对协议头部加密,已被MSE取代,连接成功率较高,速度较快,隐蔽性中等
    • 消息流加密(Message Stream Encryption,MSE):支持完整性和加密双重保护,对整个消息流进行加密,连接成功率中等,速度中等,隐蔽性较高
    • 协议混淆(Protocol Obfuscation):深度流量混淆,将P2P流量伪装成常规的HTTPS等流量,连接成功率较低,速度较慢,隐蔽性最高

加速

  • 选择健康度高的种子(Seeder数量多,Availability接近或等于1)

  • 提高端口可达性,接受入站连接(只要在检测页面达到端口可达即可):

  • NAT Type 1(非CGNAT,公网IP直连)或 NAT Type 2(路由器NAT(桥接),但已正确配置端口转发/UPnP)

  • 配置端口转发(需要提前配置好静态IP):取消“每次启动随机端口”,配置BT客户端的监听端口,登录路由器管理页面,在 “端口转发”“虚拟服务器”“NAT”“高级设置” 等寻找端口转发设置。在设置列表中,将 WAN口(外网) 的端口转发到 电脑的本地IP地址(如 192.168.1.100)的BT客户端的监听端口。可以访问一些BT端口检测网站(例如 canyouseeme.org)检测端口转发状态。

  • 通过操作系统防火墙(进入“Windows安全中心” -> “防火墙和网络保护” -> “允许应用通过防火墙”。找到BT客户端(如qBittorrent),确保在“专用”和“公用”网络前都打勾。)、路由器防火墙(登录路由器管理页面,寻找“防火墙”、“SPI防火墙”、“DoS保护”等选项。可以尝试暂时关闭这些功能)、第三方安全软件防火墙(打开安全软件,找到防火墙设置,确保BT客户端被允许通过防火墙)。

  • 勾选 UPnP/NAT-PMP(如果路由支持)。

  • Tracker / DHT / PeX 发现链路

  • 启用 DHT、PeX、Local Peer Discovery
  • 添加可用 Tracker 列表
  • 使用可靠的 DNS 服务器

  • 本机DNS优化:使用公共 DNS(如 Google DNS 8.8.8.8、Cloudflare DNS 1.1.1.1

  • 取消所有速度限制、队列管理、分类限速、时间段限速、种子比率规则等

  • 关闭VPN/代理配置(很多 VPN 不支持端口转发)

  • 连接数优化:全局最大连接数:500-1000,每个种子最大连接数:50-100

  • 加密改为允许