Via 编程随想的博客
TOR 是一个很老牌的翻墙工具,也是俺在博客中推荐的第一款翻墙工具——当时正赶上朝廷的60大寿,GFW 加强封锁,俺就写了一篇《“如何翻墙”系列:戴”套”翻墻的方法》,算是 TOR 的入门教程。
  
4年过去了,虽然新的翻墙工具不断涌现,但 TOR 的影响力和用户数仍然持续增加——很多人不仅仅是用 TOR 来翻墙,更是用 TOR 来隐匿自己的上网行踪。在这期间,俺也收到很多读者来信/博客留言,询问关于 TOR 的各种问题。甚至有热心读者建议俺专门写一篇博文,聊聊 TOR 的高级话题。

为了帮大伙儿更好地使用 TOR,今天再发一篇教程,解答 TOR 的各种常见问题。

不见图 请翻墙

★TOR 是什么?

TOR 是洋文 (The Onion Router)的缩写,中文又称”洋葱网络/洋葱路由”。简单而言,这是一款专门设计用于隐匿上网身份的工具。

TOR 的官网在”这里“。关于 TOR 的更详细介绍,请看维基百科的”这里“。

★哪些网友需要使用 TOR?

前面说了,设计 TOR 的主要目的是为了上网隐匿身份。所以,跟其它的翻墙工具不同——它的重点功能是”隐 匿性”,”翻墙”只是顺带的功能。

具有如下特点的用户,可以考虑使用 TOR。

◇为了隐匿自己所在的国家

比如有些视频网站为了版权的原因,会限制某些国家的IP,那么你可以利用 TOR 来伪装成别国的网民,就可以绕过视频网站的版权限制。

◇为了隐匿自己的公网IP

比如你想在网上发布敏感的政治言论,那隐匿公网IP是避免被跨省追捕的必要条件。(提醒一下:隐匿公网IP只是必要条件,不是充分条件,要避免被跨省,需要考虑多个层面的防范,具体请看《如何隐藏你的踪迹,避免跨省追捕》系列博文)。
  
像俺这种长期抹黑朝廷的博主,TOR 是上网的必备工具。俺即使访问国内网站,也要走”基于TOR的多重代理”。(关于”多重代理”后面还会提到)

◇为了保护隐私

刚才已经说了 TOR 的特点,在隐私保护方面,TOR 优于其它的翻墙工具。为了说明 TOR 在隐私方面的优点,拿 TOR 跟 VPN 做一个对比。

很多网友使用 VPN 翻墙,而且长期使用固定的 VPN 提供商。万一 VPN 提供商在 VPN 服务器上记录你的上网行为,那你的所有上网行踪就暴露无遗。

而如果使用 TOR,就可以大大降低这种风险——具体原因,下面会聊。

★软件安装方面的问题

◇Vidalia 跟 TOR 是啥关系?

TOR 本身只提供命令行,没有图形界面。Vidalia 是专门为 TOR 量身打造的图形界面。

在 Vidalia 的图形化界面上,你不但可以配置各项参数,还可以监控 TOR 的流量和 TOR 的线路(后面会提到)。

◇如何获取 TOR 的软件包?

关于这个问题,在 2009 年的入门教程《“如何翻墙”系列:戴”套”翻墻的方法》中已经介绍过,此处不再罗嗦。

◇应该选择哪个安装包?

先说明一下,TOR 是跨平台的。同时支持主流的:Windows、Linux、Mac OS X。

在 TOR 官网有两个下载页面,分别如下:

https://www.torproject.org/download/download-easy.html.en
(这个是面向菜鸟用户的,每个操作系统只提供一个下载链接)

https://www.torproject.org/download/download.html.en
(这个是面向高级用户的,每个操作系提供多种软件包供你选择)

后一个链接提供的 多种选择,俺稍微解释一下。

Tor Browser Bundle
这个软件包捆绑了 Firefox 浏览器(对于2.3.25之后的版本,监听端口改为9150)。
Vidalia Bridge Bundle
这个软件包没有捆绑 Firefox,是用来搭建一个网桥(监听端口是9050)。
Vidalia Relay Bundle
这个软件包没有捆绑 Firefox,是用来搭建一个中继节点/中转节点(Relay 和 Bridge 的区别,下面会说)。
Vidalia Exit Bundle
这个软件包没有捆绑 Firefox,是用来搭建一个出口节点(啥是”出口节点”,下面会介绍)。
Expert Bundle
这个软件包是面向高级用户,只有赤裸裸的 TOR,没有其它额外的东西(没有图形界面)。

估计很多人都不习惯使用 TOR 内置的 Firefox 浏览器。这种情况下,你可以考虑使用 Vidalia Bridge Bundle 这个软件包。它比较小(不到10兆),而且你可以在自己的浏览� ��上设置代理,不需要使用 Tor Browser Bundle 内置的 Firefox。

◇Bridge 和 Relay 有啥区别?

Bridge 中文就是”网桥”。tor 的网桥是一种特殊的中转节点。它跟其它中转节点的差异在于:普通的中转节点,其信息会被加入到 TOR 在全球的目录服务器,所以普通的中转节点会被所有的人看到,并用来进行流量中转。

而你自己搭建的网桥,其信息不会被加入到全球的目录服务器——只会被你自己所用。

◇Linux 用户如何获取软件包?

因为 TOR 的名气大,那些主流的发行版基本上都提供 TOR/Vidalia 的软件包。如果你用的是主流的发行版,直接用系统的软件包管理工具,就可以自动安装/自动升级 TOR 和 Vidalia。

★浏览器方面的问题

◇如何配置浏览器的代理?

(如果你使用的是 Tor Browser Bundle 内置的 Firefox,就无需再额外配置浏览器代理了)早先的 TOR 客户端同时提供 HTTP 代理和 SOCKS,大概从 2013年开始,新版本的客户端不再提供 HTTP 代理了。所以原先的 8118 代理端口也就废弃了。
  
今后大伙儿需要用 TOR 提供的 SOCKS 代理来上网,端口号如下:
9150(2.3.25版本之后的 Tor Browser Bundle 软件包)
9050(其它的软件包)

Firefox的代理设置如下图(至于 Chrome、IE、或其它浏览器,列位看官请依样画葫芦):

不见图 请翻墙

(顺便说一下:SOCKS 代理其实比 HTTP 代理更好,关于两者的差别,俺抽空写一篇扫盲)

◇如何判断自己的浏览器是否在走 TOR 的线路?

TOR 官网提供了一个测试界面,网址是 https://check.torproject.org/ 猛击该超链接,会打开一个界面。

如果你的浏览器已经在使用 TOR 的线路,会出现一个绿色洋葱头,以及一行绿色的洋文提示。
  
如果你的浏览器没有走 TOR 的线路,会出现一个带红色打叉的洋葱头,同时还有一行红色的洋文警告。

◇Tor Browser Bundle 内置的 Firefox,有啥特殊之处?

这个内置的 Firefox 跟普通的 Firefox 有如下几个差异:

1. 版本差异

这个内置的 Firefox 采用 Mozilla 官方提供的长期支持版本(洋文叫 ESR),而不是最新版本。
因为最新版本总是会增加很多新功能,可能会引入潜在的安全漏洞;而 ESR版本 相对而言比较稳健。

2. 配置差异
这个内置的 Firefox 专门进行了一些安全方面的定制(比如禁用 JavaScript)

◇为啥 Tor Browser Bundle 内置的浏览器无法看视频?

因为这个内置的浏览器没有装 Flash 播放插件。而大多数视频网站需要 Flash 插件来播放视频。

★隐私方面的问题

这一节是本文的重点,看仔细喽。

◇TOR 客户端如何建立联网的线路?

如果你比较好奇,为啥 TOR 的隐匿保护好于其它翻墙工具?那么有必要了解一下 TOR 客户端的联网机制。下面这三张图来自 TOR 的官网。因为图片中是洋文说明,俺稍微修改了一下,注上中文。

不见图 请翻墙

第1图:当 TOR 客户端启动之后,会首先连接 TOR 的目录 服务器。从目录服务器中获取全球的 TOR 节点信息。

不见图 请翻墙

第2图:假设你要访问 网站1,那么 TOR 客户端会随机挑选三个节点用于中转。

为了打字方便,俺把这三个节点分别称为:

入口节点

如果你仅仅使用 TOR 联网,该节点直接跟你的电脑相连;如果你使用双重代理,入口节点跟你的前置代理相连。

中间节点

介于入口节点和出口节点之间(这个节点的威胁最小)。

出口节点

该节点直接跟你访问的目标网站相连(这个节点的威胁最大)。

这三个节点中,只有”出口节点”会看到你的”上网行为”(图中标红色的线,表示 TOR 节点会看到“原始流�量”)。

所谓的”上网行为”包括:你访问了哪个网站,你从网站传输的流量。

如果这个网站使用加密的 HTTPS 协议,”出口节点”看到的”原始流量”是 HTTPS 的密文,没啥关系;反之,如果这个网站使用明文的 HTTP 协议,那么”出口节点”会看到你从该网站发送/接受的内容(这是主要风险点)。
除了”出口节点”,其它节点完全无法知道你的上网行为(图中标绿色的线,表示 TOR 节点看不到“原始流量”)。

不见图 请翻墙

第3图:TOR 为了加强隐匿性,会动态变化中转线路。也就是说,每隔一段时间(约10分钟),就会随机挑选三个节点,重新构造一条传输线路。

因为线路动态变化,”出口节点”自然动态变化。所以,即使”出口节点”偷窥你的上网行为,也只能看到一个短暂的片段。

◇TOR 节点是否会偷窥到自己的隐私/上网行为?

如果你弄懂了前一个问题的三张原理图,那你自然就知道,只有”出口节点”会看到你的上网行为

◇如何避免 TOR 节点看到你的上网行为?

前面说了,”上网行为”包括两部分:

1. 你访问了哪个网站
2. 你从网站传输(发送、接受)的流量

对于第1点,是无解的!

不管采用哪种工具来隐匿行踪,最终,你都需要有某个”主机”帮你把数据送到你要访问的网站。所以,这个”主机”必然就知道你访问了啥网站。

对于第2点,是有解的。

主要方法就是:尽量采用 HTTPS 协议。比如像维基百科,同时支持 HTTP 和 HTTPS。那么你就应该采用 HTTPS 方式访问。这种情况下,TOR 的”出口节点”只知道你访问了维基百科,但是无法知道你访问了哪个页面。

◇如何知道正在使用哪些中转节点?

关键是看 Vidalia 的”网络地图”。在 Vidalia 的主界面(控制面板)上,直接就有”网络地图”的按钮。你点了这个按钮之后,会出现如下界面。

相关的说明,俺已经标注在图中。

不见图 请翻墙

在右下方的那个框中,会列出线路中的三个节点,依次是:入口节点、中间节点、出口节点。

◇什么是”陷阱节点”/”蜜罐节点”?

某些国家(比如咱们天朝)的政府会设置”蜜罐节点”。所谓的”蜜罐节点”,通俗的说,就是陷阱。
 
如果你使用的线路中,”出口节点”正好是蜜罐,那么该蜜罐就会窥探到你的上网行为——前面已经说了,出口节点肯定会知道你的访问了哪个网站。并且,假如你访问的目标网站没有 HTTPS 加密,蜜罐就会知道你浏览的页面内容。

◇如何避免”陷阱节点”/”蜜罐节点”?

比较简单的做法,就是通过修改 TOR 的配置文件,规避这些不安全国家的节点。

对于天朝的网友,你至少需要屏蔽”大陆、香港、澳门”这三个节点。因为这三个地区都可能被六扇门设置蜜罐。

TOR 的配置文件名叫 torrc,这是一个文本文件,用记事本就可以打开。(如果你找不到该文件,在系统盘中搜索一下 torrc 这个文件名)

在该文件末尾,加入下面这行(ExcludeNodes 表示排除这些国家/地区的节点,strictnode 表示强制执行)。

ExcludeNodes cn,   hk,mo
strictnodes 1

关于 strictnode,俺补充说明一下:

如果不设置 strictnode 1,TOR 客户端首先也会规避 ExcludeNodes 列出的这些国家。但如果 TOR 客户端找不到可用的线路,就会去尝试位于排除列表中的节点。

如果设置了 strictnode 1,即使 TOR 客户端找不到可用的线路,也不会去尝试这些国家的节点。

除了上述三个地区,还有几个国家跟天朝串通一气。如果你对安全性的要求比较高,可以把这些国家也列入 TOR 的排除节点列表。

下面给出这些流氓国家的代码,你依样画葫芦加入到 ExcludeNodes 那一行,国家代码之间用逗号分隔。

北朝鲜  kp
伊朗  ir
叙利亚  sy
巴基斯坦  pk
古巴  cu
越南  vn

◇TOR 的加密流量能否被破解?

根据斯诺登曝光的材料,NSA 目前具备的运算能力,可以解密很大一部分 TOR 流量。

因为目前的 TOR 中继服务器,大部分还在使用 1024 位的 DHE 密钥,这类密钥虽然普通人难以破解,但是 NSA 掌握的运算能力可以在几小时内暴力破解。目前只有 10% 左右的中继服务器采用 ECDHE 密钥(基于椭圆曲线)。这类 ECDHE 密钥 NSA 比较难破解(更多介绍请看”这篇报道“)。

至于天朝方面,肯定没有 NSA 这么牛的破解能力。所以天朝的同学们,咱们暂时还不用担心这个问题 :)

另外,等到大部分中继服务器升级到 2.4 版本,ECDHE密钥 的使用就会普及,到时候这个风险会减低。

◇啥是流量关联分析?

先声明:流量关联分析有很 多种。这里说的是”针对TOR的流量关联分析”。

“关联分析”是数据挖掘的一种手段——先积累足够多的数据,然后通过某种算法找出数据之间的某些相关性特征。考虑到数据挖掘不是本文的主题,就不深入介绍了。

简单而言,如果某个攻击者能够监控你接入 TOR 网络的流量(入口节点之前的流量)以及你离开 TOR 网络的流量(出口节点之后的流量)。那么经过足够长时间的数据积累,攻击者就可以利用数据挖据猜测出:某些网络行为其实是来自某个公网IP的用户。

  举例:

如果你仅仅使用 TOR(没用双重代理)联网,然后经常到 A网站 发敏感言论。
假设1:
如果 GFW 对所有的 TOR 流量都做了记录(这只是假设,到底有没有,俺不晓得)
假设2:
A网站 对所有的用户留言做了记录(很多的国内网站都会记录)
假设3:
朝廷可以获取 A网站 的用户访问记录(只要是国内网站,朝廷肯定能拿到;至于国外网站,要看情况)
假设4:
朝廷针对 TOR 部署了关联分析的系统(这只是假设,到底有没有,俺不晓得)

如果上述这 N 个假设同时成立,那么,经过足够长时间的积累(具体需要多长时间,取决于你发帖的频繁度),关联分析系统可以猜测出你是谁。

◇如何规避(针对TOR的)流量关联分析?

要规避”针对 TOR 的流量关联分析”,目前最直接有效的方法是:多重代理。因为一旦用了多重代理,TOR 的流量类型就被掩盖掉了。

比方说:如果你使用 VPN+TOR,那么你的 ISP 监控你的流量,看到的是 VPN 流量——(因为 VPN 加密)ISP 看不到你的 TOR 流量。在这种情况下,流量关联分析 的难度大大提高了。

除了”针对 TOR 的流量关联分析”,还有其它的流量分析技术。考虑到篇幅,就不深入介绍了。等俺有空,单独写一篇博文,专门聊这个话题。

★双重代理方面的问题

如果你对”双重代理”还不太了解,请先看俺之前的博文《如何隐藏你的踪迹,避免跨省追捕[5]:用多重代理隐匿公网IP》。

◇为啥要使用双重代理?

俺总结了如下几个原因:

原因1

因为 TOR 的影响力很大,GFW 对 TOR 进行重点封杀。全球大多数的 TOR 中继节点都被 GFW 列入 IP黑名单。所以天朝的网友,如果单独使用 TOR,很难联网成功。这种情况下,就需要使用双重代理。

原因2

所有的软件都可能有缺陷(TOR � ��不例外)。如果你仅仅使用 TOR,万一 TOR 出现安全漏洞并且被攻击者利用,那么攻击者就有可能对你进行逆向追溯(说不定能追溯出你的真实公网IP)。

而如果使用多重代理,即使出现上述风险,攻击者也只能追踪到 TOR 的前置代理,而不会直接追踪到你本人。这样一来,风险大大降低。

原因3

前面提到,全球的 TOR 网络中可能会有陷阱节点。虽然你可以利用俺刚才介绍的方法,排除危险国家/地区的节点,但并不能确保万无一失。

比如说你碰到某个小概率事件——你使用的线路上,碰巧三个节点都是陷阱——这种情况下,你的真实公网IP会暴露。

但如果你用了双重代理,即使碰到这种小概率事件,只会暴露你使用的前置代理服务器的IP,而不会暴露你的本人的公网IP。

举例:

一个月前,美国地下网络”丝绸之路”的站长被 FBI 逮捕。他一直使用 TOR,为啥会暴露?
因为他没有使用双重代理。而 FBI 利用 NSA 的技术(据传闻是流量关联分析技术),再加上 FBI 本身也设置了蜜罐节点,最终定位了”丝绸之路”站长。

原因4

刚才介绍了针对 TOR 的”流量关联分析”。如果你使用双重代理,会降低被关联分析的风险。

◇哪些工具可以跟 TOR 组合双重代理?

大部分翻墙工具都可以跟 TOR 组合。比如:所有的 VPN,无界、自由门、赛风、世界通、等等。

另外,你也可以使用公网上的一些代理服务器(公共代理),用来跟 TOR 组合成双重代理。前提是:这些”公共代理”支持 HTTPS 代理或 SOCKS 代理。

如何用 TOR 组合”公共代理”,请看《2012年9月翻墙快报(兼谈复活TOR的方法)》。

◇为啥 GAE 翻墙工具无法跟 TOR 组合成双重代理?

貌似 GAE 的翻墙工具,都只提供 HTTP 代理,没有提供原生的 HTTPS 代理。而 TOR 客户端需要使用 HTTPS 跟中转节点进行数据传输。

◇为啥 GoAgent 无法跟 TOR 组合成双重代理?

GoAgent 也是 GAE 翻墙工具的一种,请参见前一个问题的解答。

★其它方面的问题

◇为啥要使用虚拟机?

虚拟机是为了进行网络隔离,确保你本机的软件总是经过代理联网,而不会直接联网——直接联网可能会导致你的公网IP暴露。

具体的原理图,请看《如何隐藏你的踪迹,避免跨省追捕[6]:用虚拟机隐匿公网IP原理介绍)

举例:

前几个月,美国 FBI 为了打击儿童色情,逮捕了 TOR 匿名托管服务 Freedom Hosting 的负责人。然后 FBI 在该服务器上设置了木马。
该木马会利用 TOR 内置的 Firefox 浏览器的一个安全漏洞,来收集 TOR 用户的真实公网IP。
(木马会向 FBI 的服务器发送一个信息,FBI 的服务器就会记录下发送端的 IP。如果没有虚拟机,这个直接联网的企图就得逞了)。

如果你之前没用过操作系统虚拟机,可以先看俺写的系列教程《扫盲操作系统虚拟机》。

◇啥是 obfs / obfsproxy?

这玩意儿也是 TOR 官方提供的工具,主要是用来混淆 TOR 的流量。

因为 TOR 的名气太大了,很多网络监控系统(比如天 朝大名鼎鼎的 GFW)可以根据网络传输内容,判断该流量是否为 TOR 的流量。如果是 TOR 流量就进行阻断。
(请注意:”判断流量类型” 不等于 “解密内容”)。

为了应对这类威胁,TOR 官方提供了一个额外的工具,用来混淆流量,让监控系统识别不出。原理图如下:

不见图 请翻墙

虽然有 obfsproxy 这个工具,但是俺本人不提倡用它——俺依然提倡用双重代理。双重代理的优点刚才分析过,此处不再罗嗦。

★结尾

本文写得有点仓促,涉及的问题未必覆盖到方方面面。如果你觉得本文还有哪些问题没有覆盖到,欢迎到俺博客留言。

俺博客上,和本文相关的帖子(需翻)
如何翻墙(传说中的翻墙入门教程,不定期更新)
“如何翻墙”系列:戴”套”翻墻的方法
如何隐藏你的踪迹,避免跨省追捕
扫盲操作系统虚拟机


版权声明

本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者”编程随想“和本文原始地址。

学习翻墙

用国外邮箱发信给help_gfw@yahoo.com即可收到翻墙教程
如有其它问题,用program.think@gmail.com联系俺

获取最新穿墙软件?请发电邮(建议用gmail)到:cdtcaonima@gmail.com。《中国数字时代》开通IPv6,欢迎穿墙阅读。翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)

本文由自动聚合程序取自网络,内容和观点不代表数字时代立场

墙外新闻实时更新 欢迎订阅数字时代