1. Transmission介绍
Transmission是一个强大的BitTorrent开源客户端,实现了BT协议中描述的大多数功能。目前,在它的官方网站上提供了多个版本可以下载,包括:Mac、GTK+、QT版本,还有Daemon版本。
Transmission支持DHT、Magnet Link、uTP以及PEX等特性。尤其是支持Magnet Link磁力链接下载十分重要,因为目前网上很多资源都是采用这种方式来分享的,而不是传统的.torrent文件,例如TPB、BTDigg。
在Ubuntu的发行版中,Transmission软件包下面包含多个套件,这些套件的名字很容易搞混淆,它们分别是:
- transmission-gtk: GTK+界面的Transmission BT客户端。
- transmission-qt: QT界面的Transmission BT客户端。
- transmission-cli: 命令行界面的Transmission BT客户端,与QT、GTK+版本功能一样,是命令行下一个完备的BT客户端。
- transmission-daemon: 是一个Transmission的后台守护程序,本身不具备操作指令,只能通过Web客户端或者transmission-remote-cli来进行控制。这个程序特别适合安装在服务器上或者嵌入式系统中,以及一些没有显示器的设备上。
- transmission-remote-cli: 用来控制transmission-daemon的命令套件,本身不具备下载BT的功能,只能够配合daemon使用。
这些套件不必都安装上,根据我的需求,只需要安装transmission-daemon即可。接下来讲详细介绍daemon的安装和配置。
2. Transmission的安装
在Ubuntu中,打开终端,输入以下命令安装:
1 | sudo apt-get install transmission-daemon |
安装过程中会顺带把transmission-cli也安装上,安装完毕后系统会多出如下一些命令行工具
- transmission-cli: 独立的命令行客户端。
- transmission-create: 用来建立.torrent种子文件的命令行工具。
- transmission-daemon: 后台守护程序。
- transmission-edit: 用来修改.torrent种子文件的announce URL。
- transmission-remote: 控制daemon的程序。
- transmission-show:查看.torrent文件的信息。
安装好后,Transmission-daemon有一些默认设置(参考链接)。
默认配置目录清单
Item | Loccation |
---|---|
启动初始化脚本 | /etc/init.d/transmission-daemon |
基本配置文件 | /etc/default/transmission-daemon |
详细配置文件目录 | /var/lib/transmsision-daemon/info |
下载存储目录 | /var/lib/transmission-daemon/downloads |
配置文件目录里面包含如下一些文件:
- settings.json: 主要的配置文件,设置daemon的各项参数,包括RPC的用户名密码配置。它实际上是一个符号链接,指向的原始文件是/etc/transmission-daemon/settings.json。里面的参数解释可以参考官网的配置说明。
- torrents/: 用户存放.torrent种子文件的目录,凡是添加到下载任务的种子,都存放在这里。.torrent的命名包含,种子文件本身的名字和种子的SHA1 HASH值。
- resume/: 该存放了.resume文件,.resume文件包含了一个种子的信息,例如该文件哪些部分被下载了,下载的数据存储的位置等等。
- blocklists/: 存储被屏蔽的peer的地址。
- dht.dat: 存储DHT节点信息。
1 2 3 | sudo service transmission-daemon start # 启动 sudo service transmission-daemon stop# 停止 |
3. Transmission的配置
配置主要是通过修改/var/lib/transmission-daemon/info/settings.json文件中的参数来实现的。
注意:在编辑Transmission的配置文件的时候,需要先关闭daemon进程,否则编辑的参数将会被恢复到原来的状态。
配置RPC
最关键的就是要配置RPC,因为无论是Web界面还是CLI都是通过RPC协议和daemon来进行交互的。在settings.json中与RPC相关的参数有以下几个:
1 2 3 4 5 6 7 8 9 | rpc-authentication-required: Boolean (default = false) rpc-bind-address: String (default = “0.0.0.0”) Where to listen for RPC connections rpc-enabled: Boolean (default = true) rpc-password: String rpc-port: Number (default = 9091) rpc-url: String (default = /transmission/. Added in v2.2) rpc-username: String rpc-whitelist: String (Comma-delimited list of IP addresses. Wildcards allowed using ‘‘. Example: “127.0.0.,192.168..“, Default: “127.0.0.1” ) rpc-whitelist-enabled: Boolean (default = true) |
1 2 3 | sudo service transmission-daemon stop vim /var/lib/transmission-daemon/info/settings.json |
1 2 3 4 5 6 7 8 9 10 11 12 13 | { ...... "rpc-authentication-required": true "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-password": "123456", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "transmission", "rpc-whitelist": "*", "rpc-whitelist-enabled": true, ...... } |
按下ESC并输入:wq回车
我将用户名设置为了transmission,密码设置为了123456,whitelist设置成了”*”,表示任何IP都可以通过RPC协议访问这个daemon。需要注意的是password设置成了明文。当启动daemon之后,daemon会自动检测密码设置。如果发现密码配置被修改了,daemon会自动计算修改后的密码的HASH值,并用这个HASH值替换掉配置文件中的明文密码,这样会更安全。
1 | service transmission-daemon start |
配置其它参数
settings.json里面还有很多参数可以配置,包括上传/下载速度的限制、DHT的配置、端口设置等等,详细的参数解释可以参考官网的配置说明,这里不再赘述。
4. 使用Web界面控制Transmission daemon
经过上述配置后,我们就可以通过Web界面来访问和控制Transmission daemon了。在浏览器里面输入以下地址
1 | http://你服务器的IP:9091 |