BT下载如雨后春笋般不断涌现,大有替代FTP主流地位的趋势。但从很多ISP封闭BT端口的事件可以看出,接入商对BT的巨大流量感到头痛不已;如今很多人也大呼BT不快,甚至BT不能用,其实不然!
分析BT行为
作者:Shining Chen 来源:电脑报
BT下载如雨后春笋般不断涌现,大有替代FTP主流地位的趋势。但从很多ISP封闭BT端口的事件可以看出,接入商对BT的巨大流量感到头痛不已;如今很多人也大呼BT不快,甚至BT不能用。
其实,网关或防火墙设置是BT释放速度的关键,而且中国大陆网民内网用户比例极大,因此BT下载常常受到制约。笔者学校机房采用Win2000 Server+ISA Server管理网络(图1),ISA Server安装成防火墙模式,默认阻断一切未经许可的连接,因此BT下载不能在内网使用。某日,笔者终于决心为自己以及同事的管理机开通BT功能。可是上网搜索参考资料,没有发现在ISA Server中针对BT的设置方法,看来偷懒是不行了……
图1
分析BT行为
要弄清楚BT程序究竟需要使用哪些网络资源,就要先从BT行为入手。经过摸索,笔者大体掌握了BT软件联机的过程:
第一步,下载并打开.torrent文件,获取相关信息。.torrent文件包含了announce服务器的URL地址以及一些文件信息,如文件名、目录名、长度、片段长度和片段的校验码。
第二步,利用BT软件连接announce服务器,并通过URL传送参数。不同的announce服务器选用不同的端口,较常见是81、6969、8000~8001、8080等。如果连接失败,BT无法继续。
第三步,一旦announce服务器连接成功,服务器内的track程序将会对比你传送的参数,并查找服务列表中是否存在被请求的下载信息,如果没有就停止连接。
找到相关信息后,announce服务器会反向连接客户端,以判断客户机是否可以被连接。如果可以连接则将你的连接信息加入列表,这种连接需要能够访问客户机IP的特殊端口,也就是通常意义上的BT端口。
小提示:不同的BT客户端使用不同的端口,常见的有1881~1890、6000~6009、6881~6890、8000~8009、8881~8890、16881等等。
如果你是外网用户,那么无须端口映射,只要你自己没有错误设置本机的网络防火墙就行;如果你是内网用户,并且在网关上开通了相应的端口映射(没有开通端口映射,那么从外网肯定无法连接到你的电脑),那么效果和外网用户相同。
注意:下文中若无注明,“外网用户”将包含真正外网用户和开通端口映射的内网用户;“内网用户”将特指未开通端口映射的内网用户。
不过,即使不能被连通,你还是可以继续下面的步骤,只不过你的连接信息不会被记录在列表中,也不会发送给别人,内网用户就损失了发布自己端口的机会,从而降低了连接可能性。
接下来,announce服务器会反馈给客户端已经记录在列表中的可被连接机器地址,并告知间隔多久再来更新连接信息。
第四步,互传数据过程中,外网用户既可以连接其他外网用户,也可以被所有其他用户(包括内网和外网)连接。而没有端口映射的内网用户,只能连接外网用户,不能被连接。因此,内网用户只能依靠外网用户才能建立连接,即使处于同一局域网的两台内网机器,也无法直接连接。如果一个BT项目的外网用户很少,那么外网用户就成了香饽饽,大量的内网用户竞争与外网用户连接。结果可想而知,外网用户连接速度飞快,而很多内网用户只能等待。
小提示:一旦两个BT用户连接成功后,数据传输是双向的,无论谁连接谁,都可以发送和接收数据,因此内网用户也可以发布种子。
第五步,间隔一定时间,BT客户端会再次访问announce服务器,请求更新连接列表,以获得新加入外网客户端的连接信息。这个时间间隔在服务器上设定,并在第三步时传送给BT客户端。
通过以上分析,我们可以得出结论:
1.要让BT能够下载,必须要访问announce服务器,并且至少连接上一个外网客户端,当然也可以选择被他人连接的方法建立连接。
2.要让BT下载速度足够快,必须要让其它BT用户能够访问到你的BT客户端的相应端口,并且最好你也能尽可能多地访问他人的BT客户端端口。
服务器上的设置
服务器上的设置
大多数announce服务器选择6969端口,还有一些选择81、8000、8001、8080等端口,除了这些端口以外的端口很少被用作announce服务。由于ISA Server采用“无许可则禁止”的规则,即不允许我们穷举所有可能的端口,因此只能选择开通最常用的几个端口。
步骤一:
打开网关服务器的ISA Management,从左侧列表中选择“Policy Elements→Protocol Definitions”,然后点击右下方“Create a Protocol Definition”,会跳出一个对话框。
在输入框中填入自定义协议名称(可以随意起名,建议起一个容易识别的名称),并在最前面加一个单引号,使其排列在列表最前面。然后在以下出现的界面中依次填入:端口号6969;协议类型TCP;方向为Outbound;选择No;直到完成。
通过以上操作就完成了一个announce服务器端口的设置,可依此添加81、8000、8001和8080端口,设置时只要将上述步骤中的端口号变更一下就可以了。
步骤二:
由于局域网内有两台管理机,因此需要分别设置端口映射。笔者决定让1号管理机使用6881端口,2号管理机使用6882端口。
从左侧列表中选择“Policy Elements→Protocol Definitions”,点右下方“Create a Protocol Definition”,在“自定义新协议向导”对话框中依次填入:自定义协议名称,例如“'BS-6881”;端口号6881(或6882);协议类型TCP;方向Inbound;选择No;直到完成。
接下来选择左侧列表“Publishing→Server Publishing Rules”,点击右下方“Publish a Server”。在“新服务器发布规则向导”对话框中填入规则名称后,点击下一步进入设置界面。注意上方的IP是内部服务器IP,也就是管理机1的IP地址,完整地输入进去;下方的IP是网关服务器的外网IP,也需要完整输入;选择应用的服务器协议时,下拉列表中有刚才定义好的服务(管理机1选择'BS-6881,管理机2选择'BS-6882);所有连接请求应设置为“Any Request”。
管理机上的设置
管理机上的设置
将两台管理机的端口映射好后,接下来只须在管理机上设置BitSpirit就行了。可以直接使用BS的设置向导,相关设置如图2。
图2
注意:对于管理机2来说,TCP端口应该绑定到6882,其它相同。补充到此为止,管理机上的BS可以等待别人来主动连接自己,但它们主动去连接其他外网用户的通路还没打开,下面就介绍设置的方法。
由于不同的BT客户端使用不同的端口,而且允许用户自己设置所用的端口,因此除了常见的1881~1890、6881~6890、8000~8010、8881~8890、16881等端口,还有很多其它端口。全部开设这些端口不太可能,只能选择其中一部分。
通过观察发现,上述常见的BT端口中,每个端口段中的小端口号出现的概率明显大于大端口号,因为大多数BT软件都是新开一个BT任务就新开一个端口,而大多数情况下,很少有超过3个以上的BT项目。
因此笔者选择以下端口开放:1881~1884、6000~6003、6881~6884、8000~8002、8881~8883、16881。至于那些非常规的端口,大家就不用去管了。端口的设置可以参考“服务器上的设置”中的步骤一,只是端口需要改变。
最后在ISA Managements的左侧列表中,选择“Access Policy→Protocol Rules”,再点击右下方“Create a Protocol Rule”后,在出现的界面中依次输入:规则名(自定义);选择“Allow”;选择“All IP traffic”,以允许管理机可以使用所有定义了的网络协议;选择日程表方案,Always表示无时间限制。然后根据网络管理方案选择允许使用该规则的机器,这里当然只能让两台管理机使用刚才开通的端口。
经过测试,在100Mbps的局域网环境下,下载速度峰值可达到800KBps,平均速度为400~500KBps(如图3)。
图3
网友评论