Transmission proxy settings, the short version: there is no box. Not hidden behind an Advanced tab, not renamed. The client’s source shows the word “proxy” appears zero times in the GTK, Qt and macOS preference layouts at version 4.1.3. What Transmission does have, since 4.1.0, is one key in a config file. This guide sets it, says exactly what it covers, which is much less than people hope, and tells you when to use a different client.
Checked against Transmission’s configuration docs at 4.1.3 and the 4.1.0 release notes in October 2026.
What proxy_url actually covers
The 4.1.0 release notes, from 27 January 2026, say: “Added support for using a proxy server for web connections.” Web connections is the key phrase. The docs describe proxy_url as a “Proxy for HTTP(S) requests (for example, requests to tracker)”, and the source sets it on libcurl, the library Transmission uses for those requests.
| Traffic | Through proxy_url? |
|---|---|
| HTTP and HTTPS tracker announces | Yes |
| Other web requests Transmission makes | Yes |
| Peer connections over TCP | No |
| Peer connections over uTP | No |
| UDP trackers | No |
| DHT | No |
The fine print, Transmission edition
- Peers always see your real IP. Not a misconfiguration; that is the design. Everything outside HTTP(S) leaves from your own connection.
- The meter is per GB, the seed is not on it. Residential, and traffic past a shared IP’s allowance, are metered per GB, and in a client that proxies peers a seeded torrent pays both ways. Transmission’s peers skip the proxy, so only its web requests count.
- UDP never touches the proxy. UDP trackers, DHT and uTP go direct. Separately, our SOCKS5 should be treated as TCP only, and an HTTP proxy cannot carry UDP anyway.
- No encryption. A proxy relays requests; it does not scramble them.
- Not for copyright-type worries. With peers never proxied, Transmission plus a proxy gives no cover at all; the qBittorrent’s wiki recommends a VPN for that, and the proxy vs VPN guide explains the difference.
- Lawful content only. Using our proxies to share files you have no right to share is not allowed; the acceptable use policy is the rulebook.
Setting proxy_url, step by step
- Quit Transmission first. The docs warn that editing settings while it runs means “settings will be reverted”.
- Open
settings.json. Where it lives differs by platform and front-end; the configuration docs list the locations. - Set
proxy_urlto your proxy, using one of the schemes the docs allow:http,https,socks4,socks4h,socks5orsocks5h. Prefersocks5h, so the proxy resolves tracker hostnames. - Save and start Transmission again.
{
"proxy_url": "socks5h://IP:PORT"
}That is one key inside a file that has many; add it, do not replace the file with it. Two values mean something special. If proxy_url is null, Transmission “respects the CURL environment variables”, so a proxy variable set in the environment for something else applies here too. If it is an empty string, no proxy is used.
Daemon users on a NAS or a server: the same key works in transmission-daemon’s settings.json, and the daemon reloads its settings on SIGHUP:
pkill -HUP transmission-daemonTwo more notes from the docs. Version 4.1 is moving key names to snake_case, and the old kebab-case names still work. And the 1.4x-era proxy-* keys are listed under Legacy Options; do not copy them from an old forum post and expect them to do anything on a current build.
Passwords: the docs do not mention credentials in proxy_url. libcurl itself accepts scheme://user:pass@host:port, but that is curl’s documentation, not Transmission’s, so we treat it as unconfirmed. The clean way round it is to add your own IP to the order’s IP allowlist, so the proxy needs no password.
Read the meter: it should be almost nothing
Here is the upside of Transmission’s tiny proxy: the bill is tiny too. Tracker announces are small requests. Download a 4 GB ISO and seed it to 1.0, and your home connection moves at least 8 GB, while our meter only sees the announces. In a client that proxies peers, all 8 GB would cross the proxy instead; the metering explainer covers how those bytes count.
So the meter test is a smoke alarm. After a day of Transmission, the usage view in your dashboard should show a trickle. If it shows gigabytes, something else is using your proxy credentials, or an environment variable is sending other traffic through the proxy. Go find it.
Seeding: your connection, not our meter
Because peers never use the proxy, seeding with Transmission costs your own bandwidth and nothing on ours. Still set an upload cap and a ratio, for your own line and your housemates’ video calls. Just do not set them because of a proxy bill: there will not be one worth mentioning.
Verdict
proxy_url is a tracker tool. Use it when an HTTPS tracker is blocked on the network you are on, or when you want tracker announces to leave from somewhere other than home and you understand that peers still see you. It costs almost nothing on any line.
If you need peers proxied, Transmission cannot do it; use a client that can. Deluge proxies peers as soon as you choose a type, and the Deluge guide covers it, daemon and all.
Quick answers
Does Transmission support SOCKS5?+
Only as a scheme in proxy_url, and proxy_url only covers HTTP(S) requests such as tracker announces. Peer connections, UDP trackers and DHT never use it. So Transmission can send its tracker requests through a SOCKS5 proxy, but never its peers.
Why can’t I find proxy settings in Transmission?+
Because there are none in the interface. The source shows no proxy field in the GTK, Qt or macOS preferences at 4.1.3. The setting is proxy_url in settings.json, added in 4.1.0.
Do the old proxy settings still work?+
Transmission’s docs list the 1.4x-era proxy keys under Legacy Options. Do not use them as if they were current; use proxy_url on 4.1 or later.
Can I put a username and password in proxy_url?+
Transmission’s docs do not say. libcurl, which Transmission uses for these requests, accepts user:pass@ in a proxy URL, but that is curl’s documentation, not Transmission’s. Allowlist your own IP on the order instead and leave credentials out.
Top-ups start at $5.
One shared datacenter IP for 30 days is $1.25. A single gigabyte of residential is $5.50. The balance never expires.