在后台压了一大堆草稿的情况下,果断发博,不是因为闲下来了—-而是Linux结课了,要交个期末作业。于是果断扯一篇交上吧 -0-
Linux下面比较用的普遍的BT客户端,大致有一下这么几个:
Transmission(Ubuntu 默认BT客户端),
Ktorrent(KDE默认BT客户端),
BitTorrent(听起来最“官方”的BT客户端),
rtorrent(纯命令行的BT客户端),
Deluge(基于libtorrent的客户端),
Qbittorrent,
MLDonkey(一个比较全的P2P解决方案),
Vuze(官方标榜为世界上最强大的BT客户端)。哦,其实很多人喜欢wine
utorrent,而且效果不错~。
因为某人某些黑暗的不为人知的邪恶目的,所以想找一个远程BT解决方案—即可以直接用浏览器控制远程服务器上的BT服务。
因为自己在教育网,可以IPV6,想从六维和北邮人BT拖东西(顺便挂积分,哎呀我太WS了-0-)。所以第一个条件就是需要支持IPV6。。本来http://www.sixxs.net/是有一个各个BT客户端IPV6支持情况列表的,不知道为什么被移除了。比较可惜。||注:可以通过历史记录看到:20080331的存档,不过信息都比较过时了。
加上要有远端界面,最后剩下就只有Deluge,rtorrent和Transmission了。因为对BitTorrent有莫明的恐惧感,所以直接PASS了,有兴趣的同学也可以试试 – -
rtorrent+rutorrent
因为rtorrent本身就是命令行的,远端界面较多而且似乎较成熟,所以首先尝试的是rtorrent。
最先开始是尝试了下rtorrent的远程界面,而没有考虑ipv6支持的问题。
因为rtorrent已经在Ubuntu源里面,可以直接安装
sudo apt-get install rtorrent
远端界面采用了rutorrent–一个模仿utorrent的Web UI。粗略看了一下,差不多rtorrent的所有远程Web UI都需要需要借助Web服务器的SCGI模块运行(也就是说你必须现在服务器上安装一个支持PHP的Web服务器,并加载scgi模块)。具体配置可以看rutorrent的官方Wiki配置。
因为之前一直控Nginx,而scgi支持似乎Nginx不能,(新版nginx 0.8.42已经添加了ngx_http_scgi_module 模块。) ,还为它特意装上Apache,倒腾大半天终于搞定了。
让rtorrent在screen里面运行,然后用浏览器访问就可以了。
~$:screen
~$:rtorrent
这里有个提示就是,rutorrent似乎自己并不支持认证的问题——任何人都可以直接访问到界面——不过可以通过修改配置文件来限制权限。所以只能在Web服务器上解决用户验证的问题了。
搞定远程以后就想换上个支持IPV6的试试看。
这里可以找到一些打上IPV6 支持补丁包的debshttps://launchpad.net/~berni/+archive/ipv6。下载rtorrent和libtorrent下来。
然后dpkg -i安装即可。这里有个小的提示是,如果你下的对应高版本Ubuntu的Deb包不能满足依赖关系,下个对低版本的就行了。简单点说,如果你是9.04不能用9.10的包,那么8.10的包应该是可以使用的,因为依赖关系一般都是要求某某包高于某版本 -0-。
但是问题来了…………装上这个版本以后直接启动不能,提示
rtorrent: Error in option file: ~/.rtorrent.rc:109: Could not prepare socket for listening: Invalid argument
本来我以为自己设置错了,结果回到官方的Trac中关于ipv6支持补丁的讨论,发现还真就是这个Patch导致了对xmlrpc支持的丢失。两天前的回复提示:
Use socket instead of host:port. It works for me, at least.
不过还米有尝试。
因为Deluge也是基于libtorrent的,所以我也就放弃了对Deluge的尝试了。
Transmission
本来之前一直不了解Transmission的远程界面的,但是搜了搜发现这个家伙还原生支持远程界面,于是抱着试试看的态度,各种翻Transmission的文档。Transmission的文档给我的感觉是比较全,但是米有啥条理,等我差不多每个文档都翻了一遍,才发现他的远程界面支持如此简单。——基本不用啥设置。
因为ubuntu源里面的Transmission还是旧版本的(1.5似乎是),于是从Transmission官网下载最新稳定版的源码,自己编译:
首先解决依赖问题:
sudo apt-get install build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libgtk2.0-dev libnotify-dev libglib2.0-dev libevent-dev
然后
wget http://mirrors.m0k.org/transmission/files/transmission-1.93.tar.bz2
tar xvjf transmission-1.93.tar.bz2
cd transmission-1.93
./configure
make
sudo make install
configure基本上没有啥需要调整的东东,直接make再安装就行了。
官方的建议是运行在一个无密码的用户下,但是我懒。
直接运行transmission-daemon就行了。
本机的话就可以通过浏览器访问 http://127.0.0.1:9091来访问到它的Web 界面了。
如果是远程机器,还需要编辑当前用户主目录下的~/.config/transmission-daemon/settings.json
把自己IP加到IP白名单里面去。
可以看到Transmission的Web UI是典型的苹果风格,挺好看的(个人比rutorrent的好看 -0-)。

但是Transmission的Web UI相较rutorrent的就简单很多,没有那么丰富的功能和设置选项,但是基本的下载是完全没有问题的。
如果需要高级设置可以自己编辑settings.json文件。有个比较遗憾的地方是,每次下载不能选择下载目录,需要先改变下载目录(左下角-Preferences-Download To),而且似乎不是很稳定,我大概每两天就需要重启一下Transmission-daemon,否则就不能远程Web UI 登陆。
对于ipv6的问题,不知道是六维自己的问题还是Transmission的问题,Transmission不支持六维下载,需要更改源文件再编译,不过我改了还是有点问题,这个还需要再试一下嗯嗯。
命令行制作种子-mktorrent
前面把客户端装好了,还有个问题:就是不管是rtorrent还是Transmission,都没有提供命令行制作种子的功能,这里需要用到另外一个命令行软件:mktorrent。
最新版是1.0
wget http://downloads.sourceforge.net/mktorrent/mktorrent-1.0.tar.gz
tar -zxvf mktorrent-1.0.tar.gz
sudo make USE_PTHREADS=1 USE_OPENSSL=1 USE_LONG_OPTIONS=1 USE_LARGE_FILES=1 PREFIX=/usr install
需要提醒的是必须加上 USE_LARGE_FILES=1参数编译否则不能制作大于4G的种子。制作大种子的时候需要调整下分块大小,不然生成的torrent文件太大不适合论坛上传