突破防火墙

如何使tcp包和udp包穿透防火墙呢?通过本文,相信你会有收获的! 

通过本文的httptunnel 技术同时逃过了防火墙的屏蔽以及系统的追踪试验,我们可以看到网络安全仅仅依靠某种或某几种手段是不可靠的,同时对安全系统的盲目性依赖往往会造成巨大的安全隐患。希望通过本文能引起管理员对网络安全防护系统的思考。

什么是http暗藏通道 
什么是局域网安全,系统管理员怎样才能保障局域网的安全?这是一个不断变化的安全概念,很长的一个时期以来,在局域网与外界互联处放置一个防火墙,严格控制开放的端口,就能在很大程度上掌握安全的主动权,方便的控制网内外用户所能使用的服务。比如,在防火墙上仅仅开放80,53两个端口,那么无论是内部还是外面的恶意人士都将无法使用一些已经证明比较危险的服务。

但要注意一点,防火墙在某种意义上是很愚蠢的,管理员对防火墙的过分依赖以及从而产生的懈怠情绪将不可避免的形成安全上的重大隐患,作为一个证明,"通道"技术就是一个很好的例子,这也是本文要讨论的。

那么什么是通道呢?这里所谓的通道,是指一种绕过防火墙端口屏蔽的通讯方式。防火墙两端的数据包封装在防火墙所允许通过的数据包类型或是端口上,然后穿过防火墙与对端通讯,当封装的数据包到达目的地时,再将数据包还原,并将还原后的数据包交送到相应的服务上。WWw.iTcomputER.cOm.cN举例如下:

A主机系统在防火墙之后,受防火墙保护,防火墙配置的访问控制原则是只允许80端口的数据进出,B主机系统在防火墙之外,是开放的。现在假设需要从A系统Telnet到B系统上去,怎么办?使用正常的telnet肯定是不可能了,但我们知道可用的只有80端口,那么这个时候使用Httptunnel通道,就是一个好的办法,思路如下:

在A机器上起一个tunnel的client端,让它侦听本机的一个不被使用的任意指定端口,如1234,同时将来自1234端口上的数据指引到远端(B机)的80端口上(注意,是80端口,防火墙允许通过),然后在B机上起一个server,同样挂接在80端口上,同时指引80端口的来自client的转发到本机的telnet服务端口23,这样就ok了。现在在A机上telnet本机端口1234,根据刚才的设置数据包会被转发到目标端口为80的B机,因为防火墙允许通过80端口的数据,因此数据包畅通的穿过防火墙,到达B机。此时B机在80端口侦听的进程收到来自A的数据包,会将数据包还原,再交还给telnet进程。当数据包需要由B到A返回时,将由80端口再回送,同样可以顺利的通过防火墙。

实际上tunnel概念已经产生很久了,而且很有可能读者使用过类似的技术,比如下面的网址
http://www.http-tunnel.com。它是一个专业提供tunnel服务的公司,通过他们的在线tunnel server,局域网内的用户可以使用被防火墙所屏蔽的ICQ,E-MAIL,pcanywhere, AIM,MSN, Yahoo,Morpheus,Napster等等诸多软件N颐强吹剑这里有ICQ,Napster等软件,相信我们的读者很多都使用过走proxy的ICQ,OICQ等等,其实他们的原理是差不多的。

什么是Httptunnel 
作为一个实际的例子,我们下面来介绍一个在"非公开领域"使用的的通道软件,httptunnel。在httptunnel主页(请参阅参考资料)上有这么一端话,
httptunnel creates a bidirectional virtual data connection tunnelled in HTTP requests. The HTTP requests can be sent via an HTTP proxy if so desired. 
This can be useful for users behind restrictive firewalls. If WWW access is allowed through a HTTP proxy, it's possible to use httptunnel and, say, telnet or PPP to connect to a computer outside the firewall. 

从这段说明中我们可以看出来它就是我们今天说要介绍的tunnel技术的一个证明,我们下面大致介绍一下它的使用。

httptunnel目前比较稳定的版本是3.0.5, 支持各种常见的unix系统,包括window平台。可以从相关站点(请参阅参考资料)下载,它的安装是比较简单的,照INSTALL文件做就可以了,这里不介绍。

整个软件安装完毕后,我们会得到两个关键文件,htc和hts,其中htc是客户端(c),而hts是server(s)端,我们来看看具体怎么使用的。

假设有A(域名client.yiming.com)机,B(域名server.yiming.com)机,两机均为solaris环境,A机在防火墙保护中,B机在防火墙以外,防火墙的管理员控制了访问规则,仅ALLOW 80和53端口的进出数据包。而我们的任务是要利用Httptunnel从A机telnet到B机上,穿过防火墙的限制。操作如下:

首先我们在A上启动client端,命令很简单:
client.yiming.com#htc -F 1234 server.yiming.com:80,

系统回到提示符下,此刻我们用netstat -an 可以看到系统内多出了1234端口的侦听
*.1234 *.* 0 0 0 0 LISTEN

然后我们在B机上启动server端,命令如下:
server.yiming.com#hts -F localhost:23 80

系统回到提示符下,此刻我们用netstat看 *.80 *.* 0 0 0 0 LISTEN

80端口处于侦听状态,需要注意的是,如果系统本身跑的有web服务(80端口本身处于侦听),并不会影响Httptunnel的工作。

Ok,server以及client端都启动了,我们可以开始我们的"通道"试验了,在client.yiming.com上执行一下如下命令看看: 
Client.yiming.com#telnet localhost 1234
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
SunOS 5.7
This is yiming's private box! Any question,contact me with yiming@security.zz.ha.cn
login:

看到B机的登录提示符了,输入账号密码看看是否工作正常? 
Login:yiming
Password: (omit here;) )
sever.yiming.com# ls
bak check go httpd lost+found mrtg run soft wg

OK! 工作正常,和正常的telnet没有什么差别。

仔细观察整个过程,会发现在最开始的地方显示的是Trying 0.0.0.0...,Connected to 0.而不是Trying server.yiming.com...,Connect to server.yiming.com,这就很直观的可以看出来client端是转发1234数据包到本机80端口的。(然后再转发到远端)而不是直接连接远端的B机。

上面是比较直观的测试,为了进一步验证server和client之间不是通过23端口通讯,我们抓取数据来看看。我们在server起个抓包工具tcpdump(请参阅参考资料)瞧瞧。 
server.yiming.com#tcpdump host client.yiming.com
tcpdump: listening on hme0
14:42:54.213699 client.yiming.com.51767 > server.yiming.com.80: S 1237977857:1237977857(0) win 8760 (DF)
14:42:54.213767server.yiming.com.80 > client.yiming.com.51767: S 1607785698:1607785698(0) ack 1237977858 win 8760 (DF)
14:42:54.216186 client.yiming.com.51768 > server.yiming.com.80: . ack 1 win 8760 (DF)
14:42:54.218661 client.yiming.com.51768 > server.yiming.com.80: P 1:44(43) ack 1 win 8760 (DF)
14:42:54.218728 client.yiming.com.51768 > server.yiming.com.80: P 44:48(4) ack 1 win 8760 (DF)
篇幅所限,上面只是截取了结果中的一点点数据包,但已经可以说明问题了,我们看到server和client之间顺利的完成了三次握手,然后开始push数据,而且通讯确实走的是80端口。有点意思噢。

看是看出来了,但太不直白,到底在搞什么呀,我们再稍微改动一下tcpdump的运行方式,进一步在来看看telnet的数据是否被封装在80端口的数据包内传输?


server.yiming.com#tcpdump -X host client.yiming.com
14:43:05.246911 server.yiming.com.80 > client.yiming.com.51768: . 2997:4457(1460) ack 89 win 8760 (DF)
0x0000 4500 05dc 3b23 4000 ff06 e2c2 yyyy yyyy E...;#@......f.D
0x0010 xxxx xxxx 0050 de42 5fd5 ac4f 39ac 016f .f.#.P.B_..O9..o
0x0020 5010 2238 98e4 0000 746f 7461 6c20 3636 P."8....total.66
0x0030 370d 0a64 7277 7872 2d78 722d 7820 2032 7..drwxr-xr-x..2
0x0040 3920 726f 6f74 2020 2020 2072 6f6f 7420 9.root.....root.


呵呵,这次清楚多了,上面应该是一次ls命令的输出结果,可以清楚的看到telnet的结果!果然telnet的数据是在80端口的数据包内! 

Httptunnel带来的安全问题 
写到这里,我们可以想象一下,如果管理员完全信赖防火墙,那么在一个有这样隐患的的局域网中,会发生什么样的后果?

我们可以看到,多年以来,对防火墙的依赖也一直列在SANS的Top 10安全问题中。

既然如此,就很自然的会产生一个问题是:这种httptunnel行为能被发现吗?

首先我们想到的是使用入侵检测系统,在目前的网络安全设计中,防火墙加入侵检测系统是一种比较流行的安全联动配置,既然httptunnel绕过了防火墙,那么IDS系统呢?我们来测测看看。

在下面的测试中,我们将使用IDS系统是Snort,版本1.8.2。(请参阅参考资料)这可是大名鼎鼎的开放源代码的IDS系统,在它的说明中,被描述为一个轻量级的,可跨平台工作的入侵检测系统,在2001年12月英国的独立测试实验室NSS的评测中(请参阅参考资料),击败了包括商用IDS系统的所有对手,这些商用软件可是包括ISS,CISCO SECURE IDS,CA ETRUST,CYBERSAFE CENTRAX,NFR。有兴趣的读者还可以看这篇名为Open source mounts IDS challenge 的报道(请参阅参考资料)。

好,对Snort的大致介绍完毕,我们来看看结果吧,Snort对整个试验过程抓获的数据包产成了告警,如下: 
[**] WEB-MISC whisker splice attack [**]
12/02-14:42:54.389175 client.yiming.com:51767-> server.yiming.com:80
TCP TTL:251 TOS:0x0 ID:3327 IpLen:20 DgmLen:42 DF
***AP*** Seq: 0x49CA0BA7 Ack: 0x5FD4DCE3 Win: 0x2238 TcpLen: 20
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

[**] WEB-MISC whisker splice attack [**]
12/02-14:43:03.195006 client.yiming.com:51767 -> server.yiming.com:80
TCP TTL:251 TOS:0x0 ID:3439 IpLen:20 DgmLen:41 DF
***AP*** Seq: 0x49CA0C20 Ack: 0x5FD4DCE3 Win: 0x2238 TcpLen: 20
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

[**] WEB-MISC whisker splice attack [**]
12/02-14:43:04.630268 client.yiming.com:51768-> server.yiming.com:80
TCP TTL:251 TOS:0x0 ID:3496 IpLen:20 DgmLen:41 DF
***AP*** Seq: 0x49CA0C4E Ack: 0x5FD4DCE3 Win: 0x2238 TcpLen: 20
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+




我们看到snort对抓获的数据包产生了WEB-MISC whisker splice attack的告警,然而这种攻击并没有发生,同时snort对tunnel数据包没有察觉。这样snort就同时出现了IDS系统的两个问题,false positive,false negative。

这也很正常,因为这也是基于签名的IDS系统的通病,目前决大数IDS系统包括著名的商用软件ISS,NFR等都是基于签名的,也就是说系统维护着一套特定攻击数据包的数据模式签名。系统工作时,检查经过的数据包的内容,和自己数据库内数据模式签名对比,如果和某种攻击模式签名相同,那么就判断发生了某种攻击。

由此我们可以看出很明显的存在若干问题:如对签名的依赖不可避免的导致两个结果,false negative ,false positive。也就是说会产生漏报和误报,这一点很容易理解,当新出现一种攻击模式时,由于IDS系统内没有相应的数据签名,那么就不可能捕获相应的攻击数据包,false negative由此发生。同时,过于依赖签名模式也很容易误报,就象我们上面的例子。同时,对数据签名的依赖会在一定程度上降低系统性能-经过的数据包都需要和IDS系统的签名对照。(请参阅参考资料)

此外,基于签名的IDS系统本身有可能由于依据签名这一特性而被攻击,一个例子是stick ,这个程序的作者利用IDS系统进行签名匹配工作原理,发送大量带有攻击特征的数据包给IDS系统,使IDS系统本身处理能力超过极限,从而导致IDS系统无法响应。按照作者Coretez Giovanni的说法,运行2秒钟stick就能使著名的商用IDS系统ISS real secure崩溃。由上我们看到,对IDS系统的完全依赖同样是有风险的。(请参阅参考资料)

一些解决思路 
看来依靠手头的IDS是无法察觉这种行为了,那么有其它办法吗?我们仔细分析一下事件过程中截获的httptunnel数据包再说吧。

仔细观察截获的httptunnel数据包,可以发现紧跟着三次握手完成后的第一个数据包包含着一个POST动作,是由htc(client端)发送到hts(server端)的。如下:
14:55:39.128908 client.yiming.com.51767 >
server.yiming.com.80: S 3521931836:3521931836(0) win 8760 (DF)
0x0000 4500 002c d3cc 4000 fb06 53c9 xxxx xxxx E..,..@...S..f.#
0x0010 yyyy yyyy ca37 0050 d1ec 6a3c 0000 0000 .f.D.7.P..j< ....
0x0020 6002 2238 1708 0000 0204 05b4 0000 `."8..........
14:55:39.128945 server.yiming.com.80 >
client.yiming.com.51767: S 2946004964:2946004964(0) ack 3521931837 win 8760 (DF)
0x0000 4500 002c cb85 4000 ff06 5810 yyyy yyyy E..,..@...X..f.D
0x0010 xxxx xxxx 0050 ca37 af98 77e4 d1ec 6a3d .f.#.P.7..w...j=
0x0020 6012 2238 ef79 0000 0204 05b4 `."8.y......
14:55:39.131002 client.yiming.com.51767 >
server.yiming.com.80: . ack 1 win 8760 (DF) 
0x0000 4500 0028 d3cd 4000 fb06 53cc xxxx xxxx E..(..@...S..f.#
0x0010 yyyy yyyy ca37 0050 d1ec 6a3d af98 77e5 .f.D.7.P..j=..w.
0x0020 5010 2238 0737 0000 0000 0000 0000 P."8.7........
14:55:39.132841 server.yiming.com.80 >
client.yiming.com.51767: . ack 44 win 8760 (DF)
0x0000 4500 0028 cb86 4000 ff06 5813 yyyy yyyy E..(..@...X..f.D
0x0010 xxxx xxxx 0050 ca37 af98 77e5 d1ec 6a68 .f.#.P.7..w...jh
0x0020 5010 2238 070c 0000 P."8....
14:55:39.132860 client.yiming.com.51767 >
server.yiming.com.80: P 1:44(43) ack 1 win 8760 (DF)
0x0000 4500 0053 d3ce 4000 fb06 53a0 xxxx xxxx E..S..@...S..f.#
0x0010 yyyy yyyy ca37 0050 d1ec 6a3d af98 77e5 .f.D.7.P..j=..w.
0x0020 5018 2238 d23a 0000 504f 5354 202f 696e P."8.:..POST./in
0x0030 6465 782e 6874 6d6c 3f63 7261 703d 3130 dex.html?crap=10
0x0040 3037 3838 3034 3836 2048 5454 502f 312e 07880486.HTTP/1.
0x0050 310d 0a 1..
1..




看起来是发送client端的数据包到server端的,那么server有什么反应呢?我们往下看,在上面这个过程完成后,htc和hts又发生了一次握手(注意,又一次握手),如下: 
14:55:39.134301 client.yiming.com.51768 >
server.yiming.com.80: S 2851199448:2851199448(0) win 8760 (DF)
0x0000 4500 002c d3df 4000 fb06 53b6 xxxx xxxx E..,..@...S..f.#
0x0010 yyyy yyyy ca38 0050 a9f1 d9d8 0000 0000 .f.D.8.P........
0x0020 6002 2238 cf65 0000 0204 05b4 0000 `."8.e........
14:55:39.134389 server.yiming.com.80 >
client.yiming.com.51768: S 2946060449:2946060449(0) ack 2851199449 win 8760 (DF)
0x0000 4500 002c cb8f 4000 ff06 5806 yyyy yyyy E..,..@...X..f.D
0x0010 xxxx xxxx 0050 ca38 af99 50a1 a9f1 d9d9 .f.#.P.8..P.....
0x0020 6012 2238 cf19 0000 0204 05b4 `."8........
14:55:39.136527 client.yiming.com.51768 >
server.yiming.com.80: . ack 1 win 8760 (DF)
0x0000 4500 0028 d3e0 4000 fb06 53b9 xxxx xxxx E..(..@...S..f.#
0x0010 yyyy yyyy ca38 0050 a9f1 d9d9 af99 50a2 .f.D.8.P......P.
0x0020 5010 2238 e6d6 0000 0000 0000 0000 P."8..........
14:55:39.137333 client.yiming.com.51768 >
server.yiming.com.80: P 1:43(42) ack 1 win 8760 (DF)
0x0000 4500 0052 d3e1 4000 fb06 538e xxxx xxxx E..R..@...S..f.#
0x0010 yyyy yyyy ca38 0050 a9f1 d9d9 af99 50a2 .f.D.8.P......P.
0x0020 5018 2238 25ce 0000 4745 5420 2f69 6e64 P."8%...GET./ind
0x0030 6578 2e68 746d 6c3f 6372 6170 3d31 3030 ex.html?crap=100
0x0040 3738 3830 3438 3620 4854 5450 2f31 2e31 7880486.HTTP/1.1
0x0050 0d0a ..
14:55:39.137379 server.yiming.com.80 >
client.yiming.com.51768: . ack 43 win 8718 (DF)
0x0000 4500 0028 cb90 4000 ff06 5809 yyyy yyyy E..(..@...X..f.D
0x0010 xxxx xxxx 0050 ca38 af99 50a2 a9f1 da03 .f.#.P.8..P.....
0x0020 5010 220e e6d6 0000 P.".....
14:55:39.139733 client.yiming.com.51768 >
server.yiming.com.80: P 43:89(46) ack 1 win 8760 (DF)
0x0000 4500 0056 d3e2 4000 fb06 5389 xxxx xxxx E..V..@...S..f.#
0x0010 yyyy yyyy ca38 0050 a9f1 da03 af99 50a2 .f.D.8.P......P.
0x0020 5018 2238 e156 0000 486f 7374 3a20 3230 P."8.V..Host:.20
0x0030 322e 3130 322e 3232 372e 3638 3a38 300d 2.102.227.68:80.
0x0040 0a43 6f6e 6e65 6374 696f 6e3a 2063 6c6f .Connection:.clo
0x0050 7365 0d0a 0d0a se....
14:55:39.151300 server.yiming.com.80 >
client.yiming.com.51768: P 1:170(169) ack 89 win 8760 (DF)
0x0000 4500 00d1 cb91 4000 ff06 575f yyyy yyyy _.f.D">E.....@...W_.f.D
0x0010 xxxx xxxx 0050 ca38 af99 50a2 a9f1 da31 .f.#.P.8..P....1
0x0020 5018 2238 e721 0000 4854 5450 2f31 2e31 P."8.!..HTTP/1.1
0x0030 2032 3030 204f 4b0d 0a43 6f6e 7465 6e74 .200.OK..Content
0x0040 2d4c 656e 6774 683a 2031 3032 3430 300d -Length:.102400.
0x0050 0a43 6f6e 6e65 6374 696f 6e3a 2063 6c6f .Connection:.clo 
0x0060 7365 0d0a 5072 6167 6d61 3a20 6e6f 2d63 se..Pragma:.no-c
0x0070 6163 6865 0d0a 4361 6368 652d 436f 6e74 ache..Cache-Cont
0x0080 726f 6c3a 206e 6f2d 6361 6368 652c 206e rol:.no-cache,.n
0x0090 6f2d 7374 6f72 652c 206d 7573 742d 7265 o-store,.must-re
0x00a0 7661 6c69 6461 7465 0d0a 4578 7069 7265 validate..Expire
0x00b0 733a 2030 0d0a 436f 6e74 656e 742d 5479 s:.0..Content-Ty
0x00c0 7065 3a20 7465 7874 2f68 746d 6c0d 0a0d pe:.text/html...


从数据包中可以看到,本次通讯中hts(server)端向htc(client)端发送了一个GET的标识包,估计是去""刚才client端发来的数据包,而且是一次新的握手!为了验证,我们分别在client,server端,执行netstat -an,结果证明了我们的观察是正确的,如下: 
client.yiming.com.51767 server.yiming.com.80 8760 0 8760 0 ESTABLISHED
client.yiming.com.51768 server.yiming.com.80 8760 0 8760 0 ESTABLISHED

在server端,执行netstat -an,结果如下: 
server.yiming.com.80 client.yiming.com.51767 8760 0 8760 0 ESTABLISHED
server.yiming.com.80 client.yiming.com.51768 8760 0 8760 0 ESTABLISHED


果然,防火墙两边的系统都起了两个socket,和一般程序不同,这是个比较特殊的现象。

GET动作完成后,server端又向client端发送了一个数据包,内容是 
HTTP/1.1 200 OK Content-Length: 102400
Connection: close
Pragma: no-cache 
Cache-Control: no-cache, no-store, must-revalidate 
Expires: 0 
Content-Type: text/html

这里应该是定义数据包传输最大值等参数的。

作者察觉,经由了这三次htc和hts之间的作用后,httptunnel才真正的建立起来,后面的工作才能正常开展,而且很有意思的是,自此以后所有后续的数据包一律没有80端口经常走的GET,PUT,POST之类的内容!!这里看来可以想点办法。

上面说过,正常走80端口的数据包应该是web行为,那么就数据包中就应该少不了get等正常的动作内容,如果在80端口经过的数据总是没有这些东东,那么就肯定有问题了,

那么这种问题就有了一种解决方案,就是手工检查通过80端口通过的数据包,如果数据包是明文传送,那么就很容易发现这种行为。但这种行为也只能在理论上可行。在实际上的操作是不可能的,有没有比较成熟的这种产品呢?按照这个思路检索网上的数据,果然发现有种入侵检测e-Gap系统可以确实察觉及屏蔽httptunnel等通道软件的存在,它工作在tcp/ip的应用层,在应用层一级检测数据包的确切性,比如,检测80端口的数据包,如果看起来数据包中总是没有有效的数据(URL,get,put等参数),那么e-Gap系统就会报警,并中断连接行为。(请参阅参考资料)

需要注意的是,这种侦测方法仅对明文传送的有效,如果数据被加密,那么也就无计可施了。那么再进一步,如果加密了呢?目前作者掌握的情况来看,StealthWatch硬件产品可能是一种比较好的选择,它完全摈弃了基于签名的工作模式,而是采用一种正在申请专利的基于flow-base构架策略,按照几家评测实验室的结果来看,可以有效的察觉已经公开和未公开的各种攻击,Dos,蠕虫,病毒等,甚至包括加密的通讯!但是,它的价钱也远远的超出了普通的商用IDS系统,一套齐备的设施需4万美元!具体效果作者目前没有条件测试。(请参阅参考资料)

总结 
在我们的试验中,httptunnel同时逃过了防火墙的屏蔽以及入侵检测系统的追踪,这是值得思考的。我们可以看到,网络安全仅仅依靠某种或某几种手段是不可靠的,尤其是对安全性要求很高的应用系统,同时对安全系统的盲目依赖往往会造成巨大的安全隐患
 
突破bt封锁    它给人们带来的便利是很明显的。也突破了传统的下载方式,真正的实现了“下载的人越多速度越快”,从一定程度上解放了服务器。但是人怕出名,猪怕壮,这句话一点都不加。树大招风的它惹怒了好莱坞。致使好多BT网站关门。

    最近传来香港法院全球首次裁定BT有罪。这引来很多不同观点的言论。最为突出的就是“菜刀论”。找不到那菜刀杀人的凶手,就治制造菜刀的师傅,这的确有悖常理。不可否认这种BT工具对网络的贡献。其实,BT在发布资源的时候还是很有效的,RedHat的最新版linux如果没有BT的帮忙不会在那么短的时间内,完成那么大的下载量。

突破网络封锁:BT下载技巧新使用教程(图)
BT

    BT软件比较出名的就有十几款,这足可以看出其受欢迎的程度。而Bit comet是BT软件中的姣姣者,Bit comet使用技巧的文章也偶尔会在网络中见到。这里笔者以自己这N年使用Bit comet的经验,简单地谈谈Bit comet一些小技巧。

    突破网络封锁(一) - 正确设置监听端口

    BT下载有其独特的魅力,但也让运营厂商或者学校头疼,因为其占用了大量的网络带宽,使整个网络变得缓慢。因此运营厂商或者学校即将开始或已经开始封杀某些BT网站或者端口。例如,笔者所在的学校就将5Q给封掉了。正所谓“上有政策,下有对策”,我们可以发掘Bit comet的其它功能,以突破BT封锁。

    运行Bit comet,选择“选项”。在“选项对话框”中选择“网络连接”,在其右下角,点击“选择随机端口”或直接更改“监听端口”。

突破网络封锁:BT下载技巧新使用教程(2)
正确设置监听端口

    为什么要这样做?

    理由:BitComet无论进行多少任务只使用一个监听端口,监听端口号可以随意。不监听端口也可以,但会大大降低上传和下载的速度。由于现在ISP大量封6881-6889 8881-8889,16881-16889端口,所以这个监听端口最好避开这3段。

    突破网络封锁(二) - 代理服务器也很重要

    监听端口只是成功的开始,接下来的这一步才是最重要的。选择“选项”对话框的“代理”。在“代理服务器类型”的下拉菜单中可以选择“Socks4”、“Socks4a”、“Socks5”、“HTTP1.1”等,这里以“HTTP1.1”为例,填好服务器和端口。

突破网络封锁:BT下载技巧新使用教程(2)
代理服务器也很重要

    这里需要注意的是,一定要将“仅对HTTP连接使用代理(Tracker服务器的连接)”前面的钩打上。如此就可以仅在连接服务器获得IP信息的时候使用代理,而在平时下载时提交的是自己的代理。这样做就是只用代理从服务器获得连接IP的信息,在下载的时候依然用自己的IP,速度会更快一些。

    突破网络封锁(三) - 打开DHT网络

    BT并不是真正的无Tracker运行,它需要从服务器获得IP信息,从Bit comet 0.59版本开始支持DHT网络,这使得BT下载更加便利,即便无法连接到服务器(严格意义上应该称之为种子服务器)也同样可以获得IP信息,完成整个下载过程。

突破网络封锁:BT下载技巧新使用教程(2)
打开DHT网络

    其实,只要你使用Bit comet 0.59版本或以上,默认状态都是打开DHT网络的。建议做种的时候尽量选择支持DHT网络。

    以上这三步搭配使用,可以让你肆无忌惮地使用BT下载。

    BT从诞生的那一天就背负着“损害社会主义硬盘”的罪名,笔者对此不屑以顾。正所谓众口烁金,积毀销骨,很多用户对此望而却步,不敢使用了。其实,进行一下简单的设置可以将BT对硬盘的损耗降到最低。

突破网络封锁:BT下载技巧新使用教程(3)
缓存设置保护你的硬盘

    这里笔者按照设置“虚拟内存”的经验,将其最大和最小值均设置为“256M”。其实,设置多大合适,这取决你的系统内存,以及网络速度。

突破网络封锁:BT下载技巧新使用教程(3)
缓存设置保护你的硬盘

    磁盘缓存的设置可以参看此处每秒读写次数来设置磁盘缓存,以及自身系统的配置来决定。

    应用小技巧 (上) - 下载前要注意下面的问题

    第一,一开机自动开始下载任务。相信很多BT爱好者,每天关机后都有没有完成的任务,有的时候一个任务需要几天才能完成,而每次开机又总忘记先打开BT。怎么办呢?其实,简单地设置一下,就可以让BT软件随着电脑启动,一开机就开始下载,免去重复操作的麻烦。

突破网络封锁:BT下载技巧新使用教程(4)
下载前要注意的问题

    注:将上面两个红圈内选项选中即可。笔者通常会将默认的“启动时显示欢迎页面”去掉,这样可以尽量地少些打扰。

    第二,确保下载完整,即时终结上传。相信有好多BT爱好者都碰到过,辛辛苦苦下载回来的电影看不了,或者软件打不开,怎么回事?其实,BT并不像HTTP或者FTP那么严格的协议,其数据丢失的可能性还是很大的。此时,我们不必将文件删除重新下载,只要在BT中选择文件,单击右键,选择“重新检查完整性”即可。为了确保万无一失,有没有一劳永逸的方法呢?看看下面的设置你就会明白了。

突破网络封锁:BT下载技巧新使用教程(4)
下载前要注意的问题

    注:笔者一般选择上传“120%”就自动停止上传,这样做也是对BT用户的一种回馈,同时也可以保证自己另外的下载不至于耽搁。不过,当下载完成时上传超过120%,此设置并不管用,需要自己手动终止任务。

  应用小技巧 (下) - 让下载再快一些!

突破网络封锁:BT下载技巧新使用教程(5)
让下载再快一些

    第三,加快服务器的连接速度。连接更多的服务器可以获得更多的IP信息,也就是说可以得到更多的资源。下载的速度和这关系很大,一个种子中往往包括N个服务器的信息,全部都连上是我们完整并快速下载的保证。

突破网络封锁:BT下载技巧新使用教程(5)
让下载再快一些

    第四,当然你也可以通过它来完成更多的设置,如下载完成后关机,这样读者就可以放心的把任务交给电脑来完成了,而不必耽误自己的美梦。

  总结 - 建议您一定要下限速破解

    Bit comet是一个不错的P2P软件。在使用的过程中适当的设置一下,可以事半功倍。    如果你使用的Windows XP SP2的操作系统,最好下载一个破解TCP连接数量的补丁,否则在下载的过程中,打开网页会非常的慢或者根本大不开。虽然Bitcomet从.59开始就解决了这个问题,但是安装后还是有明显的改善。

    从Bitcomet 0.59开始支持DHT网络,但是其也有一个令人讨厌功能——限制下载速度为600K(在连接某些网站时,如5Q)。笔者建议安装破击此限制的补丁。

    笔者建议安装Bit comet 0.60,最好是绿色免安装,这样可以免去重装系统后,还需重新安装BT软件的麻烦。最后,祝愿大家BT路上,一路凯歌!!!

 
用Foxmail突破附件限制   问:我经常需要使用Foxmail 5.0收发大量的带附件的邮件,但是免费邮箱都对附件大小有限制,而且不同的邮箱对于附件大小的限制也不同,这就为我收发附件带来了不便,请问有没有办法突破免费邮箱对附件大小的限制?(电脑知识网推荐)
  答:免费邮箱对于附件的大小都有限制,但是对于文本的大小没有限制,因此可以把附件转化为文本格式发送,有一些软件可以实现这类转换,在这里我就介绍一下使用Foxmail 5.0本身的功能来实现这一转化的方法:按照通常的方式撰写邮件,添加附件并保存。打开发件箱,选中刚刚保存的邮件,在菜单栏中选择“文件→导出邮件”,保存类型选择为“文本文件(.txt)”,保存到桌面。
  打开保存在桌面上的邮件文本,按“Ctrl+A”全选、“Ctrl+C”复制。在Foxmail 5.0中重新写邮件,把复制的内容粘贴进去、保存。然后就可以发送这封邮件了。
  在对方收到这封邮件后,可以把信的正文全部选中复制,然后粘贴到记事本中,保存为“邮件.eml)。再使用Foxmail打开收件箱,依次选择“文件→导入邮件”导入“邮件.EML”就可以看到第一步中写的那封信了。