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. 退出安装;
请输入对应的数字: