实操教程2026年10月8日阅读约 7 分钟

Transmission 代理设置:界面里没有,proxy_url 也只管网页请求

Transmission 代理设置:界面里没有代理选项,settings.json 里的 proxy_url 只代理 HTTP(S) 请求,peer、UDP Tracker 和 DHT 始终直连。附我们在 4.1.3 上的实测。

Transmission 代理设置的答案,可能和你预想的不一样:界面里根本没有代理选项,Transmission 也没有办法让 peer 连接经过代理。从 4.1.0 开始,settings.json 里多了一个 proxy_url,它只负责 Transmission 发出的网页请求,比如 HTTP Tracker 通告和 Web Seed。peer、UDP Tracker 和 DHT 永远走你自己的网络。

所以结论很直接:想让 peer 看到代理的地址,Transmission 是错的客户端,改哪个设置都没用。如果你只是想下一个 Linux 镜像(Ubuntu 默认装的就是 Transmission),大概率根本不需要代理。

什么时候根本不需要代理

Transmission 常见的用法有两类:在 Mac 和 Linux 桌面上下载发行版镜像,以及跑在 NAS 和路由器上的守护进程,它的官网说 Western Digital、Zyxel 和 Belkin 都在用它。这两类任务下载的多是发行版、开源软件和公开数据,从自己的网络下完全没问题。

挂代理也换不来隐私,因为 peer 不会经过代理。如果你担心的是版权方在公开下载群里记录 IP,BT 项目给的建议是 VPN,见代理和 VPN 的区别。

不论用什么客户端,通过 ProxyPanda 跑 BT 都只能用于你有权分享的内容:发行版镜像、开源软件、Internet Archive 和知识共享作品、科研数据。在这个前提下,点对点流量在我们的住宅代理和不限流量的独享 IP(没有流量上限的独享 ISP 或数据中心 IP)上都可以跑;但我们的网络上不允许未经授权的分享,使用规范写明了遵守法律是你的责任。

proxy_url 管得到什么,管不到什么

4.1.0 的更新说明写的是“Added support for using a proxy server for web connections.”。Transmission 的配置文档这样描述这个键:

Proxy for HTTP(S) requests (for example, requests to tracker). Format [scheme]://[host]:[port], where scheme is one of: http, https, socks4, socks4h, socks5, socks5h.

这些请求都通过 libcurl 发出,客户端的源码显示代理只在那里设置。落到实际流量上:

流量 经过 proxy_url 吗
HTTP、HTTPS Tracker 通告 经过
Web Seed(从 HTTP 镜像取文件块) 经过
peer 连接,TCP 或 uTP 不经过
UDP Tracker 不经过
DHT 不经过

scheme 写成 SOCKS5 也改变不了这张表,它只决定网页请求怎么到达代理。

我们这边还有两条限制:即便在能代理 peer 的客户端里,ProxyPanda 的 SOCKS5 也请当作只支持 TCP,因为我们没有在网关上验证过 UDP 中继;HTTP 代理则完全承载不了 UDP。代理也不加密任何东西。细节见 HTTP 代理和 SOCKS5 的区别。

我们实测:代理日志里只有三类请求

我们想亲眼看看,而不是只复述文档。2026 年 10 月 8 日,我们在自己机器上的容器里运行了 Alpine Linux 软件包里的 transmission-daemon 4.1.3,把 proxy_url 指向一个会记录每个请求的本地 HTTP 代理(tinyproxy),然后添加 Debian 13.7.0 的 netinst 种子,跑了 45 秒。

代理日志里 Transmission 的请求只有三类(已截短):

CONNECT ip4.transmissionbt.com:443 HTTP/1.1
GET http://bttracker.debian.org:6969/announce?info_hash=...&port=51413&event=started HTTP/1.1
CONNECT cdimage.debian.org:443 HTTP/1.1

最后一条出现了八次,那是从 Debian 自己的服务器下载 Web Seed。同一时间,Transmission 显示连上了 50 个 peer;容器的连接列表里,守护进程直接连着几十个 peer 地址,只有五条连接是连到代理的。

由此得出两点。Tracker 看到的是代理的地址,而每个 peer 看到的都是我们自己的地址。另外,Web Seed 是实打实的文件数据:如果种子带 Web Seed,会有一部分下载经过代理,计入流量。

改配置文件前的四个注意事项

  • 先关掉 Transmission,或停掉守护进程。 文档说得很直白,否则“settings will be reverted”。
  • null 和空字符串意思不同。 默认是 null,此时 Transmission“respects the CURL environment variables”,你在终端里设过的代理环境变量可能悄悄生效;写成空字符串 "",才是不用任何代理。
  • 用户名和密码无法确认。 Transmission 的文档没有提登录。libcurl 支持把登录信息写进代理 URL,但我们无法确认 Transmission 会原样传过去。最省事的办法是把机器的出口地址加进 IP 白名单,代理就不需要登录。
  • proxy- 开头的旧键不是现行的。 1.4x 时代的那组 proxy- 键在同一份文档里归在“Legacy Options”下。4.1 正在把键名改成 snake_case,旧的 kebab-case 写法仍然有效。

写入 proxy_url

  1. 关掉 Transmission,或停掉守护进程。
  2. 在 Transmission 的配置目录里打开 settings.json。目录位置取决于系统和你用的是哪个版本,项目的“Editing Configuration Files”页面列出了各个位置。
  3. 加上这一行,用 SOCKS5 并让代理解析域名:
"proxy_url": "socks5h://HOST:PORT",

写成 http://HOST:PORT 也可以,反正经过它的只有网页请求。

  1. 重新启动。守护进程也可以通过 SIGHUP 重新读取设置。

文档点名 GTK 版、守护进程和命令行客户端使用 settings.json。macOS 版和 Qt 版是否也读取 proxy_url,我们没能确认。

默认开着、且永远不走代理的四项

在 4.1.3 上运行 transmission-daemon --dump-settings,输出里是 "proxy_url": null,同时还有 "dht_enabled": true、"pex_enabled": true、"lpd_enabled": true 和 "utp_enabled": true。设置 proxy_url 不会改变这四项,它们也都不经过任何代理。

用量表上会看到什么

我们的代理按 GB 计量。在能代理 peer 的客户端里,下载和做种上传两个方向都要经过代理;Transmission 的 peer 不走代理,所以经过代理的只有通告和 Web Seed。Tracker 通告的数据量很小,Web Seed 却不小,前面的实测就是例子。所以合理的预期是:种子不带 Web Seed 时,代理流量很低;带 Web Seed 时,可能占文件的相当一部分。一个 GB 怎么计,写在计量说明里。

核对方法:记下控制台里这项服务的流量数字,跑一个种子,几分钟后再看,因为数字是定期更新而不是实时的。在哪里看,见怎么查看还剩多少流量。再和 Transmission 显示的下载量比:增加得很少,说明只有通告经过了代理;增加得多一些,是 Web Seed 的数据。不管哪种,peer 那部分下载都不会经过代理,也永远不会出现在用量表上。

一定要让 peer 走代理,就换客户端

选一个能代理 peer、并且写清楚了怎么做的客户端:qBittorrent 要勾两个默认关闭的选项;Deluge 选定代理类型就会代理 peer。其他客户端见哪些 BT 客户端支持 SOCKS5。

常见问题

Transmission 支持 SOCKS5 吗? 从 4.1.0 起,只对网页请求支持,通过 proxy_url。peer 连接永远不走代理。

Transmission 的代理设置在哪? 偏好设置窗口里没有,是 settings.json 里的 proxy_url 键。

proxy_url 能对 peer 隐藏我的 IP 吗? 不能。我们的实测里,Tracker 只看到代理,peer 连的是我们自己的地址。

Transmission 4.0 能用吗? 不能。这个键是 4.1.0 才加的,我们在一个 4.0.6 版本上运行 --dump-settings,输出里根本没有代理相关的键。

下一步

如果 Transmission 用得顺手,你又只是要一个 Linux 镜像,那就不挂代理,直接用镜像站或种子下载。如果你有一个合法的任务确实需要代理,又不确定选哪个客户端,充值前先到 Discord 问问。

还有后续问题?

去 Discord 问。答案还能帮到下一个读到这个帖子的人。

加入 Discorddiscord.gg/proxypanda
$5 起步去 Discord 问