Linux中快速创建P2P服务器

2017-03-08 22:45
网络安全和信息化 2017年7期
关键词:点对点命令客户端

引言:P2P即点对点传输之意,可以将不同的用户联系起来,通过网络直接交换数据。在Linux中可以架设多种P2P服务器,本文介绍在Linux中使用BitTorren,快速搭建P2P服务器的方法。

P2P即点对点传输之意,可以将不同的用户联系起来,通过网络直接交换数据。这样就消除了中间环节,可以让人们在网上更容易更直接地共享和交换数据。

P2P协议运行机制

P2P协议是对等式的网络连接协议,利用该协议,客户机无需通过服务器就可以彼此之间相互访问,交互文件数据等操作。在Linux中,支持 BitTorrent、amule、Gnutella等P2P协议,其中的BitTorrent是网络文件传输协议,能够实现点对点文件共享技术。BitTorrent支持多点对多点等特征,即下载的用户越多,下载的速度就越快。而一般的HTTP或者FTP等协议,下载的文件只是存放在少数服务器上,下载的用户越多,服务器因带宽过度消耗而降低下载速度。BitTorrent协议是让HTTP或者FTP下载服务使用TCP/IP协议,BItTorrent是架构在TCP/IP协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。

BT种子解析

当下载文件时,客户端的BitTorrnet程序对用户选择的“.torrent”文件进行解释分析,从中得到Tracker信息,进而连接到目标Tracker服务器,该服务器对下载者的请求作出回应,并提供文件发布者和其他下载者的IP地址信息,使用者通过这些IP地址进行连接,用户们之间根据“.torrent”文件分别提供给对方已有的区块,然后交换没有的数据。整个下载过程没有服务器的参与,对单个网络线路上数据流进行了分散处理,减轻了服务器的压力。

要想利用P2P传输文件,用户必须安装BitTorrent客户端软件。上面提到的“.torrent”文件包含第一个下载资源发布者根据原文件制作出来的指纹信息,“.torrent”文件体积极小,其中主要包含下载文件所在BitTorrent端地址信息以及对象文件的校验码。当使用者获得该“.torrent”文件后,运行BitTorrent客户端程序打开该文件,就会据此文件中包含的信息,自动找到目标文件可用的下载源进行下载操作。

Tracker的功能

P2P文件传输中虽然不需要指定服务器,但是仍然离不开特定的服务器支持。BitTorrent服务器称之为Tracker。Tracker其实是运行在服务器上的一个程序,该程序可以自动跟踪参与某文件下载的所有用户信息,BitTorrent客户端只要连上Tracker服务器,就会获得所有参与下载的用户信息列表,并据此自动连接到网络中的对应节点进行下载。对于使用者,无需了解Tracker服务器的任何信息。

在P2P传输服务中,将提供完整文件的用户节点成为Seed(种子),正在下载的用户成为客户端,Seed数量越多,参与的客户越多,文件下载的速度就越快。

常见的P2P共享协议

amule是一个开源的P2P文件共享协议,支持多种操作系统,代码完全公开。amule的每个用户在下载的同时还上传数据,即将自己已经下载的数据共享给其他用户。amule客户端可以从多个文件上传者处得到所需的下载数据,之后将其拼接成完整的文件。amule一个特点是可以设定一个共享目录,允许其他用户访问其中的共享文件。

Gnutella协议不仅支持点对点文件传输,而且支持传统的客户端/服务器检索规则。在该协议中所有的客户端也同时是一个服务器端,所有的服务器端同时也是一个客户端。Gnutella可以执行联系客户端和服务器的任务,为其他用户发出查询请求并查看搜索结果,检查自己的数据中匹配的部分并返回可用的结果。使用了该协议的网络具有良好的容错能力,当部分客户机离线后,网络服务不会中断。

在Linux中搭建P2P服务器

在Linux中可以架设多种P2P服务器,这里使用BitTorren为例进行说明,该软件也可以在Windows平台中运行。在RedHat、Fedora系统中,可以在命令行中执行“yum install bittorrent”命令,表示使用YUM方式安装该软件, YUM安装方式可以根据预设的YUM源,来自动分析安装某软件所需的全部RPM包,之后根据不同RPM包之间的依赖关系,自动下载所有相关的RPM包,来完成所需软件的安装。

所谓YUM源,指的是存放所有RPM包以及相关分析文件的路径,包括指定的本地目录、FTP或者HTTP服务器等。

执行该命令后,系统执行载入插件,分析安装参数语法,解决依赖性检测等操作,当完毕后会在“确定是这样吗?”栏中输入“y”,执行下载软件包,运行事务处理等操作,当出现“恭喜您!成功完成!”字样后,执行“yum installBittorrent-gui”命令,执行图形界面的bittorrent安装操作。可以看到系统的具体处理信息,在“确定是这样吗?”栏中输入“y”,就完成了所需的安装操作。

如果在Ubuntu,Debian等系统下,可以执行“aptget install bittorrent”命令,完成安装操作。对于Gentoo系统来说,可以执行“emerge bittorrent”命令,执行软件的下载与编译操作,来完成所需的安装动作。

配置和管理BitTorrent

当安装完毕后,所有的BitTorrent命令和工具都保存在“/usr/bin”目录中,配置文件为“etc/sysconfig/bittorrent”。前面谈到BitTorrent虽然不需要服务器,不过依然需要Tracker服务器的参与。Tracker是BitTorrent的内核部分,BitTorrent客户端程序会根据连接到Tracker服务器时获得的参与者名单来自动连接网络中的对应节点。因此,必须先启动Tracker服务,执行“/etc/init.d/bttrack start”命令,完成BitTorrent Tracker的启动操作。之 后,在别的主机上打开浏览器,访 问“http://192.168.10.100:6969”,在打开的网页中显示“BitTorrent download info” 字样,在其下的“tracker version”栏中显示版本信息,在“server time”栏中显示服务器信息,这说明Tracker服务启动成功,这里的“192.168.10.100”表示服务器地址。

制作种子文件

Tracker服务只提供下载的种子并不提供下载服务,即仅提供一个已经下载完成或者正在下载的客户端,而种子文件必须有文件上传者制作。在Linux中启动BitTorrent File Transfer程 序, 这是图形化的操作界面。在该程序窗口中点击菜单“File→Make new torrent”项,在弹出窗口中点击“choose”按钮,选择需要发布的文件,例如压缩包,ISO文件等。选择“Use tracker”项,在右侧输入Tracker信息,例 如“http://192.168.10.100:6969/xxx”点 击“make”按钮,在弹出窗口中点击“start seeding”按钮,就可以生成所需的种子“.torrent”文件了。其他用户利用该种子文件,就可以利用不同的BitTorrent客户端程序来下载预设的资源了。

P2P文件传输模式虽然具有一些独特的优点,但是并非完美无缺。例如,P2P服务可以开启多个端口同时传输数据,会消耗很大的带宽,需要管理员指定合理的策略对其进行管理。

猜你喜欢
点对点命令客户端
只听主人的命令
“点对点”帮2万名农民工返岗
基于虚拟电厂能量管理的点对点市场交易模型分析
如何看待传统媒体新闻客户端的“断舍离”?
OptiX155622H设备点对点以太网透传业务故障分析
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
移防命令下达后
这是人民的命令