【转载】Transmission的安装与配置|在服务器上建立自己的SeedBox

网上有大量的BitTorrent资源,很多电影、书籍和音乐的资源非常好,让人很想把它们都收集起来。但是如果开着自己的个人电脑来下载这些资源效率比较低,一是个人电脑不可能7×24小时开着不关机,二是个人电脑的网络环境不稳定,网速一般不够快,如果是笔记本随身携带还会随时更换上网信号。而服务器这种24小时不关机,网速好的条件特别适合用来下载这些BT资源。

因此,我决定在我的Linode服务器上部署一个BitTorrent下载器。目前有很多款Linux下的BitTorrent客户端软件,例如rTorrent、Vuze等等。这些软件种类繁多,其性能和对BT协议的支持也不尽相同,在WikePedia上还有这些软件的比较。根据网上很多博客的分析,和我自己的使用感受,我感觉Transmission是其中较好的一款软件,而且Transmission还是Ubuntu桌面版的默认BT下载软件。因此我选择将Transmission部署到服务器上。

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的安装和配置。

Transmission的安装

在Ubuntu中,打开终端,输入以下命令安装:
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 Location
启动初始化脚本 /etc/init.d/transmission-daemon
基本配置文件 /etc/default/transmission-daemon
详细配置文件目录 /var/lib/transmsission-daemon/info
下载存储目录 /var/lib/transmission-daemon/downloads

启动初始化脚本是系统启动时运行的脚本文件,负责Transmission-daemon的开机自启动,关于初始化脚本的相关知识,可以阅读阮一峰老师的文章

基本配置文件可以设置配置文件目录

配置文件目录里面包含如下一些文件:

  • settings.json: 主要的配置文件,设置daemon的各项参数,包括RPC的用户名密码配置。它实际上是一个符号链接,指向的原始文件是/etc/transmission-daemon/settings.json。里面的参数解释可以参考官方的配置说明
  • torrents/: 用户存放.torrent种子文件的目录,凡是添加到下载任务的种子,都存放在这里。.torrent的命名包含,种子文件本身的名字和种子的SHA1 HASH值。
  • resume/: 该存放了.resume文件,.resume文件包含了一个种子的信息,例如该文件哪些部分被下载了,下载的数据存储的位置等等。
  • blocklists/: 存储被屏蔽的peer的地址。
  • dht.dat: 存储DHT节点信息。

总体来说,上面四个路径是一环套一环,初始化脚本加载基本配置文件基本配置文件设置详细配置文件目录详细配置文件目录里包含主要的配置文件(setting.json),setting.json里设置下载存储目录

默认用户

*本站站长注:本人没有为transmission-daem设置默认账户,一直用的是root

默认创建一个用户来专门运行transmission-daemon,用户名为:debian-transmission

注意:如果使用另外一个用户来运行transmission-daemon的话,会在该用户的目录下,创建一个.config/transmission-daemon的文件夹,在这个文件夹里有单独的settings.json配置文件来配置这个用户对应的daemon进程,下载目录也会变为$HOME/Download

按照默认用户和默认配置目录来正确启动和停止transmission-daemon的方式如下。我也将采用这种方式。

1
2
3
4
# 启动
sudo service transmission-daemon start
# 停止
sudo service transmission-daemon stop

启动成功后,可以看到daemon的进程如下

1
2
$ ps aux | grep 'transmission-daemon'
debian-+ 5509 0.0 0.6 250700 6456 ? Ssl 04:31 0:00 /usr/bin/transmission-daemon -f --config-dir /var/lib/transmission-daemon/info

Transmission的配置

配置主要是通过修改/var/lib/transmission-daemon/info/settings.json文件中的参数来实现的。
注意:在编辑Transmission的配置文件的时候,需要先关闭daemon进程,否则编辑的参数将会被恢复到原来的状态。

配置RPC

最关键的就是要配置RPC,因为无论是Web界面还是CLI都是通过RPC协议和daemon来进行交互的。在settings.json中与RPC相关的参数有以下几个:

  • 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)

打开文件/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,
......
}

daemon。需要注意的是password设置成了明文。当启动daemon之后,daemon会自动检测密码设置。如果发现密码配置被修改了,daemon会自动计算修改后的密码的HASH值,并用这个HASH值替换掉配置文件中的明文密码,这样会更安全。

输入service transmission-daemon start启动程序后,打开settings.json,会看到rpc-password一项被改为了HASH值。

"rpc-password": "{5f4bd5498bddd9aa2ad8f4d475dcebe23e9d8c8bsorspnUE",

站长注:修改密码前,请先停止transmission-daemon,否则密码无法被更改

配置其它参数

settings.json里面还有很多参数可以配置,包括上传/下载速度的限制、DHT的配置、端口设置等等,详细的参数解释可以参考官网的配置说明,这里不再赘述。

站长注:在网上找的一份比较全的中文版配置文件,有能力还是尽量看英文的。

使用Web界面控制Transmission daemon

经过上述配置后,我们就可以通过Web界面来访问和控制Transmission daemon了。在浏览器里面输入以下地址
http://<your.server.ip.addr>:9091/transmission/web/
浏览器提示你输入刚才配置的用户名和密码,就可以成功登陆Web管理界面。界面和桌面版的GUI程序有点像,操作起来很方便。下图是我尝试使用的界面。

比较热们的种子下载速度达到了几兆每秒,可以24小时无人值守地下载,而且不论你在哪里,输入一个URL就可以管理下载了,非常的方便。如果您也想试试,那就快买个服务器来按照本文部署一下吧。推荐使用Linode的服务器,速度还蛮快的。

拓展链接:
transmission-daemon如何屏蔽吸血雷和离线下载服务器

站长注:
本来我是打算自己写一篇教程的,一直拖延到今天(2017-5-31)也没有写成,只是在正文写下了“本文待更新”五个大字。

后来,在后台看到不少小伙伴通过搜索引擎点到这个页面最后悻悻而归,心想绝大部分人应该都会在心里骂我两句以示“敬意”。端午节放假,本打算将当初搜到的教程链接直接贴上来算了,结果原文链接已经失效。

抱着试试看的心态,在网上找到了原博作者的邮箱,经原作者同意后,将全文“誊抄”到这里,这篇教程算是当初我能找到的最好的教程了,希望可以帮到大家。

至于当初为什么选择搭建seedbox,可能和各位玩PT的心态不太一样,我只是想义务分流。有兴趣的同学可以看一看这篇文章
原文题目:Transmission daemon的安装与配置 | 陈亮的个人博客
为表谢意,本文中的Linode链接为带有原博主referral code的链接。

【转载】Transmission的安装与配置|在服务器上建立自己的SeedBox

https://blog.zscself.com/posts/14d0cb6d/

作者

F!redent

发布于

2016-05-26

更新于

2024-01-30

许可协议

CC BY-NC-SA 4.0

评论