Transmission是一款Linux平台常用的BitTorrent客户端,硬件资源占用极少。Transmission以MIT许可证和GNU通用公共许可证双许可证授权,因此是一款自由软件。本文详细介绍如何在Ubuntu 18.04上安装最新版本的Transmission以及如何使用nginx对Transmission的控制面板进行反代。
添加最新版ppa源并安装
sudo apt-get update && apt-get install software-properties-common -y sudo add-apt-repository ppa:transmissionbt/ppa sudo apt-get update && sudo apt-get install transmission-daemon -y
安装成后系统会多出如下一些命令行工具:
- transmission-cli: 独立的命令行客户端。
- transmission-create: 用来建立.torrent种子文件的命令行工具。
- transmission-daemon: 后台守护程序。
- transmission-edit: 用来修改.torrent种子文件的announce URL。
- transmission-remote: 控制daemon的程序。
- transmission-show:查看.torrent文件的信息。
使用如下命令开启或停止Transmission
sudo service transmission-daemon start # 启动Transmission sudo service transmission-daemon stop # 停止Transmission
配置Transmission
创建Transmission工作目录
通过以下命令创建Transmission工作目录,其中download为数据存储目录,temp为临时文件目录。未下载完成的文件保存在temp目录,下载完成后保存到download目录。
sudo mkdir /home/transmission && cd /home/transmission sudo mkdir download && mkdir temp sudo chmod -R 777 /home/transmission #更改读写权限
修改Transmission配置文件
在编辑Transmission配置文件的时候,需要先关闭daemon进程,否则编辑的参数将会被覆盖到原来的状态:
sudo service transmission-daemon stop
复制以下内容到终端并执行,以修改Transmission配置文件:
sudo cat > /etc/transmission-daemon/settings.json << EOF { "alt-speed-down": 50, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": false, "blocklist-url": "http://www.example.com/blocklist", "cache-size-mb": 4, "dht-enabled": false, "download-dir": "/home/transmission/download", "download-limit": 100, "download-limit-enabled": 0, "download-queue-enabled": false, "download-queue-size": 5, "encryption": 2, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "/home/transmission/temp", "incomplete-dir-enabled": true, "lpd-enabled": true, "max-peers-global": 10000, "message-level": 1, "peer-congestion-algorithm": "", "peer-id-ttl-hours": 6, "peer-limit-global": 10000, "peer-limit-per-torrent": 200, "peer-port": 51415, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "default", "pex-enabled": true, "port-forwarding-enabled": true, "preallocation": 1, "prefetch-enabled": true, "queue-stalled-enabled": false, "queue-stalled-minutes": 30, "ratio-limit": 30, "ratio-limit-enabled": true, "rename-partial-files": true, "rpc-authentication-required": true, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-host-whitelist": "", "rpc-host-whitelist-enabled": false, "rpc-password": "hanada.info", "rpc-port": 8421, "rpc-url": "/transmission/", "rpc-username": "transmission", "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": false, "scrape-paused-torrents-enabled": true, "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 100, "speed-limit-down-enabled": false, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": false, "umask": 18, "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14, "utp-enabled": true } EOF
启动Transmission
sudo service transmission-daemon start # 启动Transmission
访问IP地址:8421/transmission/web/即可打开管理面板,使用前面配置文件中设置的用户名和密码登录即可。本例中设置的用户名:transmission ,密码:hanada.info ,可自行修改为自己想用的用户名(rpc-username)、密码(rpc-password)以及端口号(rpc-port)等信息。注意需要先关闭daemon进程,否则编辑的参数将会被还原,另外密码配置信息在生效后会自动被哈希,所以运行后重写打开配置文件会发现密码已经被哈希,如果要修改的话也是直接删掉哈希后的密码填入即可,下次启动你填入的密码也会被哈希并生效。
本例中相关的配置如下:
用户名:transmission
密码:hanada.info
端口:8421(由于需要使用nginx反向代理,因此这里不建议使用80、443等端口)
临时文件路径:/home/transmission/temp
下载文件路径:/home/transmission/download
配置文件中还有许多配置项就不一一介绍了,感兴趣的可以去查找一下资料。
使用nginx反向代理管理面板
创建nginx虚拟机
使用前先确保你以安装nginx,以下提供简要安装命令,若已安装则可跳过。为了安全考虑,nginx反向代理将使用https,SSL证书申请相关问题请自行查阅相关资料或者看本站关于免费申请SSL证书的文字。
sudo add-apt-repository ppa:ondrej/nginx-mainline -y sudo apt-get update && apt-get install nginx -y
创建nginx虚拟机配置
sudo vim /etc/nginx/sites-available/transmission
复制以下内容到虚拟机配置文件,注意修改server_name为自己使用的域名,保存并退出。
server { listen *:443 ssl http2; #ipv4监听 https listen [::]:443 ssl http2; #ipv6监听 https ssl_certificate /etc/nginx/certs/hanada.info/fullchain; # SSL证书路径 ssl_certificate_key /etc/nginx/certs/hanada.info/key; # SSL私钥路径 server_name ****.hanada.info; # 域名 client_header_buffer_size 8k; client_max_body_size 68m; ssl_session_tickets off; ssl_stapling on; ssl_stapling_verify on; ssl_session_cache shared:le_nginx_SSL:1m; ssl_session_timeout 1440m; ssl_protocols TLSv1.3 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256; #ssl_ecdh_curve secp384r1; #add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"; # HSTS,如有需要可以去掉注释,includeSubdomains为包含子域名,可以根据需要决定是否保留。 location ^~ /transmission { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_pass_header X-Transmission-Session-Id; add_header Front-End-Https on; location /transmission/rpc { proxy_pass http://127.0.0.1:8421; } location /transmission/web/ { proxy_pass http://127.0.0.1:8421; } location /transmission/upload { proxy_pass http://127.0.0.1:8421; } location /transmission/web/style/ { alias /usr/share/transmission/web/style/; } location /transmission/web/javascript/ { alias /usr/share/transmission/web/javascript/; } location /transmission/web/images/ { alias /usr/share/transmission/web/images/; } location /transmission/ { return 301 https://$server_name/transmission/web; } } }
启用nginx虚拟机
sudo ln -s /etc/nginx/sites-available/transmission /etc/nginx/sites-enabled/transmission sudo service nginx reload #重载nginx使虚拟机生效
浏览器访问 https://****.hanada.info 即可进入Transmission管理面板。
建议同时添加一下http->https的重定向,删掉sites-available内的default文件并且再另外新增一个配置文件用于重定向即可,写法如下。
server { listen 80; listen [::]:80; server_name ****.hanada.info; location / { return 301 https://****.hanada.info$request_uri; } }
美化Transmission管理面板
Transmission自带的管理面板比较简单,推荐一个美化版的管理面板,项目地址:https://github.com/ronggang/transmission-web-control
下载面板安装脚本
使用如下命令下载管理面板的安装脚本:
wget https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control-cn.sh
安装面板
chmod +x install-tr-control-cn.sh && bash install-tr-control-cn.sh
如果脚本执行成功,将出现以下界面。按照提示,输入相应的数字,按回车即可。这里选择1,安装管理面板。安装完成后刷新 example.com 即可看到效果。
欢迎使用 Transmission Web Control 中文安装脚本。 官方帮助文档:https://github.com/ronggang/transmission-web-control/wiki 安装脚本版本:1.2.2-beta 1. 安装最新的发布版本(release); 2. 安装指定版本,可用于降级; 3. 恢复到官方UI; 4. 重新下载安装脚本(install-tr-control-cn.sh); 5. 检测 Transmission 是否已启动; 6. 指定安装目录; 9. 安装最新代码库中的内容(master); =================== 0. 退出安装; 请输入对应的数字: