前言

Transmission是一种BitTorrent客户端,特点是一个跨平台的后端和其上的简洁的用户界面。Transmission以MIT许可证和GNU通用公共许可证双许可证授权,因此是一款自由软件。本文主要介绍如何在centos7上安装Transmission以及安装中文界面。

安装

针对安装来说,有两种选择,一种是第三方的yum源,一种当然就是编译安装了,我这里都介绍一下,看自己喜好吧。

一、yum安装,这个源是官方认可的,所以请不用担心

1、首先, 需要在系统上启用 EPEL repository

1
2
yum install epel-release
yum -y update

2、开始安装 transmission

1
yum install transmission-daemon

3、完成之后, 检查一下是否已安装成功

1
2
systemctl start transmission-daemon.service
systemctl stop transmission-daemon.service

4、修改配置文件

修改配置文件 vi /var/lib/transmission/.config/transmission-daemon/settings.json
主要有以下地方

1
2
3
4
5
6
7
8
9
{
"rpc-authentication-required": true,
"rpc-enabled": true,
"rpc-port": 9091,
"rpc-password": "admin",
"rpc-username": "adminadmin",
"rpc-whitelist-enabled": false,
"rpc-whitelist": "0.0.0.0”
}

如果仅允许指定 IP 才能访问,则需要修改下面的项(ip支持*作为通配符):
rpc-whitelist: 127.0.0.1,192.168.1.*,
rpc-whitelist-enabled: true,
如果允许任意 IP 都可以访问,则需要修改:
rpc-whitelist-enabled: false,
rpc-whitelist: 0.0.0.0,
如果需要设定访问用户和密码,则需要修改:
rpc-authentication-required: true,
rpc-password : adminadmin,
rpc-username : admin,
需要注意的是 password 设置成了明文。当启动 daemon 之后,daemon 会自动检测密码设置。如果发现密码配置被修改了,daemon 会自动计算修改后的密码的HASH值,并用这个HASH值替换掉配置文件中的明文密码,这样会更安全。

5、全部配置的汉化说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#计划限速下载最大值,KB/s
"alt-speed-down": 50,
#是否启用计划限速,默认关闭
"alt-speed-enabled": false,
#计划限速开始时间,计算方法见下方结束时间处
"alt-speed-time-begin": 540,
#计划限速结束时间
"alt-speed-time-day": 127,
#计划限速日期(星期几),127表示每天,是用7位二进制数表示,然后转换成十进制数填入.
#例如0000001表示周日,1000000表示周六,0000010表示周一,0000100表示周二.
#如果你只要在周六周日限速,该数应该为1000001,转换为十进制就是65;
#如果你只要在工作日(周一至周五)限速,该数应该为0111110,转换为十进制就是62
#启用计划限速日期,默认不开启,如果开启,那么alt-speed-enabled一定要是false,两者之间只能启用一项,如果同时设置为true,则alt-speed-enabled有效
"alt-speed-time-enabled": false,
#计划限速结束时间,从0点到开始时间的分钟数,例如8:00就是8*60=480.该时间用的是GMT,即北京时间-8小时,例如计划北京时间8:30分开始,这个数字就应该是(8-8+24)*60+30=1470
"alt-speed-time-end": 1020,
#计划限速值,单位KB/s
"alt-speed-up": 50,
#IPv4地址绑定
"bind-address-ipv4": "0.0.0.0",
#IPv6地址绑定
"bind-address-ipv6": "::",
#启用黑名单
"blocklist-enabled": false,
#黑名单地址
"blocklist-url": "http://www.example.com/blocklist",
#缓存大小,单位MB,建议设置内存大小的1/6~1/4,这玩意基本上速度一快就吃满分配的内存,但是会减少对硬盘的损耗,如果是家用机器建议拉大,租用的服务器和盒子的话看着办吧,如果速度很快调大这个能使得速度更稳定
"cache-size-mb": 4,
#启用DHT网络(通过tracker寻找节点),默认启用,PT需要禁用,但是一般PT种子默认禁用
"dht-enabled": true,
#下载完成的保存路径
"download-dir": "/home/transmission/Downloads",
#开启下载队列,其实就是最大可同时下载数
"download-queue-enabled": true,
#下载队列数设置,默认5,表示同时最多只能下载5个任务,多余的需要等待
"download-queue-size": 5,
#等于0时不加密,1是优先加密,2是必须加密,如果BT下载的话不加密容易被迅雷吸血,但是加密了可能没那么多Peer,所以看你自己资源了
"encryption": 1,
#空闲做种限时,默认30,即空闲30分钟后停止做种
"idle-seeding-limit": 30,
#是否启用空闲做种限时
"idle-seeding-limit-enabled": false,
#未完成目录,下载未完成时文件保存位置
"incomplete-dir": "/home/transmission/unDownloads",
#启用未完成目录
"incomplete-dir-enabled": false,
#关闭LDP(本地节点发现),PT需要关闭
"lpd-enabled": false,
#日志消息等级
"message-level": 2,
#拥堵算法
"peer-congestion-algorithm": "",
"peer-id-ttl-hours": 6,
#全局种子最大连接数,这个看你下载队列和下面那个参数决定,反正大了速度快,但是更吃资源,如果是VPS建议不要太大,容易被当做滥用
"peer-limit-global": 200,
#每个种子最多连接数
"peer-limit-per-torrent": 50,
#传入端口号
"peer-port": 51413,
#传入端口号随机值范围上限
"peer-port-random-high": 65535,
#传入端口号随机值范围下限
"peer-port-random-low": 49152,
#启用随机端口,默认是关闭的,如果改成true,则启动transmission时会在传入端口号范围上限和下限随机选择一个端口
"peer-port-random-on-start": false,
#设置传输TCP数据包的服务类型https://en.wikipedia.org/wiki/Type_of_service
"peer-socket-tos": "default",
#节点交换,参考https://en.wikipedia.org/wiki/Peer_exchange ,PT请务必关闭,不然你肯定会被封号
"pex-enabled": true,
#启用端口转发(uPnP),如果路由支持并且也开启了uPnP,则路由会自动做端口映射
"port-forwarding-enabled": true,
#预分配文件磁盘空间,0=关闭,1=快速,2=完全,默认取1,防止文件下载了一半后才发现磁盘空间不够,取2时耗时较多,但是可以减少磁盘碎片
"preallocation": 1,
#启用预取缓存
"prefetch-enabled": true,
#启用队列暂停
"queue-stalled-enabled": true,
#队列暂停分钟
"queue-stalled-minutes": 30,
#分享率限制,即上传下载比例达到多少停止做种
"ratio-limit": 2,
#启用分享率限制
"ratio-limit-enabled": false,
#重命名未完成文件,在未完成的文件名后添加后缀,默认true,未完成目录中的文件会带上.part后缀
"rename-partial-files": true,
#RPC远程控制验证,默认关闭
"rpc-authentication-required": false,
#远程控制地址绑定,默认表示任何地址都能访问
"rpc-bind-address": "0.0.0.0",
#启用远程连接,默认启用
"rpc-enabled": true,
#默认密码这里是加密的,直接以明文修改,启动后会自动加密
"rpc-password": "{e013e79faa7d1d0f616bed0ccbaa24b51a33e727bE7LzgYv",
#Web控制台的端口号
"rpc-port": 9091,
#这个地址会自动跳转
"rpc-url": "/transmission/",
#远程访问的用户名称
"rpc-username": "senra",
#允许远程连接的IP地址白名单,支持通配符,多个IP以逗号分隔,默认只允许本地
"rpc-whitelist": "127.0.0.1",
#启用IP认证模式,如果启用,那么只能在白名单的地址才能连接
"rpc-whitelist-enabled": false,
#忽略暂停的种子
"scrape-paused-torrents-enabled": true,
#在torrent完成时运行脚本,默认关闭,这功能可以实现下载完成自动回调啥的
"script-torrent-done-enabled": false,
#脚本路径
"script-torrent-done-filename": "",
#启用做种队列
"seed-queue-enabled": false,
#做种队列大小
"seed-queue-size": 10,
#下载速度限制,单位KB/s
"speed-limit-down": 100,
#启用下载速度限制.默认关闭
"speed-limit-down-enabled": false,
#上传速度限制,单位KB/s
"speed-limit-up": 100,
#启用上传速度限制.默认关闭
"speed-limit-up-enabled": false,
#添加种子文件后,自动开始,如果为false,添加种子后不会自动开始
"start-added-torrents": true,
#是否删除监控目录添加的种子文件,也就是说在watch-dir监控的目录下添加种子文件后,任务开始后会自动删除添加的种子文件
"trash-original-torrent-files": false,
#文件权限的掩码,默认18即755权限,如果改成0是最高权限,下载回来的文件权限就是777
"umask": 18,
#每个种子上传连接数
"upload-slots-per-torrent": 14,
#UTP传输是否启用
"utp-enabled": true,
#自动监控种子目录,将种子文件下载或放在此文件夹下,会自动开始下载文件,该配置不在默认配置文件中,需要手动添加
"watch-dir": "/home/transmission/Torrents",
#是否开启自动监控种子目录,该配置不在默认配置文件中,需要手动添加
"watch-dir-enabled": true

####请注意每行配置参数都是以逗号结尾,最后一行参数没有逗号####

6、保存修改后, 需重启服务

1
systemctl restart transmission-daemon.service

7、其它的启动方法:

1
2
service transmission-daemon start
service transmission-daemon stop

二、编译安装

这个方法会比较麻烦一点,推荐使用第一种方法。

1、安装相关依赖

1
2
yum groupinstall -y 'development tools'
yum -y install gcc gcc-c++ m4 make automake libtool gettext openssl-devel wget perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker psmisc

2、编译libevent

1
2
3
4
5
6
7
cd /usr/local/src
wget https://down.whsir.com/downloads/libevent-2.1.8-stable.tar.gz
tar zxf libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
./configure --prefix=/usr
make && make install
cd ..

3、编译expat

1
2
3
4
5
6
wget https://down.whsir.com/downloads/expat-2.2.5.tar.bz2
tar xf expat-2.2.5.tar.bz2
cd expat-2.2.5
./configure --prefix=/usr
make && make install
cd ..

4、编译XML-Parser

1
2
3
4
5
6
wget https://down.whsir.com/downloads/XML-Parser-2.44.tar.gz
tar zxf XML-Parser-2.44.tar.gz
cd XML-Parser-2.44
perl Makefile.PL
make && make install
cd ..

5、编译intltool

1
2
3
4
5
6
wget https://down.whsir.com/downloads/intltool-0.51.0.tar.gz
tar zxf intltool-0.51.0.tar.gz
cd intltool-0.51.0
./configure --prefix=/usr
make && make install
cd ..

6、编译libcurl

1
2
3
4
5
6
wget https://curl.haxx.se/download/curl-7.60.0.tar.gz
tar zxf curl-7.60.0.tar.gz
cd curl-7.60.0
./configure --prefix=/usr
make && make install
cd ..

7、编译zlib

1
2
3
4
5
6
7
8
9
wget https://down.whsir.com/downloads/zlib-1.2.11.tar.gz
tar zxf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr
make && make install

echo "export PKG_CONFIG_PATH=/usr/lib/pkgconfig" >> ~/.bashrc
source ~/.bashrc
cd ..

8、最后下载编译transmission

1
2
3
4
5
wget https://down.whsir.com/downloads/transmission-2.94.tar.xz
tar xf transmission-2.94.tar.xz
cd transmission-2.94
./configure
make && make install

https://wwu.lanzoui.com/ic1oYx0kkgj
密码:gu9t

9、初始化transmission配置文件,-g是指定transmission配置文件路径

1
transmission-daemon -g /usr/local/transmission

10、停止transmission(想要修改transmission配置,一定要先停止)

1
killall transmission-daemon

11、修改transmission配置文件

1
2
3
4
5
6
7
8
9
10
11
12
vi /usr/local/transmission/settings.json


"download-dir": "/sdb/bt/Downloads", 下载完成的保存路径
"incomplete-dir": "/sdb/bt/tmp", 未下载完成的保存路径
"incomplete-dir-enabled": true, 启用未下载完成的保存路径
"rpc-authentication-required": true, 远程控制验证,默认关闭
"rpc-password": "whsir", 默认密码这里是加密的,启动后会自动加密
"rpc-port": 9091, 网页GUI的端口号,可自行修改
"rpc-username": "whsir", 远程电脑登录网页GUI的用户名称
"rpc-whitelist": "127.0.0.1", 允许远程连接的IP地址白名单,支持通配符,多个IP以逗号分隔
"rpc-whitelist-enabled": false, 启用IP认证模式,如果启用,那么只能在白名单的地址才能连接

12、修改后使用新配置运行

1
transmission-daemon -g /usr/local/transmission

使用 transmission 服务

transmission BitTorrent 客户端默认端口是 9091, 你可以在浏览器打开 http://IP地址:9091/ 打开 UI 界面, 然后用上面配的账号和密码登录. 更多的配置参数例如文件保存地址, 下载速度, 上传速度都可以在界面上配置. 更详细的使用说明推荐访问官方文档。

最后进行汉化

此汉化包来自于“栽培者”,github地址:https://github.com/ronggang/transmission-web-control,在此感谢作者的汉化。
本地下载地址:https://down.whsir.com/downloads/transmission-zh-CN-web-1.6.tar.gz
下载后将web文件夹内容覆盖原有Transmission web文件内容/usr/local/share/transmission/web
浏览器再次打开就会发现全中文了,右上角可以随时切换回原版UI。

注意

如果打开浏览器访问不了,请去看看服务是否启动了以及是否防火墙阻止了9091这个端口。

1、开放和关闭端口

1
2
3
4
5
6
7
firewall-cmd --zone=public --add-port=9091/tcp --permanent     # 开放端口
firewall-cmd --zone=public --remove-port=9091/tcp --permanent # 关闭端口
firewall-cmd --reload # 重新载入配置,让开放或关闭的端口配置生效

--zone=public:表示作用域为公共

--permanent:表示永久生效

2、查看端口开放情况

1
2
firewall-cmd --zone=public --list-ports            # 查询端口开放列表
firewall-cmd --zone=public --query-port=9091 # 查询具体端口是否开放

3、开启和关闭防火墙

1
2
3
4
5
6
systemctl start firewalld      # 启动防火墙
systemctl status firewalld # 查看防火墙状态
systemctl stop firewalld # 关闭防火墙

systemctl disable firewalld # 开启不启动防火墙
systemctl enable firewalld # 开机启动防火墙

4、其他

1
2
3
firewall-cmd --version    # 查看版本
firewall-cmd --help # 查看帮助
firewall-cmd --state # 查看运行状态

参考文档

1
2
3
4
yum安装
http://www.senra.me/awesome-downloader-series-transmission-classical-bt-pt-tool/?utm_source=tuicool&utm_medium=referral
编译安装
https://blog.whsir.com/post-2881.html