P2P(Peer to Peer 即对等网络)就是在这种背景下提出的一种网络技术,P2P可以简单地定义为通过直接交换信息,共享计算机资源和服务,对等计算机兼有客户机和服务器的功能。在这种网络中所有的节点是对等的(称为对等点),各节点具有相同的责任与能力并协同完成任务,对等点之间通过直接互连实现信息资源、处理器资源、存储资源甚至高速缓存资源等的全面共享,无需依赖集中式服务器支持。

随着宽带网可使大家在互联网上共享到平时用普通方式难以接触到的各种各样海量的资源。使用P2P软件的每一台PC 都是客户机在下载资源,也是服务器在上传文件,在索取的同时也给予。

BT相信大家都知道了。解释一下BitTorrent是一个多点下载的开放源码的P2P软件,使用的盛行,传统的HTTP和FTP这种一点对多点的下载方式已经满足不了大家的需求了。它会随着下载人数增加而出现连接不上和速度骤减的现象。而P2P技术则打破常规格式,极大地节省了网络带宽。可使你直接连接其他用户的计算机,交换和搜索文件,而不用再通过网页浏览与下载,最大限度地利用了网络带宽。它非常方便。是一个多点下载的共享文件软件,由于在下载的同时,也可为其他用户提供上传,所以不会随着用户人数的增加而降低下载速度,因此,下载的人越多,速度便越快。现在不少大公司如RedHat,都有使用BT让他们的客户下载开发版本。

Linux下的P2P协议主要包括:BitTorrent、aMule、Gnutella等。本文以普遍使用的BitTorrent为例介绍使用P2P服务的方法。

1、搭建BitTorrent服务器
BitTorrent使用Python语言编写,是一个开放源代码软件,既可以在Windows下运行,也可以在Linux环境下运行,目前在Linux下的最新版本是6.1.2。

BitTorrent的官方网址:http://bitconjurer.org/BitTorrent/

安装BitTorrent软件

由于该软件采用Python编写,所以安装BitTorrent前需要使用命令:#rpm -qa|grep Python

检查是否配置了Python语言。否则需要到Python的官方网站http://www.python.org下载安装,然后执行如下命令对BitTorrent软件进行安装:#rpm -ivh BitTorrent-6.1.2.Python2.4.noarch.rpm

安装完成后所有BitTorrent命令和工具都安装在/usr/bin目录下。包括:btmaketorrent.py(制作种子工具)、bttest.py(测试种子工具)、bttrack.py(制作Tracker工具)、btdownloadheadless.py(制作共享源工具)、btlaunchmany.py(后台启动共享源工具)、btshowmetainfo.py(查看下载情况工具)、btdownloadgui.py(图形化制作共享源工具)、btmaketorrent.py(图形化制作种子工具)。

配置和启动BitTorrent

BitTorrent的核心是Tracker,BitTorrent服务不需要服务器,但是BitTorrent服务中仍然有服务器的概念,这里称作Tracker。准确地说,Tracker是指运行的服务器上的一个程序,这个程序可以跟踪多少人同时在下载同一个文件。BT客户端连接到Tracker时会产生一个下载人员名单,根据这个名单,BT客户端会自动连接网络中其他节点进行下载。所以第一步要启动一个Tracker:# ./bttrack.py --port 8760 --dfile dstate > /dev/null 2>&1 &

推荐使用普通用户权限来启动这个服务,这样更加安全。这个命令会在当前目录生成一个dstate的文件,并打开8760端口。

制作种子(Seed)

BT服务器的track服务并不提供下载服务,提供下载的是它的种子(seed),就是一个已经下载完成或正在下载的客户端。因为一开始没有这样的种子,所以你得先自己生成一个,如果要为/home/cjh.avi制作种子,相关命令是:# ./btdownloadheadless.py --max_allow_in 200 --max_upload_rate 100 --minport 8888 --m

相关参数说明如下:

--max_allow 200:指明这个种子最多可以接受200个连接。
--max_upload_rate 100:指这个种子最大的可以接受下载的带宽100 KB(byte)/s,这样可以控制下载带宽。
--minport 8888 --maxport 8888:设置最大最小监听端口号码,这样写就是说种子只监听8888端口,这样方便在防火墙上开端口。
mp3.vio.torrent:是制作的种子文件名称。
设置Apache服务器

配置Web服务器让种子(.torrent)文件和application/x-bittorrent相关联。不久Apache配置文件:/etc/httpd.conf,加入一行:AddType application/x-bittorrent .torrent

然后,我们需要重新启动Web服务器,并且打开防火墙6888端口:

Linux下搭建BT服务器的更多相关文章

  1. 【转】在Linux下搭建Git服务器

    在 Linux 下搭建 Git 服务器 环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows. ...

  2. 在 Linux 下搭建 Git 服务器

    环境: 服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows.1) ① 安装 Git Linux 做为 ...

  3. Linux下搭建VPN服务器(CentOS、pptp)转

    先说我搭建过程中出现的问题吧: 按照 教程搭建好之后出现了619错误,查看日志:/var/log/messages: Nov 20 09:46:20 localhost pptpd[7498]: GR ...

  4. Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

    首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion   ...

  5. 在Linux下搭建Git服务器的方法是什么样?

    第一步 安装git:可以通过命令的方式快速安装,不同的linux的安装方法可能不一样,我的是采用的yum方法.ubuntu可以用apt-get命令.sudo yum install git 第二步 添 ...

  6. 转载-Linux下搭建VPN服务器(CentOS、pptp)

    转自:http://www.cnblogs.com/sixiweb/archive/2012/11/20/2778732.html 搭建过程参考这篇文章 先说我搭建过程中出现的问题吧: 按照 教程搭建 ...

  7. Linux 下搭建jsp服务器(配置jsp开发环境)

    Linux 做为服务器的高效一直时为人所熟知的了,在linux 上搭建各种各样的服务器和开发环境也时学计算机的人常做的.以下时最近在linux配置jsp服务器的全过程,包含一些基本步骤和排错过程: 1 ...

  8. Linux 下搭建流媒体服务器

    http://blog.csdn.net/huangtaishuai/article/details/9836581 ----------------------------------------- ...

  9. Linux 下搭建ftp服务器 指定用户指定目录及其他操作

    搭建 Linux下 rpm -qa |grep vsftpd查看是否安装 没安装yum安装 /etc/vsftpd/目录下有vsftpd.conf配置文件 根据需求 进行配置  是否使用匿名用户以及文 ...

随机推荐

  1. python拆分excel脚本

    因为需要将一个很大的excel按500条拆分为多个excel,手工操作实在太麻烦,就写了个python小脚本,现在是分为了多个sheet页,使用者可根据自己实际情况修改成多个文件的形式 #!/usr/ ...

  2. From MSI to WiX, Part 1 - Required properties, by Alex Shevchuk

    Following content is directly reprinted from From MSI to WiX, Part 1 - Required properties Author: A ...

  3. 九度OJ 1512 用两个栈实现队列 【数据结构】

    题目地址:http://ac.jobdu.com/problem.php?pid=1512 题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 输入: 每 ...

  4. hdu 5055 Bob and math problem

    先把各个数字又大到小排列,如果没有前导零并且为奇数,则直接输出.如果有前导零,则输出-1.此外,如果尾数为偶数,则从后向前找到第一个奇数,并把其后面的数一次向前移动,并把该奇数放到尾部. 值得注意的是 ...

  5. yiic创建YII应用 "php.exe"不是内部或外部命令 解决办法

    第一步:运行CMD命令.   第二步:进入Yiic文件的目录   (例如在D盘里面 D:/yii/framework)   第三步:D:\yii\framework>yiic webapp D: ...

  6. redis 常用操作命令

    操作相关的命令连接 quit:关闭连接(connection)auth:简单密码认证 持久化 save:将数据同步保存到磁盘bgsave:将数据异步保存到磁盘lastsave:返回上次成功将数据保存到 ...

  7. phantomjs 自动化测试

    最近网站的质量检查越来越严格,原来开发过程中很多隐蔽的问题,逐渐暴露出来,为提高前端的工作效率,就想到是不是可以在开发过程中能自动的对页面的中一些规范化的东西进行自动监测,这个就可以省去不少麻烦. 整 ...

  8. PHP之图形处理

    图形处理 PHP 的图形处理,主要功能集中在 PHP 的图形处理函数. 需要先掌握一些要点.什么叫图片,怎么显示图片. 所谓的图片,其实也是一种文件,只是内容不是我们肉眼直接可见的.如果我们用记事本打 ...

  9. emctl start dbconsole OC4J_dbconsole*** not found

    C:\windows\system32>emctl start dbconsole OC4J Configuration issue. D:\app\product\\db_1/oc4j/j2e ...

  10. Fluid Shopping Website 开发阶段性总结——第一周

    开发目的: 可链接微信公众号,无论是桌面端.移动端完美兼容,给用户提供不逊于原生App的用户体验.作为一个软件,有充分的可扩展性,便于未来增强开发.同时给一些正在尝试做OTO的朋友们提供一个平台,因为 ...