Tor 介绍
Tor(
The Onion Router)是第二代洋葱路由(onion routing)的一种实现,用户通过Tor可以在因特网上进行
匿名交流。最初该项目由
美国海军研究实验室(US Naval Research Laboratory)赞助。
2004年的后期,Tor成为
电子前哨基金会(Electronic Frontier Foundation,
EFF)的一个项目。
2005年后期,EFF不再赞助Tor项目,但他们继续维持Tor的官方网站。 一.纸上谈兵——Tor工作原理分析 我们首先将对Tor的工作原理进行介绍。就像我们出门一样,去东边要走东城门,去西边就要走西城门。我们的软件与别人联系也要走城门(端口),如用QQ聊天时,你在QQ里打一行字,选择发送,QQ就会把这行字转为数据包裹送到城墙边上(防火墙或网关服务器),然后他会寻找第8000号城门(端口),并穿过这个城门,将数据发给你的好友。但是如果黑心的网管不希望你用QQ聊天,他可以关闭第8000号城门,这样你的数据包裹会被城门挡住,你的聊天信息也就发不出去了。为了解决这个问题,网上出现了帮助转发包裹的好心人(代理服务器)。例如,我们在QQ中设置代理服务器地址为:202.106.0.20,端口为:8080,则再用QQ发送信息时,QQ将包裹送到城墙边上后,不会再去8000号城门吃闭门羹,而是转走8080号城门,并将包裹送到网络上地址为:202.106.0.20的那台机器上,这台机器再通过它自己的8000号城门将信息转给你的好友。这个机器就叫做代理服务器。 不过水平稍微高一点的网管,可以在端口上加入包过滤的功能。即他会安排哨兵把守所有城墙上的城门(防火墙或网关服务器端口),他们不再禁止你将数据包裹运到城外。但是,所有经过城门的包裹都必须经过他们的检查,他们会将所有的包裹都拆开,查找里边是否有敏感数据(如QQ的数据包裹可能会包含Tencent),凡是包含敏感数据的包裹都会被这些哨兵拦截,即使你使用代理服务器,也无法躲过哨兵的检查。 为了解决这些问题,Tor诞生了,Tor的工作示意图如图1所示。图中标有“+”号的机器为Tor的转发点,这些转发点形成了一个内部的环路,这些机器之间的数据包裹发送都经过加密。你在机器上安装了Tor的客户端软件后,你再聊QQ的过程就变成了,你的QQ首先将数据包裹发给本机的Tor代理服务器,Tor会将这些数据包裹进行加密保护,然后再送到有哨兵把守的城门,由于数据包裹已经经过加密,所以哨兵无法看到包裹中的敏感信息,就只好放行。由于包裹加过密,无法直接发给你的好友,Tor会先将其发给Tor环路中的一个转发节点,并由这个节点继续转发。经过几次转发后,最后的一个Tor转发点会将你的数据包裹翻译成明文,并发给你的好友,你的好友的回复信息则按照原路返回。 图1 Tor工作示意图 Tor的工作机制给我们带来两大好处,Tor自动维护网络中的转发节点,你不需要再花费精神去寻找网络上可用的代理服务器了;而且由于数据发送是加密的,霸道的网管员将无法再封杀你,也无法知道你发送数据的具体内容。 二、安营扎寨——安装与配置Tor 了解了原理,我们就开始实践一下吧,Tor分为客户端和服务器端,服务器端就是我们上边提到的转发点,客户端则用来连接服务器端,它也是我们用来匿名上网的好助手。 1.安装Tor 如果你只是使用Tor的客户端,则配置工作非常简单,运行下载下来的安装包,安装非常简单,一路Next即可,安装完成后双击桌面上的“Tor”快捷方式,此时会弹出一个命令行提示窗口,如图2所示。稍等片刻即可看到Tor成功建立环路的提示。 图2 Tor成功运行的提示 此时Tor通常会连接3台网络上的转发节点,并在本地打开了9050端口的Socks5服务。当然连接服务器的数量和IP都会随着时间的变化而变化。如果你觉得总开这么一个黑窗口很难看,可以将Tor以后台服务的方式来运行,选择“开始→运行”输入:cmd,回车后打开命令行提示窗口,然后定位到Tor的安装目录,以默认安装为例,则输入:cd C:\”Program Files”\Tor或回车,然后再输入: tor -install tor -service start 这样设置后,你每次开机,程序都会在后台运行,你可以在运行中输入:services.msc,在里边查看Tor服务的运行状况,输入:tor -stop可以停止服务;输入:tor -remove则可取消其按照服务的方式运行,但是你必须先停止手动这个服务。 2.为Tor配置界面 如果你觉得对着命令行的黑白窗口过于枯燥,你还可以尝试使用Tor的一些界面插件,例如:Tor Tray,下载软件后将其拷贝到Tor的安装目录,双击运行,即可在右下角看到Tor的图标,如图3所示,在这个图标上单击鼠标右键,即可选择运行或停止Tor。 图3 Tor Tray运行或停止Tor 如果你觉得Tor Tray过于简陋,还可以尝试使用Tor Control Panel,它是Tor的一个图形控制界面,可以查看Tor的详细运行情况,以及流量等信息,安装过程也非常简单,唯一需要设置的地方就是,需要向软件指明Tor的安装路径,如图4所示。安装完毕后运行软件,即可看到Tor的运行日志,如图5所示。 图4 指明Tor的安装路径 图5 Tor Control Panel可显示Tor的详细日志 设置完成后,我们就可以利用Tor提供的代理功能上网了,以MSN的设置为例,打开MSN Messenger,选择“工具→选项”,在弹出的界面左侧选择“连接”,然后单击“高级设置”按钮,在“SOCKS”中输入:127.0.0.1,端口输入:9050,然后单击“测试”按钮,测试连接是否成功,如果提示成功,则说明你的MSN可以借助Tor上网了。 三、一个好汉三个帮——Tor辅助工具 比较让人郁闷的是,Tor只支持SOCKS代理协议,而我们的很多网络软件不支持SOCKS协议,或者干脆就不支持任何代理协议,这时我们就需要使用一些辅助工具以拓展Tor的功能。 1.为Tor增加HTTP代理 首先出场的是Privoxy,他可以帮助我们将HTTP代理协议转换成SOCKS代理协议,设置非常简单,首先安装Privoxy,运行软件,然后选择“Option→Edit main configration”,在弹出的配置页面顶端输入:forward-socks4a / localhost:9050 .(注意在9050后边还有一个英文的句号,不可省略),设置完成后重启一下Tor和Privoxy。然后再打开支持HTTP代理协议的网络软件,如:Firefox,在地址栏输入:127.0.0.1,端口使用:8118既可。测试Tor+Privoxy组合是否生效的方法是,访问网站:http://www.showmyip.com/cn/,如果左上角列出的IP地址与你实际的不符,则证明这个组合在正确的运行。 Privoxy会将你每一次对网络的访问操作都记录在它的日志当中,如果你的访问量较大,日志文件将非产大,我们可以里面可以关掉日志记录,具体操作方法是,选择“Option→Edit main configration”,搜索里边的:logfile privoxy.