Chinaunix

标题: 原创:在linux下安装BT服务器 [打印本页]

作者: eagerlinuxer    时间: 2004-07-29 23:26
标题: 原创:在linux下安装BT服务器
在linux下安装BT服务器
前几天应公司需要,在同事的帮助下(之前本人从没有用过BT,更别说架服务器了),在linux上架了一个BT服务器,运行稳定,现向大家介绍一下,献丑了
1、        BT简介
     BitTorrent是一种新型共享软件方式,优势在于不限制下载带宽和联接线程仍能提供高速下载服务,下载的人越多,下载速度不下降反而更稳定,相比之下FTP仅能提供一定数目内的联接和有限的带宽(下载的人越多,速度越慢) BitTorrent更适合大文件的下载。
2、        下载安装python
     BitTorrent-3.4.2要求python的版本在2.x以上,如果你还用的是python-2.x以下的版本请到  http://www.python.org/ftp/python/2.3.4/Python-2.3.4.tgz 下载python的最新版本,然后:
1) tar –zxvf  python-2.3.4.tgz      
2)cd  python-2.3.4
3)configure –prefix=/usr/local/python-2.3.4
4)make  &&  make install
5)mv /usr/bin/python  /usr/bin/python-1.5
6)ln –s  /usr/local/python-2.3.4/bin/python  /usr/bin/python
OK, 和一般linux下编辑安装软件一样,Python 安装完成了。
4、下载安装BitTorrent
你可以到  http://bitconjurer.org/BitTorrent/download.html  去下载最新的*nux下用的tar 或zip 包,然后进行安装:
1)        tar –zxvf  BitTorrent-3.4.2.tar.gz
2)        cd  BitTorrent-3.4.2   (BitTorrent不用再去编辑,直接就可以用了。)
5、启动BitTorrent的track服务,这个服务用来跟踪、分发所有下载情况
./bttrack.py -–port 6969 --dfile dstate >;>; /home/log/bttrack.log &
建义用普通用户来启动这个服务,这样对安全有好处。这个命令会在当前目录生成一个dstate的文件,并打开6969端口 ,你可以在IE内打入:http://ip:6969/去看服务的相关信息。(当然,现在还没有内容,生成*.torrent发布文件及种子后就会有)。这个命令同时会在/home/log目录下生成一个bttrack.log  的apache日志格式的日志文件,用于今后做日志分析、统计。没有这个目录的话请建一个吧,注意要是这个普通用户可写的:)
6、制作BT的发布文件
为了能让他人下载你的东西 ,你先得做一个以.torrent结尾的BT发布文件:

./btmakemetafile.py  /home/bj3ftp/ftp/Patch/SWDOL/安装盘/  http://IP:6969/announce

“/home/bj3ftp/ftp/Patch/SWDOL/安装盘/” 是你要给他人下载的目录或文件
“http://IP:6969/announce”  是你刚做的track服务器的IP及端口

这个命令完成后,会在/home/bj3ftp/ftp/Patch/SWDOL/下生成一个”安装盘.torrent”的发布文件。把它放到WEB 、论坛 或 FTP等人们从网上能下载到的地方,这样人们就可以通过这个文件去找track服务器及种子下载里实际内容了。
7、        生成第一个种子(seed)
“种子“这个概念曾经使我郁闷过一段时间,BT服务器的track服务并不提供下载服务,提供下载的是他的种子(seed),也就是一个已经下载完成或正在下载的客户端。因为一开始没有这样的种子,所以你得先自己生成一个:
./btdownloadheadless.py --max_allow_in 20 --max_upload_rate 500 --minport 6888 --maxport 6888 /home/bj3ftp/ftp/Patch/SWDOL/安装盘BT下载.torrent --saveas /home/bj3ftp/ftp/Patch/SWDOL/安装盘

--max_allow 20             指这个种子最多可以接受20个连接
--max_upload_rate 500      指这个种子最大的可以接受下载的带宽 500 KB(byte)/s,这样可以控制下载带宽。
--minport 6888  --maxport 6888   最大最小监听端口,这样写就是说种子只监听6888端口,这样方便在防火墙上开端口。
/home/bj3ftp/ftp/Patch/SWDOL/安装盘BT下载.torrent   发布文件的位置
--saveas  /home/bj3ftp/ftp/Patch/SWDOL/安装盘         实际文件的位置

这个命令会在BT服务器本地生成第一个种子,供他人下载。

8、 最后是一个在linux上启动、关闭、显示BT服务的脚本:
#!/bin/bash
case $1 in

start)
  /home/joybaby/BitTorrent-3.4.2/bttrack.py --port 6969 --dfile dstate >;>; /home/log/bttrack.log &
  sleep 1
  /home/joybaby/BitTorrent-3.4.2/btdownloadheadless.py --max_allow_in 20 --max_upload_rate 500 --minport 6888 --maxport 6888 /home/bj3ftp/ftp/Patch/SWDOL/安装盘BT下载.torrent --saveas /home/bj3ftp/ftp/Patch/SWDOL/安装盘 >;&/dev/null  &
   echo "BT started"
;;

stop)
  ps -efw | grep 'bttrack.py' | grep -v grep |  awk '{print $2}' | xargs kill && killall python || \
  echo "BT not stoped,Please kill it by hand"
;;

show)
  ps -efw | grep python | grep -v grep
;;

*)
  echo "Usage:./btseed.sh start|stop|show"
;;
Esac

OK,到此,linux下安装BT服务器完成了,呵呵。
不过,还有一个问题想请教大家,默认BT的track服务会接受所有的*.corrent文件的发布,也就是说你用./btmakemetafile.py   /目录/文件  http://IP:6969/announce 命令就可以使用任何一台你所知IP的BT track服务器来跟踪、发布你生成的.torrent文件,有什么方法可以让tracker服务器只接受指定IP的发布?
作者: llzqq    时间: 2004-07-30 08:01
标题: 原创:在linux下安装BT服务器
不错,正打算装个这样的服务器
作者: platinum    时间: 2004-07-30 08:38
标题: 原创:在linux下安装BT服务器
更正一下,参数不是一个-,而是两个--
作者: eagerlinuxer    时间: 2004-07-30 09:11
标题: 原创:在linux下安装BT服务器
[quote]原帖由 "platinum"]更正一下,参数不是一个-,而是两个--[/quote 发表:

不好意思,少加了一个-,平时打shell参数习惯了,呵呵。现在已经改过来了。谢谢版主。
作者: llzqq    时间: 2004-07-30 09:16
标题: 原创:在linux下安装BT服务器
楼主是在哪个版本的LINUX上安装的
作者: platinum    时间: 2004-07-30 09:16
标题: 原创:在linux下安装BT服务器
如果不开 & ,种子可以运行
打开&,python过会就退出了
查了一些资料,python是不能以守护进程方式运行的
上面的>;&/dev/null &会不会有什么问题?
作者: platinum    时间: 2004-07-30 09:25
标题: 原创:在linux下安装BT服务器
我刚才在AS3里实验通过了,感谢楼主提供详尽的信息:)

有一个问题,做种子时候
>;&/dev/null &
>;/dev/null &
&
三种方法,只有第一个可以,为什么
三种方法,执行完后,用ps -ax查看,只有第一种的STAT是R,然后是S,后面两种都是T,不知何顾
作者: crazygod    时间: 2004-07-30 09:48
标题: 原创:在linux下安装BT服务器
不错啊.不过用azureus 其不是更简单,刚装了一个,正在狂下BT电影呢。
如果有兴趣的可以搜索:
Azureus_2.1.0.0a_linux.GTK.tar
下载,同时要安装JDK或者JRE了,在Azureus目录下的执行程序Azureus中先修改一下JAVA_PROGRAM_DIR和JAVADIR指定到JAVA的安装路径即可。
然后便可以享受JAVA图形界面下的BT下载和发布了。
作者: platinum    时间: 2004-07-30 10:10
标题: 原创:在linux下安装BT服务器
那样太耗费资源了……
作者: haohaoo    时间: 2004-07-30 10:25
标题: 原创:在linux下安装BT服务器
原帖由 "crazygod" 发表:
不错啊.不过用azureus 其不是更简单,刚装了一个,正在狂下BT电影呢。
如果有兴趣的可以搜索:
Azureus_2.1.0.0a_linux.GTK.tar
下载,同时要安装JDK或者JRE了,在Azureus目录下的执行程序Azu..........

你说的这个好象是BT客户端哦。
楼住说的是BT服务器端。
作者: eagerlinuxer    时间: 2004-07-30 10:27
标题: 原创:在linux下安装BT服务器
原帖由 "platinum" 发表:
我刚才在AS3里实验通过了,感谢楼主提供详尽的信息:)

有一个问题,做种子时候
>;&/dev/null &
>;/dev/null &
&
三种方法,只有第一个可以,为什么
三种方法,执行完后,用ps -ax查看,只有第一种的STA..........


一开始,我也是用的后两种方法,但一在后台运行就stop掉了,&>;是指把正常输出和错误输出都重定向/dev/null/ ,但为什么这样就能在后台运行,而前两种方法都不行,我也没有搞明白,还请高手多多指点。
顺便说一下,这个我是在RH7.3和RH9上都测试通过了。
作者: redeyes    时间: 2004-07-30 10:30
标题: 原创:在linux下安装BT服务器
呵呵。。顶6……
作者: eagerlinuxer    时间: 2004-07-30 10:58
标题: 原创:在linux下安装BT服务器
原帖由 "tianci3982730" 发表:
6)ln –s /usr/bin/python /usr/local/python-2.3.4/bin/python

感觉弄错了吧?
是不是
6)ln –s /usr/local/python-2.3.4/bin/python /usr/bin/python

不好意思,写反了,更正、更正。平时总是在目标目录下用:
ln –s /usr/local/python-2.3.4/bin/python
所以不知哪边是哪边了,呵呵,不好意思。
作者: eagerlinuxer    时间: 2004-07-30 11:15
标题: 原创:在linux下安装BT服务器
刚才试了一下,
nohup ./btdownloadheadless.py --max_allow_in 50 --max_upload_rate 1000 /tmp/test.torrent  --saveas /tmp/test >;/dev/null &
OK ,没问题。
作者: cgweb    时间: 2004-07-30 12:10
标题: 原创:在linux下安装BT服务器
你的ftp用什么做的user,pass总在变,请赐教!
ftp://-292329728:1391113711@221.7.128.147
作者: llzqq    时间: 2004-07-30 19:30
标题: 原创:在linux下安装BT服务器
我的15-30分钟后服务会莫名其妙的停掉。不知其他人遇到没有?
作者: llzqq    时间: 2004-07-31 05:56
标题: 原创:在linux下安装BT服务器
设置成--minport 6881 --maxport 6889就可以了,不明白
--minport 6881 --maxport 6881为何会15-30分钟后服务会莫名其妙的停掉
作者: hardiwang    时间: 2004-08-02 18:14
标题: 原创:在linux下安装BT服务器
--minport 6881 --maxport 6881
这个设置有外面都不能下载,不设置以后就可以下载了!
作者: eagerlinuxer    时间: 2004-08-02 19:53
标题: 原创:在linux下安装BT服务器
我的运行5天了,好象没有出现上面的问题,如果不设--minport 6881 --maxport 6881 ,种子默认会打开6881 到 6999之间的端口(这样不利于防火墙的设置),我其中的一个种子设成了从6881到6889,但种子在后台运行后,只打了6881端口。我的种子的连接数不多,不知是否连接数增加后,会打开其它的端口。不知上面的兄弟设的种子是在监听什么端口?
作者: eagerlinuxer    时间: 2004-08-02 22:00
标题: 原创:在linux下安装BT服务器
新发现:本人之前的一个种子端口设置是:--minport 6688 --maxport 6688当时是设错了,但绝对可以用,后来看了上面的帖子,发现做错了,于是把端口改成了--minport 6881 --maxport 6889 后,发现客户端的连接速度一下子慢了下来,从几十K降到了几K。后来再把端口改成 --minport 6981 --maxport 6988 客户端的连接速度又一下上去了,到了几十K。
后来,在google上查了一下,发现了一篇电信封BT端口的新闻,大家可以去 http://cn.tech.yahoo.com/040218/55/1zwim.html 看一下,  我想既然可以封,那是不是可以不封,而在种子端口限流呢?

所以我建议把tracker服务的端口改成7969或别的,这样看它怎么封,做种子文件时注意也要用相应的tracker端口。而且把种子的监听端口设高一点,不要都用6881,这样限流也行不通了吧。 我的windows下的BT客户端bitcomet就把监听端口设成了8809(可以更改),呵呵,看来作者似呼也发现了这点。
作者: platinum    时间: 2004-08-02 23:03
标题: 原创:在linux下安装BT服务器
长宽的网络烂的不行,几乎已经到了山穷水尽的地步了
作者: llzqq    时间: 2004-08-03 07:51
标题: 原创:在linux下安装BT服务器
网通的网络应该没封6881-6889,我是这样设置PORT的,测试发现外网可以正常连接(当时连接数到了10个)
作者: eagerlinuxer    时间: 2004-08-03 09:03
标题: 原创:在linux下安装BT服务器
但我想也有在6881端口上限流的可能。
作者: 冰川火云    时间: 2004-08-05 11:32
标题: 原创:在linux下安装BT服务器
不错,回去试一下
作者: wind521    时间: 2004-08-05 12:17
标题: 原创:在linux下安装BT服务器
BT对于系统的硬盘来说是个比较大的损害
:)
作者: chinesedragon    时间: 2005-12-16 11:22
巨顶
作者: lzk    时间: 2006-06-06 16:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: lincoln_834100    时间: 2006-08-16 01:05
顶一下!
作者: 割鹿刀    时间: 2006-08-16 09:20
好东西,顶一下!有时间也装一个玩玩~~
作者: sqsowen    时间: 2010-07-16 13:39
楼主,我一开bt服务器,cpu就飙到99%了,没连接也是这样的,为啥阿?
作者: 世娇123    时间: 2011-11-02 12:44
回复 1# eagerlinuxer


按照LZ的步骤做了一下,可是自己做种失败,不知道做种环节出错还是服务器环节失败,在ubuntu上实现,是不是还要进行什么配置?这个问题研究了好久没搞明白,请指教一下




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2