美文网首页
如何给 Transmission 配置代理

如何给 Transmission 配置代理

作者: 虚胖一场 | 来源:发表于2020-05-10 19:32 被阅读0次

本文链接个人站 | 简书 | CSDN

Transmission 是一个简洁易用的开源 BT 客户端。在 1.4.x 及更早的版本中,Transmission 是支持配置代理的,之后的版本不知道出于什么原因移除了这一特性。而我又有配置代理的需求,所以在很长一段时间里,我不得不使用 μTorrent。macOS 升级到 Catalina 之后便不再支持 32 位程序了,垃圾 μTorrent 又不提供 64 位版本,我只好再想别的办法了。

最简单的解决方案是使用 Proxifier,这个强大的工具支持在 macOS 和 Windows 上实现分应用代理。虽然这个功能在 Android 上很常见,但在桌面端还是很稀罕的。Proxifier 唯一的缺点是有点贵,当然,这不是它的问题,而是我的。

穷则思变。根据 Transmission 的 wiki

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.

这意味着如果我们放弃 GUI 版本,转而使用 transmission-daemon + Web UI,就可以通过设置环境变量的方式给 Transmission 配置代理:

export ALL_PROXY="socks5://127.0.0.1:1080"
./transmission-daemon

我使用的是 socks5 代理,请酌情修改。

通常情况下,我们很少手动启停 transmission-daemon,而是交给一些系统管理工具,以实现开机自启等功能,这就需要一些技巧。

macOS

macOS 的 init 程序是 launchd,使用 launchctl 管理服务。当然,通常我们会使用 brew services,它封装了 launchctl。我们可以修改 ~/Library/LaunchAgents/homebrew.mxcl.transmission-cli.plist 文件,来添加启动 Transmission 时的环境变量,示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.transmission-cli</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/opt/transmission-cli/bin/transmission-daemon</string>
      <string>--foreground</string>
      <string>--config-dir</string>
      <string>/usr/local/var/transmission/</string>
      <string>--log-info</string>
      <string>--logfile</string>
      <string>/usr/local/var/transmission/transmission-daemon.log</string>
    </array>
    <key>KeepAlive</key>
    <dict>
      <key>NetworkState</key>
      <true/>
    </dict>
    <key>RunAtLoad</key>
    <true/>
+    <key>EnvironmentVariables</key>
+    <dict>
+      <key>ALL_PROXY</key>
+      <string>socks5://127.0.0.1:1080</string>
+    </dict>
  </dict>
</plist>

修改完成之后执行:

brew services reload transmission-cli
brew services restart transmission-cli

Linux

目前主流的 Linux 发行版都使用 systemd 作为 init 程序,使用 systemctl 管理服务。我们可以修改 /etc/systemd/system/transmission-daemon.service 文件,来添加启动 Transmission 时的环境变量,示例如下:

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target

[Service]
User=debian-transmission
+ Environment=ALL_PROXY=socks5://127.0.0.1:1080
Type=notify
ExecStart=/usr/bin/transmission-daemon -f --log-error
ExecReload=/bin/kill -s HUP $MAINPID
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

修改完成之后执行:

sudo systemctl reload transmission-daemon.service
sudo systemctl restart transmission-daemon.service

Windows

没研究过,不知道咋整。反正 μTorrent 在 Windows 上凑合还能用。

相关文章

  • 如何给 Transmission 配置代理

    本文链接:个人站 | 简书 | CSDN Transmission 是一个简洁易用的开源 BT 客户端。在 1.4...

  • openwrt transmission配置

    我的思路是路由器挂在一块额外的大硬盘作为局域网下的共享硬盘,让后把文件下载到共享硬盘里面。 1.找到要挂载的硬盘 ...

  • ubuntu Transmission配置

    安装 sudo apt-get install software-properties-common -ysudo...

  • vue-cli 3.0项目配置代理与路径匹配问题

    vue-cli 3.0 代理配置 关于vue-cli 3.0如何配置代理,参考: https://www.cnbl...

  • Vue 2.0配置代理

    1.配置代理的文件位置 config.js/index.js 2.如何配置代理 proxyTable: { ...

  • Transmission 下载 BT 资源

    配置transmission 我们当前使用的是 transmission ,该程序和绝大多数的Linux程序类似,...

  • nginx反向代理

    什么是反向代理 如何实现反向代理 准备工作以及安装nginx 配置nginx nginx的初始配置文件去掉注释后的...

  • Github 代理

    我从未意识到Github的使用,还需要手动配置代理。这次的失败,让我又学习了如何配置github代理。 githu...

  • 记一次菜刀后门检查

    1、打开burp配置sock代理,配置sock代理127.0.0.1 80802、打开Proxifier,配置代理...

  • Nginx反向代理-负载均衡配置

    一、IP地址反向代理-负载均衡配置 注:为了安全性,部分IP用*号做了代替 二、域名反向代理-负载均衡配置 最后给...

网友评论

      本文标题:如何给 Transmission 配置代理

      本文链接:https://www.haomeiwen.com/subject/ecycnhtx.html