BitTorrent 代理设置:这里说的是 BitTorrent 这款软件,不是协议
BitTorrent 代理设置(指 BitTorrent 这款软件):Classic 版的 SOCKS5 填在哪里,为什么普通 HTTP 代理挡不住 peer 看到你的 IP,以及官方文档没写的部分。
搜“BitTorrent 代理设置”的人,问的可能是两件事:BitTorrent 这款软件怎么配代理,或者 BT 下载本身怎么走代理。这一篇讲前者。BitTorrent Classic 的代理设置在 Options > Preferences > Connection,类型选 SOCKS5;它的帮助中心写明,peer 通信的代理“not supported with standard HTTP proxies”,选普通 HTTP,peer 看到的仍是你自己的地址。除了这一篇帮助文章,这款软件处理代理的细节几乎没有公开文档。
如果你想了解的是各种 BT 客户端怎么走代理,直接看哪些 BT 客户端支持 SOCKS5,十五个常见客户端都在一张表里。
BitTorrent 这个名字,指两样东西
BitTorrent 既是文件分享协议的名字,也是一款客户端软件的名字,出品它的公司同时也做 uTorrent。这篇说的是软件:Windows 上的 BitTorrent Classic,Windows 和 Mac 上的 BitTorrent Web,以及安卓应用。协议本身,不管用哪个客户端都一样。
这两款软件几乎是双胞胎。BitTorrent 帮助中心讲代理的那篇文章,和 uTorrent 的一字不差,所以我们查到的内容大多对两者都适用。uTorrent 那篇单独写,是因为关于它公开的信息多一些。
先回答:你需要代理吗
多半不需要。要下载 Linux 镜像、开源软件或数据集,发布方的 HTTP 镜像往往更直接,也不会占用按量计费的代理流量。如果你担心的是版权方的追查,把这件事讲明白的 BT 项目推荐的是 VPN,不是代理,原因见代理和 VPN 的区别。
代理适合的场景是:只让 BitTorrent 这一个软件换出口地址,比如不想让平时登录店铺和广告账户的那个办公室 IP 出现在公开的下载群里。下载内容请限于你有权分享的:发行版镜像、Internet Archive 和知识共享作品、科研数据、软件补丁。只要内容合法,点对点流量在我们的住宅代理和不限流量的独享 IP(没有流量上限的独享 ISP 或数据中心 IP)上都没问题。但在 ProxyPanda 上分享未经授权的内容是不允许的,使用规范写明了遵守法律是你自己的责任。
走不了代理的部分
- UDP。 这款软件只在 SOCKS5 下中继 UDP,而我们没有在网关上验证过 UDP 中继,请把我们的 SOCKS5 视为只支持 TCP。DHT、UDP Tracker 和 uTP 不要指望能经过代理。代理接不住的时候,软件是把这些流量丢掉,还是改从你自己的地址发出,我们没能查到。
- 入站连接。 挂了代理的客户端,别的 peer 一般连不进来,你能连上的 peer 会变少。
- 加密。 代理只转发连接,不加密。
- 两个方向。 你下载的数据和做种时上传给别人的数据都经过代理,各自怎么计入套餐见计量说明。
帮助中心那篇文章说了什么
BitTorrent 的帮助文章“Does your software support proxies?”给出了位置和类型:Options > Preferences > Connection,可选 SOCKS4、SOCKS5、HTTP Connect 和 HTTP。然后是这一句:
Peer communication proxying is not supported with standard HTTP proxies, and UDP proxying is only supported with SOCKS5.
放到 ProxyPanda 上,能用的只有两种,其中一种还不确定:
- SOCKS5:能承载 peer 连接,就用它。住宅代理的端口直接支持,ISP 和数据中心代理在控制台切换到 SOCKS5。
- HTTP Connect:只有代理允许隧道连到任意端口时才能承载 peer,我们没有确认自家 HTTP 代理的每个端口都允许。
- 普通 HTTP:只代理 Tracker,peer 看到的还是你的地址;UDP 也承载不了。
在 BitTorrent Classic 里设置
- 打开 Options > Preferences > Connection。
- 代理类型选 SOCKS5。
- 填入服务页面上的地址和端口。ISP 和数据中心代理先在控制台选 SOCKS5,再复制它显示的端口。
- 如果你的版本有登录字段,填用户名和密码;没有的话,把你的地址加进 IP 白名单,代理就不会要求登录。
- 应用,然后重新开始要测试的种子。
我们没能确认的事
- BitTorrent Web: 没有找到它的代理设置文档。
- 登录和分流量开关: 帮助文章没有提用户名和密码,也没有提 Tracker 和 peer 的单独开关。
- 最近的版本: 官方 Windows 版更新页的最后一条是“BitTorrent 7.11.0 For Windows (build 46555) November 22, 2022”。之后是否通过自动更新推送了新版本,我们看不出来。
- UDP 的去向: 代理接不住时,DHT 和 uTP 会不会直连。
这款软件还在推广一个叫 BitTorrent Speed 的代币奖励功能,和代理无关,这里不展开。
没确认的地方这么多,最可靠的证据就是用量表。
用用量表核对
- 在同一台电脑上确认代理可用:
curl -s -x socks5h://USERNAME:PASSWORD@HOST:PORT https://api.ipify.org应该打印一个不是你的地址。 - 记下控制台里这项服务的流量数字(在哪里看)。
- 下载一个小而合法的种子,记下软件显示的传输量。
- 控制台数字是定期更新的,不是实时的,几分钟后再对比。
控制台的增量和软件的数字接近,说明 peer 走了代理;几乎没动,说明没走。完整的核对方法见怎么核对代理服务商的用量表。
常见问题
BitTorrent 的代理设置在哪? Classic 版:Options > Preferences > Connection。
该选哪种代理类型? SOCKS5。这款软件用标准 HTTP 代理时不承载 peer 连接。
BitTorrent Web 有代理设置吗? 我们没有找到相关文档。
DHT 能通过 ProxyPanda 吗? 不要指望,我们把自己的 SOCKS5 视为只支持 TCP。
下一步
如果客户端可以自己选,挑一个把代理行为写清楚的会省很多猜测,比如 qBittorrent 或 BiglyBT。有问题欢迎到 Discord 来问。