How to use proxy for Transmission?
I have heard that Proxy Support in Trasmission has been removed as of version 2.12. Is it possible to use proxy by any other method?
Solution 1:
TL;DR: http_proxy environment variable works for at least 2.92. For versions 1.4.x and older see configuration options here or below.
Citation from transmission wiki page:
Transmission uses the libcurl library for http- and https-based tracker announces and scrapes. Transmission doesn't support proxies, but libcurl itself honors a handful of environment variables to customize its proxy behavior.
relevant variables start here here. And in CURLOPT_PROXY description there is this:
libcurl respects the proxy environment variables named http_proxy, ftp_proxy, sftp_proxy etc. If set, libcurl will use the specified proxy for that URL scheme. So for a "FTP://" URL, the ftp_proxy is considered. all_proxy is used if no protocol specific proxy was set.
I run transmission-daemon using systemd, so I just add line
Environment=http_proxy=http://proxy_url:proxy_port
to service configuration using
sudo systemctl edit transmission-daemon.service
and all worked.
I have transmission-daemon 2.92. Can't say for sure for older version, but according to this wiki page you should use this parameters for transmission 1.4.x or older:
proxy-authentication String proxy-authentication-required: Boolean (default = 0) proxy-port: Number (default = 80) proxy-server: String proxy-server-enabled: Boolean (default = 0) proxy-type: Number (0 = HTTP, 1 = SOCKS4, 2 = SOCKS5, default = 0) proxy-username: String
Solution 2:
vim /lib/systemd/system/transmission-daemon.service
then add proxy enviroment, like
...
[Service]
User=debian-transmission
Environment="HTTP_PROXY=http://127.0.0.1:7890" "HTTPS_PROXY=http://127.0.0.1:7890" "ALL_PROXY=socks5://127.0.0.1:7891"
Type=notify
...
It works on 2.94