常见问题

当然可以!我们有维护洋葱路由中继节点的组织清单,他们都愿意接受捐款以为洋葱路由网络提供更高的网速以及更好的匿名性。

虽然这些组织和Tor Project并不一样,但我们仍认为这是一件好事。 他们被一些同样来自 Tor 大家庭的优秀人才运营着。

您必须要了解,匿名性需要以性能为代价。 Tor 网络的匿名性部分得益于其多元化的特点,所以如果您有能力架设您自己的中继节点的话,您对 Tor 的匿名保护机制的贡献将比直接捐款更大。 但是从另一方面来看,通过收集大量的小额捐款来支持少数几个较大的中继节点的策略,对于提升网络带宽的整体经济效益的效率将会更有效一些。 提高匿名性或是提高整体效率都是大有裨益的目标,所以您可以自由的选择您为社群贡献的方式!

Tor 浏览器防止人们获知您访问过的网站。 有些机构,例如您的互联网服务提供商,也许会知道您正在使用 Tor 。不过他们将不会知晓您正在使用 Tor 做些什么。

Tor 浏览器可以帮助人们访问所在地区被封锁的网站。 大多数时候,只需下载 Tor 浏览器,您就可以使用它去访问被屏蔽的网站。 在被严重监视的地区,我们提供许多规避监管的选项,譬如 可插拔传输

欲了解更多信息,请参见Tor 浏览器用户手册中关于审查制度规避的部分

强烈建议不要在 Tor 浏览器上安装新的附加组件,因为这可能会损害你的隐私和安全。

安装新的拓展可能会意外影响 Tor 浏览器,并使得您的 Tor 浏览器的浏览器指纹变得独一无二。 如果您的 Tor 浏览器副本拥有独特标记,您的浏览活动可以被反匿名并被追踪,即使您正在使用 Tor 浏览器。

简而言之,所有浏览器的设置与特性都会形成一个叫“浏览器指纹”的东西。 大多数浏览器不经意间为每一个用户创建独一无二的浏览器指纹,那可以被用来在全网追踪该用户。 Tor 浏览器经过专门设计,使其用户之间的指纹几乎相同(我们并不完美!)。 这意味着每一个 Tor 浏览器用户看起来都跟其他 Tor 浏览器用户一样,使得追踪一个单独的用户变得困难。

新的附加组件也有可能增加 Tor 浏览器遭到攻击的几率。 这可能会允许敏感信息被泄露或允许攻击者感染 Tor 浏览器。 甚至可能附加组件本身就被恶意设计用于监视您。

Tor 浏览器预安装了一个附加组件--NoScript--添加任何其他东西都可能使你去匿名化。

想要了解更多关于浏览器指纹的信息?在 Tor 的博客里有一篇文章介绍了有关它的全部信息。

Tor 浏览器目前在Windows, LinuxmacOS 上可用。

这里是 Tor 浏览器的安卓版本,The Guardian Project 也提供了 Orbot app,以在您的设备上通过 Tor 的网络路由其他应用。

There is no official version of Tor Browser for iOS yet, though we recommend Onion Browser.

通常来说完美的匿名性是不可能的,即使使用了 Tor。 然而,你可以通过一些方法来提升您在使用 Tor 或是处于脱机状态时的匿名性。

使用 Tor 浏览器以及针对 Tor 而特別设定的软件

当您使用 Tor 时,它并不会自动保护经过您电脑中所有的网络流量。 Tor 只能保护那些特別设置通过 Tor 传输网络流量的软件。

网页浏览:

文件浏览:

控制您通过网络表单提供的信息

当你使用 Tor 浏览器浏览网站时,他们不知道你是谁或你的真实位置。 不幸的是,有许多网站会在网页表单中要求您提供更多个人信息。 所以如果您登录了该网站,他们或许不知道您所在的地理位置,但是已经知道您的身份了。 此外,如果您填入了您的姓名、电子邮件、地址或电话等个人资料,对于该网站來说,您就不再处于匿名状态中了。 最好的防护措施就是要随时警惕,并且对于任何网页表单的填写都要特別留意。

不要在 Tor 上使用 BT

据观察,许多种子文件分享下载软件会忽视Tor的代理服务器设定,进而直接连上网络。 即使您的种子下载软件完全只通过Tor來联网,它仍然会时不时的通过tracker服务的GET请求对外发送您的真实IP地址,因为这就是种子下载软件的运作方式。 您这样做不仅会使您的 torrent 流量和您的其他同步 Tor 网络流量去匿名化,还会为其他人拖慢整个 Tor 网络。

不要允许或安装浏览器插件

Tor 浏览器会屏蔽 Flash、RealPlayer、Quicktime 等浏览器插件,因为它们可以被操纵来暴露你的 IP 地址。 同样,我们不建议在 Tor 浏览器中[安装额外的附加组件或插件](.../.../tbb/tbb-14/),因为它们可能会绕过 Tor 或以其他方式损害您的匿名性和隐私。

使用https版的网页

Tor 会对您进入 Tor 网络和在 Tor 网络内的流量进行加密,但对您所进入的最终目的地网站的流量的加密取决于该网站本身。 为了帮助确保对网站进行私人加密, Tor 浏览器内置 HTTPS-Only Mode,以对支持HTTPS的网站强制使用HTTPS加密技术。 然而,你仍然应该注意浏览器的URL栏,以确保您提供敏感信息的网站在地址栏中显示挂锁洋葱图标,在URL中包含https://,并显示正确的网站预期名称。 请看EFF的互动图形,解释了Tor和HTTPS的关系

在线时不要打开通过 Tor 下载的文档

在自动打开由外部应用程序处理的文件之前,Tor 浏览器会警告您。 不要忽略此警告。 在通过Tor下载文件时(尤其是DOC和PDF文件,除非你使用Tor浏览器内置的PDF查看器),你应该非常小心,因为这些文件可能包含恶意程序,会被打开它们的应用程序释放到Tor之外。 这将泄露你未使用 Tor 的 IP 地址。 如果你必须处理通过Tor下载的文件,我们强烈建议你使用一台断开连接的电脑,或者使用dangerzone来创建你可以打开的安全PDF文件。 然而,在任何情况下,同时使用BitTorrent 和 Tor是不安全的。

使用网桥和/或find company

Tor 会尽可能防止攻击者得知你连接的目标网站。 然而,在默认情况下,它并不能防止有人在监视您的互联网流量时得知您在使用 Tor。 如果这对你很重要,你可以通过配置 Tor 来使用网桥,而不是直接连接到 Tor 网络以降低这种风险。 总而言之,最好的保护是社会化的方法:您附近的 Tor 用户越多,他们的兴趣越多样化,您作为他们中的一员,就越不危险。 说服其他人也使用 Tor!

聪明一点,学习更多。 了解 Tor 做什么和不能提供什么。 这份隐患清单并不完整,我们需要你的帮助以确定并记录所有问题

通常情况下,除非你知道如何把 VPN 和 Tor 在不侵犯你的隐私的情况下一起配置,我们不建议将这两者配合使用。

您可以在我们的 Wiki 上找到更多有关 Tor 与 VPN 一起使用时的信息。

关于 Tor

如上所述,一个能够同时看到你和目的地网站或你的Tor退出节点的观察者,有可能在你的流量进入Tor网络和退出时将其关联起来。 Tor 并不能抵御这样的威胁模型。

在更有限的意义上,请注意,如果审查者或执法机构具有具体观察部分网络的能力,他们就可以通过观察两端的流量并关联该流量的时间来验证您经常与您朋友通讯的怀疑。 同样,这只对验证已经被怀疑的目标是否正在通信有用。 在大多数国家,获得搜查令所需的怀疑已经比时间上的关联性更有分量。

此外,由于Tor重用了多个TCP连接的电路,因此有可能在一个给定的出口节点将非匿名和匿名的流量联系起来,所以要小心你在Tor上同时运行的应用程序。 也许甚至为这些应用程序运行单独的Tor客户端。

Internet 通信基于存储转发模型,可以将其类比为邮件:数据以称为 IP 数据报或数据包的块的形式传输。 每个数据包都包含一个(发送者的)源 IP 地址和一个(接收者的)目的 IP 地址,就像普通信件包含发送者和接收者的邮政地址一样。 从发送者到接收者的路径涉及多跳路由器,其中每个路由器检查目的 IP 地址并将数据包转发到更接近其目的地址的下一跳。 因此,在发送者和接收者之间的每个路由器都知道发送者在和接收者通信。 特别是您的本地 ISP 能够建立您完整的网络使用情况画像。 此外,互联网上每台可以看到您任何数据包的服务器都可以分析您的行为。

Tor 的目标是通过一系列代理转发您的流量来提高您的隐私。 您的通信被多层加密,并经过 Tor 网络中的多跳路由至最终的接收者。 此过程的更多细节详见 可视化。 请注意,您的本地 ISP 现在只能观察到您正在与 Tor 节点通信。 相似的,互联网上的服务器只能看见它们在被 Tor 节点联系。

一般来讲,Tor 志在解决三个隐私问题:

首先,Tor 会阻止网站和其他服务了解您的位置,它们可以位置用来构建有关您的习惯和兴趣的数据库。 使用 Tor 时,默认您的互联网连接不会泄露您的信息——现在您可以为每个连接选择揭示多少信息。

第二,Tor 阻止人们在本地查看您的流量(如您的 ISP 或可以访问您家 wifi 或路由器的人),了解您正在获取哪些信息以及从哪里获取信息。 它还能阻止他们对您了解和发布信息的限制——如果您能访问 Tor 网络的任何部分,您就可以访问互联网上的任何站点。

第三,Tor 通过不止一个 Tor 中继路由您的连接,因此没有单个中继可以了解您在做什么。 由于这些中继由不同的个人或组织运行,分发信任比之前的 一跳代理 方法具有更高的安全性。

注意,在某些情况下 Tor 无法完全解决这些隐私问题:详见 仍存在的攻击 条目。

“Tor” 这一名称可用于多个不同的组件。

Tor 是一个您能运行在您的电脑上,保护您在互联网上安全的程序。 它会将您的通信在一个由多个中继站组成的分散网络内不断传递,这些中继站被来自世界各地的志愿者们运营,并以此来保护您:这阻止了某些人通过您访问了哪些网址来得知您的网络链接,也防止了您访问的网站获取您的地理位置。 这些由志愿者搭建的中继被成为 Tor 网络。

大多数人通过 Tor 浏览器使用 Tor。它是一个基于火狐浏览器开发的版本,并修复了许多隐私问题。 您可以在我们的关于页面了解更多信息。

Tor 项目是一个非盈利性(慈善)组织,它维护和开发 Tor 软件。

Tor 的全称是洋葱路由网络。 当我们在2001-2002年开始新的下一代洋葱路由的设计与实践时,我们会告诉人们我们正在搭建洋葱路由,然后他们会说“酷!哪一个洋葱路由?” 即使洋葱路由已经成为了一个标准的家庭条款,Tor 诞生于实际的由 Naval 研究实验室运行的洋葱路由项目之外。

(它还有优秀的德语和土耳其语翻译版本。)

注意:尽管它原本来源于一个缩写,Tor 不能被拼写成“TOR”。 只有首字母时大写的。 实际上,我们常常会发现一些没有读过我们网站的人(而是从新闻报道中了解了他们对 Tor 的一切知识)正在使用我们的服务,因为他们将其拼写错误。

不,它不会。 你需要使用另一个程序去理解你的应用和协议并且了解如何清除或者"擦除"它发送的数据。 Tor 浏览器尽力确保应用层数据,例如用户代理的字符串,对于所有用户都是一致的。 但是,Tor 浏览器无法对您输入到表单中的文本做任何更改。

一个传统的代理提供商会在互联网的某处搭建一台服务器并允许您使用它来中继您的流量。 这构建一个简单的,容易维护的架构。 所有用户都通过同一台服务器来通讯。 提供者可以对代理的使用进行收费,或者通过服务器上的广告来支付其成本。 通过最简单的配置,您不需要安装任何东西。 您只需要将您的浏览器指向他们的代理服务器。 如果您不希望在线保护自己的隐私和匿名性,并且您相信提供者不会做坏事,那么简单的代理提供者就是很好的解决方案。 一些简单的代理提供程序使用SSL来保护您与它们之间的连接,从而保护您免受本地窃听者的侵害,例如在带有免费wifi上网的咖啡馆中。

简易的代理服务商也可能会造成单点故障。 供应商知道您是谁,也知道您在互联网上正浏览什么。 在您的流量经过他们的服务器时,他们可以看见您的流量。 在某些情况下,当他们使你的加密流量依赖于银行网点或者电商商店,他们甚至可以看到你其中的加密流量。 您不得不信任您的供应商不监控您的流量,注入他们自己的广告或者记录您的个人信息。

在您的流量抵达目的地前,Tor将它传递通过至少三台不同服务器。 因为这三层中的每一层都附加了互相独立的加密,监视您的的网络连接的人将无法修改或读取你发送给 Tor 网络的信息。 您的流量在 Tor 客户端(在您的计算机上)与世界其他地方弹出的站点之间进行了加密。

第一台服务器不知道我是谁吗?

有可能。 三台服务器中的第一台服务器里的不良服务器可能会看到来自计算机的加密 Tor 流量。 它仍然不知道您是谁,也不知道您正在使用 Tor 做什么。 它仅仅能看到“这个 IP 地址正在使用 Tor”。 仍然可以保护您免受此节点的影响,因为它既无法确定您的身份,也无法确定您在 Internet 上的去向。

第三台服务器看不见我的流量吗?

有可能。 一个恶意的末端服务器可以看到三分之一的你发送给 Tor 的流量。 它不会知道是谁发送的数据。 如果您正在使用加密(例如 HTTPS 协议),它仅能知道目标地点。 请看这个Tor和HTTPS的动态演示,以了解Tor和HTTPS如何互动。

可以。

Tor 软件是免费软件。 这意味着我们给予您权力来再次分发 Tor 软件,无论是修改或未修改的版本,无论是收费或免费。 您不需要向我们要特殊许可。

但是,如果您想要分发 Tor 软件,您必须遵守我们的许可。 特别地,这意味着无论您要发行 Tor 软件哪个部分的发行版,您都需要把我们的[许可]文件和这个该发行版放在一起。

然而问我们这个问题的大多数人不仅仅想为 Tor 软件做出贡献。 他们想分发 Tor 浏览器。 Tor 浏览器内置Firefox 扩展支持版本和 NoScript 扩展。 你将需要遵守这些程序的许可。 这些分发的火狐拓展都 GNU 基本公共证书,而火狐企业版的发行则必须有火狐公共证书。 遵从他们的许可证的最简单方式就是把源代码包含进这些程序里面,只要你打包了这些软件。

同时,你应该明明白白地告诉你的读者:什么是 Tor?谁创造了它?它提供什么功能?(以及不提供什么)。 查看我们的商标常见问题来获取详细信息。

还有很多其他应用程序能与 Tor 搭配使用,但我们还没能彻底地研究这些应用的应用层面匿名性问题,因此我们无法推荐一个较为安全的配置方法。 我们的 Wiki 包含社区维护的 Torify 特定应用程序说明列表。 请补充这个名单,帮助我们保持它的准确性!

很多人使用Tor 浏览器,因为使用Tor来浏览网页能够保证一切安全。 将Tor与其他浏览器一起使用是[危险的,不建议这么做](.../.../tbb/tbb-9/)。

Tor 中完全没有后门。

我们知道一些聪明的律师,他们说在我们的司法权生效的地方(美国),不太可能有人让我们添加后门。 如果他们的确让我们这样做,我们会和他们抗争,(律师说)我们可能会赢。

我们永远不会在 Tor 中植入后门。 我们认为,在 Tor 中使用后门程序对我们的用户将是极为不负责任的,对于一般的安全软件而言,这是一个不好的先例。 如果我们故意在我们的安全软件中设置了后门程序,那会使我们的专业名誉受损。 此后就再也没有人会信任我们的软件了!

但是,尽管如此,人们仍然可以尝试进行攻击。 可能有人冒充我们,或破解我们的计算机,或类似的事情。 Tor 是开源项目,您应当总是检查源代码(或至少此版本和上个发行版的源代码之间的差异),以确认没有可疑的迹象。 如果我们(或者 Tor 的经销商)拒绝向您提供源代码的获取方式,那么这其中肯定有蹊跷。 你还应该检查发布的安装包上的PGP签名,以确保没有人在下载站上捣乱。

同时,Tor 中也可能会有意外性漏洞并影响您的匿名性。 我们定期发现并修复匿名性相关的漏洞,所以请确保您的 Tor 是最新版本。

Tor 在攻击者可以知晓其通信通道的两端时就会失效(与目前所有实用的低延迟匿名设计一样)。 例如,假如攻击者控制或监视了你选择进入网络的 Tor 中继,同时也控制或监视了你访问的网站。 在这种情况下,研究界并不知道有什么实用的低延迟设计可以可靠地阻止攻击者将两端的流量和时间信息进行关联。

那么,我们应该怎么做? 假设攻击者控制或能监视到 C 个中继。 并同时假设总共有 N 个中继。 如果你每次使用网络时都选择新的入口和出口中继,攻击者将能够以(c/n)2左右的概率对你发送的所有流量进行关联。 但是,对大多数用户来说,被剖析就和一直被追踪一样糟糕:他们想经常做一些事情而不被攻击者注意到,而被攻击者注意到一次和被攻击者注意到更多次都是一样糟糕的。 因此,选择许多随机的入口和出口会使用户无法逃脱这种来自攻击者的剖析。

解决的方法是 "入口守卫":每个 Tor 客户端随机选择几个中继作为入口点,并只使用这些中继作为他们的第一跳转。 如果这些中继没有被控制或监视,攻击者就不可能赢,永远不可能,而用户将是安全的。 如果这些中继被攻击者监视或控制,攻击者将会看到更多的用户流量——但用户仍然没有比以前更多的特征。 因此,用户仍然有一定的机会(在(n-c)/n的数量级上)避免被剖析,不使用 Tor 则完全没有规避的可能。

你可以在An Analysis of Degradation of Anonymous ProtocolsDefending Anonymous Communication Against Passive Logging Attacks,特别是Locating Hidden Servers阅读更多信息。

限制您的入口节点也可能有助于对付那些想运行几个 Tor 节点并轻松列举所有 Tor 用户 IP 地址的攻击者。 (尽管他们不能了解用户在与哪些目的地交流,但他们仍然可能仅凭一份用户名单就能做坏事。) 不过,在我们使用"目录保护"设计之前,这一功能并没有什么实际作用。

Tor使用各种不同的密钥,有三个目标。1)加密,以确保Tor网络内的数据隐私;2)认证,以便客户端知道他们是在与他们想要连接的中继通讯;以及3)签名,以确保所有客户知道是同一组中继。

加密:首先,Tor中的所有连接都使用TLS链接加密,因此观察者无法查看网络内部,以了解某个单元是为哪个线路准备的。 此外,Tor客户端与电路中的每个中继站建立了一个短暂的加密密钥;这些额外的加密层意味着只有出口中继站可以读取来自客户端的数据。 当线路断开时,双方都会删除密钥,所以记录流量,然后闯入中继来获得密钥是行不通的。

认证:任何 Tor 中继都有被称为 “onion key” 的解密公钥。 任何中继每四周轮转其 onion key。 当 Tor 客户端建立起电路,在每一步它都 要求 Tor 中继证明其 onion key 的知识。 通过这种方式,路径上的第一个节点不能欺骗路径上的其他节点。 因为 Tor 客户端选择路径,它可以确保得到 Tor 的 “分布式信任”特性:路径上没有一个单独的中继能同时知道客户端和客户端在做什么。

协调:客户端如何得知是哪些中继,又如何得知它们有正确的密钥? 每个中继都有长期的签名公钥,被称为“身份密钥”。 每个目录管理机构都另有一个“目录签名密钥”。 目录管理机构为所有已知中继提供签名列表,在该列表中有来自每个中继的一组证书(由它们的身份密钥自签名)指定它们的密钥、位置、退出策略等。 因此除非对手可以控制大多数目录管理机构(截至 2022 年有 8 个目录管理机构),否则他们无法欺骗 Tor 客户端使用其他 Tor 中继。

客户端如何知道目录管理机构是什么?

Tor 软件有一个内置的位置列表和每个目录管理机构的公钥。 因此,唯一欺骗用户进入虚假 Tor 网络的方法是给他们特意修改过的软件版本。

用户怎么知道他们得到了正确的软件?

当我们分发源代码或者包时,我们使用 GNU Privacy Guard 数字签名。 请查看如何检查 Tor 浏览器签名的说明

为了确定它的确是被我们签名的,您需要亲自与我们见面,获得一份我们的 GPG 密钥指纹拷贝,或者您需要知道有这份拷贝的人。 如果您担心这个层面的攻击,我们建议您参与安全社区并开始接触人们。

只要线路工作正常,Tor将在10分钟内为新的TCP流量重复使用同一线路。 (如果线路发生故障,Tor将立即切换到新的线路)

但请注意,一个单一的TCP流(例如一个长的IRC连接)将永远停留在同一个线路上。 我们不会将单个数据流从一个线路轮换到另一个线路。 否则,一个对网络有部分了解的敌人将会随着时间的推移而获得很多将您与您的目的地联系起来的机会,而不是只有一次机会。

Tor 浏览器

数字签名是一个确保某个包由其开发人员生成并且未被篡改的过程。 下面我们将解释为什么这十分重要,以及如何验证你所下载的 Tor 浏览器是由我们创建的,而不是被某些攻击者所修改过的。

我们的下载页面上的每个文件都附有一个标有 “签名”的文件,其名称与软件包相同,扩展名为".asc"。这些 .asc 文件是它们的 OpenPGP 签名。 这些数字签名文件让你验证下载的文件是否就是我们希望你获取的文件。 这将由浏览器而异,但一般来说,你可以通过右键单击“签名”链接并选择“文件另存为”选项来下载该文件。

例如: torbrowser-install-win64-9.0_en-US.exe 是与 torbrowser-install-win64-9.0_en-US.exe.asc一起的。 这些是示例文件名,并不会与你所下载的文件名完全一致。

我们现在展示如何在不同的操作系统上验证下载文件的数字签名。 请注意数字签名是标注该包被签名的时间。 因此,每个新文件上传时,都会生成具有不同日期的新签名。 只要您验证了签名,就不必担心报告的日期可能有所不同。

安装 GnuPG

首先你需要安装 GnuPG 才能验证签名。

对于 Windows 的用户:

如果您使用 Windows, 下载 Gpg4win并运行其安装包。

为了验证签名,您需要在 Windows 命令行(cmd.exe)中输入一些命令。

对于 macOS 的用户:

如果您正在使用 macOS,您可以安装 GPGTools

为了验证签名,您需要在(“应用程序”下的)终端中输入一些命令。

对于 GNU/Linux 的用户:

如果你使用 GNU/Linux,那么可能在你的系统中已经安装了 GnuPG,因为大多数 Linux 发行版都预装了它。

为了验证签名,您需要在终端窗口中输入一些命令。如何进行此操作将取决于您的发行版。

获取 Tor 开发者密钥

Tor 浏览器团队已经为 Tor 浏览器发行版签名。 导入 Tor 浏览器开发者的签名密钥(0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290):

gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org

这会向您显示像这样的内容:

gpg: key 4E2C6E8793298290: public key "Tor Browser Developers (signing key) <torbrowser@torproject.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
pub   rsa4096 2014-12-15 [C] [expires: 2025-07-21]
      EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
uid           [ unknown] Tor Browser Developers (signing key) <torbrowser@torproject.org>
sub   rsa4096 2018-05-26 [S] [expires: 2020-12-19]

如果你收到了一个错误信息,就说明出了问题,你不能继续操作,直到你弄清楚为什么会出现错误。也许你可以参照解决方法(使用公钥)部分来导入密钥。

导入密钥后,你可以将其保存到文件中(通过这里的指纹来识别它):

gpg --output ./tor.keyring --export 0xEF6E286DDA85EA2A4BA7DE684E2C6E8793298290

这条命令的结果是,密钥被保存在路径为./tor.keyring的文件中,也就是在当前目录中。 如果运行这个命令后./tor.keyring不存在,就说明出了问题,你不能继续操作,直到你弄清楚为什么会出现错误。

验证签名

为了验证你下载的包的签名,除了下载安装程序文件本身,你还需要下载相应的“.asc”签名文件,并命令 GnuPG 验证你下载的文件。

下面的例子假设你已经下载了这样的两个文件到你的"下载"文件夹。 请注意,这些命令使用的是示例文件名,而你的文件名会有所不同:你下载的版本与 9.0 不同,且你可能没有选择英文(en-US)版本。

对于 Windows 的用户:

gpgv --keyring .\tor.keyring Downloads\torbrowser-install-win64-9.0_en-US.exe.asc Downloads\torbrowser-install-win64-9.0_en-US.exe

对于 macOS 的用户:

gpgv --keyring ./tor.keyring ~/Downloads/TorBrowser-9.0-osx64_en-US.dmg.asc ~/Downloads/TorBrowser-9.0-osx64_en-US.dmg

对于 GNU/Linux 的用户(如果您有32位的包,请将64改为32):

gpgv --keyring ./tor.keyring ~/Downloads/tor-browser-linux64-9.0_en-US.tar.xz.asc ~/Downloads/tor-browser-linux64-9.0_en-US.tar.xz

命令的结果应该输出与以下相似的内容:

gpgv: Signature made 07/08/19 04:03:49 Pacific Daylight Time
gpgv: using RSA key EB774491D9FF06E2
gpgv: Good signature from "Tor Browser Developers (signing key) <torbrowser@torproject.org>"

如果你得到包含 "No such file or directory"的错误信息,要么是前面的某个步骤出了问题,要么是你忘记了这些命令使用的是示例文件名,而你的文件名会与此不同。

解决方法(使用公钥)

如果您遇到了无法解决的问题,不妨下载并使用这个公钥来代替。或者,您还可以使用以下指令:

curl -s https://openpgpkey.torproject.org/.well-known/openpgpkey/torproject.org/hu/kounek7zrdx745qydx6p59t9mqjpuhdf |gpg --import -

Tor 浏览器开发者密钥也可在 keys.openpgp.org 上找到,并可从 https://keys.openpgp.org/vks/v1/by-fingerprint/EF6E286DDA85EA2A4BA7DE684E2C6E8793298290 下载。 如果正在使用 macOS 或 GNU/Linux,你也可以通过运行以下命令获取密钥:
$ gpg --keyserver keys.openpgp.org --search-keys torbrowser@torproject.org

你可能还想了解有关 GnuPG 的详细信息

你下载或运行的文件会提示你指定一个目标位置。 如果您忘记了它是哪里,那么它很可能是你的下载或桌面文件夹。

Windows 安装包中的默认设置也会为您在您的桌面上创建一个快捷方式,但请注意,您可能无意中取消了创建快捷方式的选项。

如果你在文件夹中找不到,请再次下载并注意询问你下载位置的提示。 选择一个你能简单记住的目录,下载完成后你能在选择的目录中看到 Tor 浏览器文件夹。

每当我们发布一个新的 Tor 浏览器稳定版本,我们都会写一篇博文,详细介绍其新功能和已知问题。 如果你的 Tor 浏览器在更新后开始出现问题,请查看 blog.torproject.org 有关最新稳定版本的 Tor 浏览器的帖子,以查看你的问题是否被列出。 如果你的问题没有被列出,请先访问 Tor 浏览器的问题追踪器 并创建一个 GitLab issue 以描述你所遇到的情况。

We want everyone to be able to enjoy Tor Browser in their own language. Tor Browser is now available in 37 different languages, and we are working to add more.

Our current list of supported languages is:

Language
ﻉﺮﺒﻳﺓ (ar)
Català (ca)
česky (cs)
Dansk (da)
Deutsch (de)
Ελληνικά (el)
English (en)
Español (es)
ﻑﺍﺮﺴﯾ (fa)
Français (fr)
Gaeilge (ga-IE)
עברית (he)
Magyar nyelv (hu)
Indonesia (id)
Islenska (is)
Italiano (it)
日本語 (ja)
ქართული (ka)
한국어 (ko)
lietuvių kalba (lt)
македонски (mk)
ﺐﻫﺎﺳ ﻡﻼﻳﻭ (ms)
မြမစ (my)
Norsk Bokmål (nb-NO)
Nederlands (nl)
Polszczyzna (pl)
Português Brasil(pt-BR)
Română (ro)
Русский (ru)
Shqip (sq)
Svenska (sv-SE)
ภาษาไทย (th)
Türkçe (tr)
Український (uk)
Tiếng Việt (vi)
简体中文 (zh-CN)
正體字 (zh-TW)

Want to help us translate? Become a Tor translator!

你还可以安装并试用 Tor 浏览器 Alpha 测试版,来帮助我们测试即将正式发布的新语言版本。

没有,Tor 浏览器是开源且免费的软件。 任何声称是 Tor 浏览器且强迫你付费的浏览器均是假冒。 为确保你下载的是正版 Tor 浏览器,请访问我们的 Tor 浏览器下载页面。 下载后,你可以通过[验证签名](../how-to-verify-signature/)以确保你拥有官方版本的 Tor 浏览器。 如果你无法访问我们的网站,那么请访问[审查部分](.../.../censorship/gettor-1/),以获得有关下载 Tor 浏览器的其他方式的信息。

你可以在 frontdesk@torproject.org 上举报假冒的 Tor 浏览器

Tor 浏览器目前在Windows, LinuxmacOS 上可用。

这里是 Tor 浏览器的安卓版本,The Guardian Project 也提供了 Orbot app,以在您的设备上通过 Tor 的网络路由其他应用。

There is no official version of Tor Browser for iOS yet, though we recommend Onion Browser.

很不幸,我们目前还没有 Chrome OS 版本的 Tor。 你可以在 Chrome 操作系统上运行 Tor 浏览器安卓版本。 请注意:如果您在 Chrome 操作系统上使用 Tor 移动版,那么您只能浏览网站的移动版(而不是桌面版)。 然而,因为我们没有将软件针对 Chrome 操作系统进行修改,我们不能确定是否所有 Tor 浏览器安卓版的隐私保护功能会运行良好。

抱歉,我们没有官方支持 *BSD 系统上的 Tor 浏览器。 有一个叫做 TorBSD project 的项目,不过他们的 Tor 浏览器并没有得到官方支持。

使用 Tor 浏览器有时会比其他浏览器慢。 Tor 的网络每日有超过一百万的用户浏览,但只有6000多个中继站来路由所有的通信,所以服务器有时会因过载造成延迟。此外,根据我们的设计,您的通信是在世界各地的志愿者服务器上不断传输的,所以一些堵塞和网络延迟总是不可避免的会出现。 您可以通过运行您自己的中继或鼓励他人这样做来帮助提高网络速度。 想要获取更多深入的回答,请参阅 Roger 的话题博客文章Tor 的公开研究专题:2018年版关于网络性能的部分。 也就是说, Tor 比以前快的多了,你未必会注意到和其它浏览器相比的速度变化。

它们的名字很具有误导性,但“隐身模式”(或隐私模式)无法让你在互联网上匿名化。 它们在你关闭浏览器后删除你计算机上所有与你的浏览会话相关的信息,但是它们在隐匿你的网络痕迹方面毫无作为。 这表示一个窃听者可以和任何普通浏览器一样获取你的网络通信流量。

Tor 浏览器不仅提供了所有被遗忘的私人标签的特点,同时还隐藏了所有可以被用来观察网络活动轨迹的源 IP、浏览偏好和设备细节,给用户提供了一个真正的全过程隐蔽的私密浏览体验。

想要了解更多有关匿名模式和私人标签的局限性,请查阅 Mozilla 关于私密浏览常见的谣言一文。

有一些方法可以将 Tor 浏览器设置为您的默认浏览器,但这些方法不一定在所有操作系统中都有效。 Tor 浏览器做了大量工作使它和你的操作系统的其他部分相互隔离,且将其设置为默认浏览器的过程并不可靠。 这意味着一个网站有时会在 Tor 浏览器里加载,有时却会在其他浏览器里加载。这种操作十分危险而且可能暴露您的身份。

我们强烈推荐不要把 Tor 和 Tor 浏览器以外的浏览器搭配使用。 在其它浏览器中使用 Tor 可能会使你置于没有 Tor 浏览器提供的隐私保护的风险中。

你当然可以在使用 Tor 浏览器时使用其它的浏览器。 不过你应该清楚其他浏览器不能提供和 Tor 浏览器一样的隐私保护。 不过在切换浏览器时要多加小心,你也许会不小心在普通浏览器里执行要在 Tor 浏览器中执行的操作。

如果您同时使用 Tor 浏览器和其他浏览器,这不会影响 Tor 的安全性和私密性。

然而,请注意,当你同时使用 Tor 和另一个浏览器时,你的 Tor 活动可能会从其他浏览器被关联到你的非 Tor(真实)IP,只需将你的鼠标从一个浏览器移动到另一个。

或者你可能只是忘记了,不小心用那个非私密浏览器做了一些你本想在 Tor 浏览器中做的事情。

只有 Tor 浏览器的流量会通过 Tor 网络传输。 你操作系统上的其他程序(包括其他的浏览器)的连接不会使用 Tor 网络,也不会被保护。 需要单独配置来使用 Tor。 如果您想确保所有的通信都通过 Tor 的网络进行,请使用 Tail 实时操作系统。您只要用 USB 或是 DVD 就可以在几乎任意电脑上启动它。

我们不建议运行多个 Tor 浏览器实例,在很多平台中这样做可能会导致运行不正常。

Tor 浏览器使用 Firefox ESR 搭建, 所以属于火狐的问题可能会出现。 请确认你只有一个 Tor 浏览器在运行并且你的 Tor 浏览器安装在一个有正确权限的文件夹里。 如果您的电脑正在运行杀毒软件,请参阅我的杀毒/反恶意软件保护程序正阻止我使用 Tor 浏览器,这通常是导致此类问题的主要原因。

Tor 浏览器是 Firefox 的修改版本,专为与 Tor 一起使用而设计。 Tor 浏览器做了很多工作,例如加入强化隐私和安全的补丁。 虽然你可以同时使用 Tor 浏览器和其他的浏览器,但是同时使用其他浏览器会暴露你的身份信息。我们强烈建议您不要使用其他浏览器。 了解更多有关 Tor 浏览器的设计.

Tor 浏览器的书签可以导出、导入、备份、恢复以及从其他浏览器导入。 为了在 Tor 浏览器中管理您的书签,请访问:

  • 汉堡菜单 >> 书签 >> 管理书签 (在菜单下方)
  • 从我的足迹窗口的工具栏中,点击“导入和备份”

要导出书签

  • 选择“导出书签到 HTML”
  • 在导出书签文件的窗口中,选择一个保存文件的路径,文件名默认为 bookmarks.html。桌面通常是存放这些文件的好地方,但放在其他易于记住的位置都可以。
  • 点击保存按钮。导出书签文件的窗口将会关闭。
  • 关闭我的足迹的窗口。

你的书签现在已成功从 Tor 浏览器导出。 保存的书签 HTML 文件现在可以导入到另一个浏览器了。

要导入书签

  • 选择“从 HTML 导入书签”
  • 在导入书签文件的窗口中,转到要导入 HTML 书签的目录,并选择该文件。
  • 点击打开按钮。导入书签文件的窗口将会关闭。
  • 关闭我的足迹的窗口。

您所选中的HTML文件所包含的书签,都将被导入到Tor浏览器的书签收藏夹中。

如果您想备份

  • 选择备份
  • 将打开一个新窗口,您需要选择保存文件的位置。该文件具有 .json 扩展名。

如果您想恢复

  • 选择 "恢复",然后选择你想恢复的书签文件。
  • 在弹出的窗口中点击 “确认”,恭喜你,你刚刚恢复了你的备份书签。

从其他浏览器导入数据

可以从 Firefox 导入书签到 Tor 浏览器。在 Firefox 中,有两种方法可以导出和导入书签。[HTML文件](https://support.mozilla.org/en-US/kb/export-firefox-bookmarks-to-backup-or-transfer)或JSON文件。 从浏览器导出数据后,按照上述步骤将书签文件导入到你的 Tor 浏览器。

注意:目前,在 Android 版 Tor 浏览器中, 没有好的方法来导出和导入书签。Bug #31617

当你打开Tor浏览器时,你可以导航到汉堡菜单("≡"),然后点击“设置”,最后点击边栏的“连接”。 在此页面的底部,“查看 Tor 日志”字样旁边,点击“查看日志”按钮。 你能看见一个把日志拷贝到剪切板的选项,然后你就可以将其粘贴到文字编辑器或邮件客户端。

另外,在 GNU/Linux 上可直接在终端中查看日志:打开 Tor 浏览器目录,通过以下命令启动 Tor 浏览器:

./start-tor-browser.desktop --verbose

或将日志保存为一个文件(default: tor-browser.log)

./start-tor-browser.desktop --log [file]

默认模式下 Tor 浏览器大致用200px x 100px的倍数来打开一个新的窗口以避免屏幕尺寸留下指纹。 其策略是使所有用户看起来都一样,这样就更难识别个别用户。 这种方式将持续生效,直到用户重新设定窗口的尺寸(例如最大化窗口或进入全屏模式)。 Tor 浏览器也为此配备了指纹跟踪防御技术,其名为Letterboxing,由 Mozilla 开发并于 2019 年公布。 它的工作原理是为浏览器窗口添加白色边距,使窗口尽可能地接近用户所需的尺寸,同时使所有用户的屏幕尺寸都是几个相同的类型,防止他们因此被识别出来。

简而言之,这项技术使某些屏幕尺寸的用户变多,使根据屏幕尺寸识别用户变得更加困难,因为许多用户的屏幕尺寸相同。

letterboxing

Tor 浏览器可以帮助人们访问所在地区被封锁的网站。 大多数时候,只需下载 Tor 浏览器,您就可以使用它去访问被屏蔽的网站。 在被严重监视的地区,我们提供许多规避监管的选项,譬如 可插拔传输

欲了解更多信息,请参见Tor 浏览器用户手册中关于审查制度规避的部分

有些网站无法分辨普通 Tor 用户和机器人,因而屏蔽了 Tor 用户的访问。 我们能让网站解封 Tor 用户的最成功的手段是让用户直接联系网站管理员。 这么做也许能解决你的问题:

“嗨!我正在使用 Tor 浏览器访问 xyz.com ,不过似乎你们并没有允许 Tor 用户访问。 我建议您重新考虑这个决定;Tor 被世界各地的人用来保护隐私和对抗审查。 封锁 Tor 用户意味着也可能封锁了希望在专制国家自由的浏览互联网的用户,希望隐藏自己避免被发现的研究人员、记者、举报人和社会活动家,或只是希望不被第三方跟踪的普通人。 请采取强硬立场支持数字隐私和互联网自由,以及允许 Tor 用户访问 xyz.com,谢谢。”

另外,银行等比较敏感的网站经常进行地区范围的屏蔽(例如如果你平时只在某个特定的国家使用他们的服务,从其他国家进行访问时你的账号可能就会被冻结)。

如果您不能连接到洋葱服务器,请查阅我无法访问 X.onion!

有些网站无法分辨普通 Tor 用户和机器人,因而屏蔽了 Tor 用户的访问。 我们能让网站解封 Tor 用户的最成功的手段是让用户直接联系网站管理员。 这么做也许能解决你的问题:

“嗨!我正在使用 Tor 浏览器访问 xyz.com ,不过似乎你们并没有允许 Tor 用户访问。 我建议您重新考虑这个决定;Tor 被世界各地的人用来保护隐私和对抗审查。 封锁 Tor 用户意味着也可能封锁了希望在专制国家自由的浏览互联网的用户,希望隐藏自己避免被发现的研究人员、记者、举报人和社会活动家,或只是希望不被第三方跟踪的普通人。 请采取强硬立场支持数字隐私和互联网自由,以及允许 Tor 用户访问 xyz.com,谢谢。”

另外,银行等比较敏感的网站经常进行地区范围的屏蔽(例如如果你平时只在某个特定的国家使用他们的服务,从其他国家进行访问时你的账号可能就会被冻结)。

如果您不能连接到洋葱服务器,请查阅我无法访问 X.onion!

Tor 浏览器会让你的网络活动看起来像是来自于世界各个不同地区的网络连接。 有时候某些像是银行或电子邮件服务的网站会认为您的帐号被他人盗用了,因此自动将您的帐号锁定。

要解决此情况的唯一方式是利用网站服务提供的帐号恢复功能,或直接向该网站服务的提供业者说明您的情况。

如果你所使用服务的提供商支持比基于 IP 的验证更安全的双因素认证选项的话,你也许能规避这种场景。 联系你的服务提供商询问它们有没有支持双因素验证。

有时你无法在 Tor 浏览器中使用重度依赖 JavaScript 的网站的某些功能。 最简单的修复方法是单击“安全”图标(屏幕右上角的灰色小盾牌),然后单击“更改...” 把安全等级设置为“标准”。

大多数杀毒软件或恶意程序防护软件允许用户将某些进程列入 “白名单”,否则这些进程将被阻止。 请打开你的杀毒软件或恶意程序防护软件,在设置中寻找 “白名单”或类似的东西。 接下来,执行以下步骤:

  • Windows
    • firefox.exe
    • tor.exe
    • obfs4proxy.exe (如果你使用网桥)
    • snowflake-client.exe

*对于 macOS

  • Tor 浏览器
  • tor.real
  • obfs4proxy (如果你使用网桥)
  • snowflake-client

最后,重启 Tor 浏览器。 这应该能解决你遇到的问题。 请注意,卡巴斯基之类的杀毒软件可能会在防火墙层面封锁 Tor。

一些杀毒软件在 Tor 浏览器启动时会提示有恶意软件。 如果您从 我们的主站 或使用 GetTor 下载 Tor 浏览器,并已验证它,那么这些都是误报,您无需担心。 一些杀毒程序会将没有被大量用户浏览过的文档认定为可疑文件。 为了确保您下载的 Tor 程序是由我们创建并且没有被某些攻击者修改,您可以验证 Tor 浏览器的签名。 您可能还想允许某些进程 以防杀毒软件阻止访问 Tor 浏览器。

你可能处于一个屏蔽 Tor 网络的网络上,因此你应该尝试使用网桥。 有些网桥内置于 Tor 浏览器中,只需几个步骤即可启用。 如需使用可插拔传输,请在首次启动 Tor 浏览器时点击“配置连接”。 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。 从菜单中,选择你想使用何种可插拔传输

选择可插拔传输网桥之后,上滚并点击“连接”,保存设置。

或者,如果你正在运行Tor浏览器,点击汉堡菜单(≡)中的“设置”,然后点击侧边栏中的“连接”。 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。 从菜单中选择你想使用何种可插拔传输。一旦你关闭该界面,你的设置将自动保存。

若你需要其他的网桥,你可以从网桥网站 上查找。 若想了解关于网桥的更多信息,请参阅Tor 浏览器用户手册

造成 Tor 浏览器连接失败的最常见的问题之一是系统时间设置错误。 请确认你的时钟,日期和时区设置正确。 如果这个问题还没有被解决,请查看位于 Tor 浏览器用户手册 的“疑难解答”页面。

有时,当您在 Tor 浏览器上使用 Gmail 时,谷歌会弹出一个提示窗口,提醒您您的账户有可能被盗用了。 这个提示窗口列出了一系列近期在世界范围内被用于登录您账户的 IP 地址和地点。

总而言之,这是一个误报:由于您使用了 Tor 的服务,谷歌会看见多个来自不同地点的登录,所以它希望确认是真实的账号持有者在登录这个账户。

虽然这可能是使用 Tor 的服务带来的意外影响,但这并不意味着您可以彻底忽视这些警告。 这有可能是一个误报,也有可能是真的有人劫持了您的谷歌 cookie,从而盗用了您的账户。

通过直接操控您的计算机,或者监视您的网络通讯,都可以盗取您的cookie。 理论上来说,只有直接在您的电脑上操作,才有可能使您的系统陷入危险,因为毕竟 Gmail 和类似的服务应该只会通过 SSL 协议来传送cookie。 然而不幸的是,在实践中,情况要比这复杂得多

而且,如果有人真的窃取了你的谷歌 cookie,他们最终可能会从不寻常的地方登录(当然他们也可能不会)。因此,总而言之,既然你使用的是 Tor 浏览器,那么谷歌使用的这种安全措施对你来说就没那么有用,因为它总是误报。你必须使用其他方法,比如看看账户上是否有什么东西看起来很奇怪,或者看看最近登录的时间戳,想一想你是否真的在那些时间登录过。

最近,Gmail 的用户可以在他们的账户上开 两步验证来增添一层安全保障。

这是一个已知的、断续出现的问题;它并不意味着谷歌认为 Tor 是间谍软件。

当您使用 Tor 的时候,您正和其他数千名用户共同使用着出口中继。Tor 的用户会在当许多人短时间内同时使用谷歌搜索时看见这条提示。当谷歌看见一个 IP 地址(就是您恰好正在使用的这个出口中继)有大量通信流量时,会认为是有人在试图“爬取”他们的网站,于是会把这个 IP 地址的访问速度暂时地放慢。

你可以尝试“此站点新建线路”,从一个不同的 IP 地址访问该网站。

另一个可能的解释是,谷歌试图检测某些向它发送异常查询的间谍软件或病毒。它记录那些发出异常询问的 IP 地址(但并没有意识到它们是 Tor 的出口中继),然后对任何来自那些 IP 地址的网络链接发出警告,声称它最近的查询记录是病毒感染的结果。

我们认为,谷歌没有特意地针对 Tor 的使用进行删除或拦截。那些声称计算机被病毒感染的错误信息应该在短时间内会消失。

十分不幸,有些网站要求 Tor 用户填写验证码,我们对此无能为力。 最有效的方法往往是联系网站管理员,告诉他们验证码给像你一样的用户带来的不便。

谷歌用地理定位来确定您现在身处何处,以便给您提供更好的个性化体验。这包括了提供它认为您正在使用的语言,以及根据您的搜索呈现不同的结果。

如果您真的想看英文版的 Google,你可以点击提供此内容的链接。不过我们认为这是 Tor 的一项特性,而不是漏洞——互联网并非处处相同,实际上,根据您所在的位置,它看上去确实有所不同。 此功能使人们想起了这一事实。

请注意,谷歌搜索 URL 时将键值对作为参数,其中一个参数名称是“hl”。如果您将“hl”设置为“en”,那么无论您的请求被发送到哪个谷歌服务器,谷歌都将用英语返回搜索结果。更改后的链接可能如下所示:

https://encrypted.google.com/search?q=online%20anonymity&hl=en

另一个方法是直接使用您的国家代码来访问谷歌。这可以是google.be,google.de,google.us等等。

使用 Tor 浏览器时,没人能看见你在浏览的网站。 不过你的网络提供商或网络管理员也许可以发现你在使用 Tor,但他们无法知道你浏览的具体网站。

Tor 浏览器防止人们获知您访问过的网站。 有些机构,例如您的互联网服务提供商,也许会知道您正在使用 Tor 。不过他们将不会知晓您正在使用 Tor 做些什么。

DuckDuckGo 是 Tor 浏览器的默认搜索引擎。 DuckDuckGo 既不追踪用户,也不存储用户的任何搜索信息。了解更多关于 DuckDuckGo 隐私政策

Tor 浏览器6.0.6及之后版本使用 DuckDuckGo 作为内置搜索引擎。 我们之前在 Tor 浏览器上使用的 Disconnect 现在暂时没有获取谷歌搜索结果的权限。 因为 Disconnect 更像是一个允许用户在不同搜索引擎间来回切换的元搜索引擎,它转而提供了 Bing 的搜索结果,但 Bing 的搜索结果质量往往并不理想。 DuckDuckGo 不记录、收集或共享用户的个人信息或搜索历史,因此最能保护您的隐私。 大多数其他搜索引擎会存储您的搜索记录以及其他信息,例如时间戳、您的 IP 地址和您的帐户信息(如果您已登录)。

请查阅 DuckDuckGo 支持门户。 如果您认为这是 Tor 浏览器的问题,请向我们的漏洞追踪器汇报。

Tor 浏览器有两种方法改变你的中继线路 —— “新身份”和“为该站点使用新 Tor 线路”。 这两个选项都位于汉堡菜单("≡")。 您也可以在 URL 栏中的网站信息菜单内访问“新线路”选项,并通过点击屏幕右上方的闪光小扫帚图标访问“新身份”选项。

新身份

这个选项在你不想让你接下来的浏览活动和以前的关联时会很有用。

运行此功能将会关闭所有已经打开的浏览器窗口及标签页,清除所有的浏览器 Cookie 与历史记录等个人信息,并且为后续所有的网络连接创建新的洋葱路由回路。

Tor 浏览器会提示你所有的活动和下载会被终止,在你点击“新身份”时考虑这一点。

Tor 浏览器菜单

为此站点新建 Tor 链路

这个选项在出口节点无法访问你请求的网站或显示不正常时会有用。 选择它会在新的 Tor 线路上加载当前标签页。

在其它标签或窗口打开的相同的网站会在重新加载后使用新的线路。

这个选项不会清除任何私密信息或者取消关联你的活动,也不会影响你当前与其它网站的连接。

为此站点新建 Tor 链路

运行 Tor 浏览器不会使你成为网络中的一个中继节点。 这意味着你的电脑不会用于中继其他人的流量。 如果您想搭建一个中继,请查阅我们的 Tor 中继指南

这是 Tor 的正常操作。 你连接的中继回路中的第一个节点通常被称为“入口节点”或是“中转节点"。 它是一个快速且稳定的节点,并且将会在您的中继回路中维持两到三个月,用来抵挡破解匿名攻击。 其余的中继会在你每次访问新网站时改变,这三个 Tor 中继会一起提供完整的隐私保护。 想了解更多关于安全中继站如何工作的信息,请参阅 entry guard 上的这篇博客文章和这篇论文

Tor 浏览器中,每一个新的域名会分配到一条独立的链路。 Tor 浏览器的设计与应用文档更深入地解释了这项设计背后的思考。

强烈不推荐自行修改 Tor 线路。 让 Tor 选择路由会给你带来最高的安全性,修改中继节点可能会破坏你的匿名性。 如果你只想访问只在某些国家或地区提供的服务,你可能更应该去使用 VPN 而不是 Tor。 请注意,VPN 和 Tor 在隐私属性上是有区别的,但是 VPN 可以解决一些区域限制问题。

警告: 千万不要遵循任何让你手动编辑你的torrc 文件的建议/教程! 这样做会使攻击者通过对 torrc 的恶意配置来破坏您的安全性和匿名性。

Tor使用一个叫做 torrc 的文本文件来存储有关于Tor的设置。 默认设置应该能在大多数的Tor用户那里正常工作(因此出现以上警告)。

请按照下方对应您的操作系统的指示找到您的 Tor 浏览器的 torrc

在 Windows 或 Linux 上:

  • torrc 在您的 Tor 浏览器目录里的 Browser/TorBrowser/Data/Tor 目录中可以找到。

在 macOS 上:

  • torrc~/Library/Application Support/TorBrowser-Data/Tor 目录里可以找到。
  • 注意 Library 文件夹在新版的 macOS 中是被隐藏的。在访达中访问这个文件夹,需要选择”前往“菜单中的”前往文件夹...“。
  • 然后在窗口中输入 ~/Library/Application Support/ 并点击“前往”。

在修改您的 torrc 之前关闭Tor 浏览器,否则Tor 浏览器可能会擦除您的修改。 当命令模式选项启动 Tor 时,Tor 浏览器会覆盖掉一些其他选项。

请查看 torrc 示例文件来获取关于常用配置的建议。 想了解其他可供您使用的配置选项,请看 Tor 操作指南页。 记住,在 torrc 中所有以 # 开头的行都会被视为注释并且不会影响 Tor 的配置。

强烈建议不要在 Tor 浏览器上安装新的附加组件,因为这可能会损害你的隐私和安全。

安装新的拓展可能会意外影响 Tor 浏览器,并使得您的 Tor 浏览器的浏览器指纹变得独一无二。 如果您的 Tor 浏览器副本拥有独特标记,您的浏览活动可以被反匿名并被追踪,即使您正在使用 Tor 浏览器。

简而言之,所有浏览器的设置与特性都会形成一个叫“浏览器指纹”的东西。 大多数浏览器不经意间为每一个用户创建独一无二的浏览器指纹,那可以被用来在全网追踪该用户。 Tor 浏览器经过专门设计,使其用户之间的指纹几乎相同(我们并不完美!)。 这意味着每一个 Tor 浏览器用户看起来都跟其他 Tor 浏览器用户一样,使得追踪一个单独的用户变得困难。

新的附加组件也有可能增加 Tor 浏览器遭到攻击的几率。 这可能会允许敏感信息被泄露或允许攻击者感染 Tor 浏览器。 甚至可能附加组件本身就被恶意设计用于监视您。

Tor 浏览器预安装了一个附加组件--NoScript--添加任何其他东西都可能使你去匿名化。

想要了解更多关于浏览器指纹的信息?在 Tor 的博客里有一篇文章介绍了有关它的全部信息。

Flash 在Tor 浏览器中被关闭,并且我们推荐您不要打开它。 我们认为 Flash 在任何浏览器上都是是极不安全的 —— 它可以轻易盗取你的个人信息或者给你安装恶意软件。 幸运的是,大多数网站、设备,还有其它浏览器都正在淘汰 Flash。

如果你使用 Tor 浏览器,你可以在连接设置中设置你的代理地址、端口和认证信息。

如果你以另一种方式使用 Tor,你可以在你的 torrc 文件中设置代理信息。查看手册页面中的HTTPSProxy配置选项。如果你的代理需要认证,请参阅HTTPSProxyAuthenticator选项。认证的例子:

  HTTPSProxy 10.0.0.1:8080
  HTTPSProxyAuthenticator myusername:mypass

我们目前只支持 Basic auth,但如果你需要 NTLM 认证,你可能会发现档案中的这个帖子很有用。

关于使用 SOCKS 代理,请参见Socks4ProxySocks5Proxy,以及手册页面中的相关 torrc 选项。使用已认证的 SOCKS 5 代理可能看起来就像这样:

  Socks5Proxy 10.0.0.1:1080
  Socks5ProxyUsername myuser
  Socks5ProxyPassword mypass

如果您的代理服务器只允许您接入特定的端口,请查看被防火墙阻挡的客户,获悉如何限制您的 Tor 浏览器接入的端口。

如果你的防火墙是通过阻止端口工作的,那么你可以告诉 Tor 在你启动 Tor 浏览器时只使用这些端口。 你也可以通过在你的 torrc 配置文件中添加 "FascistFirewall 1"来添加你的防火墙所允许的端口。 默认情况下,当你设置这个选项时,Tor 假设你的防火墙只允许 80 端口和 443 端口(分别为 HTTP 和 HTTPS)。 你可以用 FirewallPorts torrc 选项选择一组不同的端口。 如果你想更加精细地控制,你也可以使用 ReachableAddresses 配置选项,例如:

ReachableDirAddresses *:80
ReachableORAddresses *:443

请查阅 HTTPS Everywhere 常见问题. 如果您认为这是 Android 版 Tor 浏览器的问题,请向我们的漏洞追踪器汇报。

Tor 浏览器 11.5 版本起,桌面版默认启用 HTTPS-Only 模式,且 HTTPS Everywhere 不再与 Tor 浏览器捆绑在一起使用。

因为禁用 JavaScript 会让很多网站无法工作, Tor 浏览器内置的 NoScript 默认允许 JavaScript。 默认禁用 JavaScript 造成的不便过于严重,也许会让大多数用户直接放弃使用 Tor 。 原则上来说,我们不仅想让 Tor 浏览器尽可能安全,还想让大多数人都可以使用。所以按照目前状态, Tor 浏览器会继续默认启用 JavaScript。

对于想要在所有的 HTTP 网站上默认关闭 JavaScript 的用户,我们建议您更改 Tor 浏览器中“安全等级“的选项。 这可以通过导航安全图标(屏幕右上角的灰色小盾牌),然后单击“更改...”来完成。 “标准”级别允许 JavaScript,“更安全”级别阻止 HTTP 站点上的 JavaScript,而“最安全”级别则完全阻止 JavaScript。

可以。Tor 可以被配置为另一台机器上的客户端或中继器,并允许其他机器能够连接到它以实现匿名化。 这在一个许多计算机希望有一个与世界其他地方相通的匿名网关的环境中是最有用的。 然而,请注意,通过这种配置,你的私人网络内的任何人(存在于你和 Tor 客户端/中继之间)都可以看到你正在发送的明文流量。 在你到达 Tor 中继之前,你并没有匿名化。 正因为如此,如果你是你的域名的控制者,而且你知道一切都被封锁了,你就没事,但这种配置可能不适合大型私人网络,因为安全是重中之重。

配置很简单,按照下面的例子编辑你的 torrc 文件的 SocksListenAddress:

SocksListenAddress 127.0.0.1
SocksListenAddress 192.168.x.x:9100
SocksListenAddress 0.0.0.0:9100

在你属于多个网络或子网的情况下,你可以声明多个监听地址。

SocksListenAddress 192.168.x.x:9100 #eth0
SocksListenAddress 10.x.x.x:9100 #eth1

在这之后,你的客户端在他们各自的网络/子网会指定一个 socks 代理,地址和端口是你指定的 SocksListenAddress。 请注意,SocksPort 配置选项只给出了 localhost(127.0.0.1)的端口。 当设置你的 SocksListenAddress(es) 时,你需要提供端口与地址,如上所示。 如果你对强迫所有传出的数据通过中央 Tor 客户端/中继,而不是服务器只是一个可选的代理感兴趣,你可能会发现 iptables 程序(用于*nix)很有用。

默认情况下,你的 Tor 客户端只监听从本地主机连接的应用程序。 来自其他计算机的连接会被拒绝。 如果你想在与 Tor 客户端不同的电脑上的应用程序配置 Tor,你应该编辑你的 torrc 来定义SocksListenAddress 0.0.0.0,然后重新启动(或唤醒)Tor。 如果你想更高级一些,你可以在防火墙上配置你的 Tor 客户端,以绑定你的内部 IP,但不绑定你的外部 IP。

请查阅 NoScript 常见问题. If you believe this is a Tor Browser issue, please report it on our bug tracker.

Tor 移动版

目前还没有支持在老式 Windows Phones 上运行 Tor 浏览器的方法,但如果是较新的 Microsoft 品牌/推广的手机,可以按照 [Android版 Tor 浏览器](https://tb-manual.torproject.org/mobile-tor/#tor-browser-for-android)的相同步骤进行。

没错,这是一个特地为安卓设计的 Tor 浏览器版本。您只需要安装安卓版本的 Tor 浏览器就可以在您的安卓设备上运行 Tor 了。

守卫计划提供了一个叫 Orbot 的应用,帮助您在安卓设备上用 Tor 的网络路由其他应用。然而如果您只需要用 Tor 来浏览网络的话,那么安装一个安卓版本的 Tor 浏览器就足够了。

在 iOS 上我们推荐 Onion Browser,它是开放源代码软件,使用 Tor 线路,而且由和 Tor Project 关系密切的人开发。 但是,苹果要求所有在 iOS 运行的浏览器使用 Webkit ,这会使 Onion Browser 不能提供和 Tor 浏览器相同的隐私保护。

了解更多有关 Onion Browser 的消息。 在 App Store 中下载 Onion Browser。

守卫计划对 Orbot(以及其他隐私保护的软件)的安卓版本进行维护。您可以在守卫计划官网上获得更多详细信息。

它将会,_很快_可用。 同时,您还可以启用守卫计划的第三方库,来使用 F-Droid 下载安卓的 Tor 浏览器。

学习如何向 F-Droid 添加第三方库

尽管Tor 浏览器安卓版和Orbot都很棒,他们有着不同的用途。 Android 版 Tor 浏览器与桌面版的 Tor 浏览器相似,但是它运行在您的移动设备上。 它是一个使用 Tor 网络的一站式浏览器,并试图尽可能做到匿名化。 另一方面,Orbot 是一个代理,使你能够通过 Tor 网络发送你的其他应用程序(电子邮件客户端,即时通讯应用程序等)的数据;Orbot 的一个版本也内置于 Android 版 Tor 浏览器内,并使其能够连接到 Tor 网络。 然而您不能使用这个版本来用除 Tor 浏览器以外的其他应用发送数据。 根据你所想使用 Tor 网络的方式,这其中的一个或两个都可能是一个很好的选择。

连接 Tor

代理服务器错误可能由多种原因产生。 如果你遇到这个错误,你可以尝试以下一项或多项操作:

  • 如果你安装了杀毒软件,它可能会干扰 Tor 服务。请停用杀毒软件并重新启动浏览器。
  • 你不应把 Tor 浏览器文件夹从原来的位置移到不同的位置。 如果已经你这样做了,请将其还原。
  • 你还应该检查你所连接的端口。试试与当前使用的端口不同的端口,如 9050 或 9150。
  • 当所有其他方法都无效时,重新安装浏览器。这一次,请确保将 Tor 浏览器安装在一个新的目录下,而不是安装在之前安装浏览器的位置。

如果错误仍然存在,请与我们联系

If you cannot reach the onion service you desire, make sure that you have entered the 56-character onion address correctly; even a small mistake will stop Tor Browser from being able to reach the site. 如果你仍然无法访问这个洋葱服务,请稍后重试。 有可能是网络连接有出现暂时性阻碍,或者是该网站的管理员在没有提示的情况下关闭了网站。

You can also ensure that you're able to access other onion services by connecting to DuckDuckGo's onion service.

造成 Tor 浏览器连接失败的最常见的问题之一是系统时间设置错误。 请确认你的时钟,日期和时区设置正确。 如果这个问题还没有被解决,请查看位于 Tor 浏览器用户手册 的“疑难解答”页面。

如果您的连接出现问题,一则错误信息会弹出,您可以选择“将 Tor 日志复制到剪切板上”选项。 然后粘贴 Tor 日志到文本文件或者其他文档格式中。

如果你没有看到这个选项,且你已打开 Tor 浏览器,你可以找到汉堡菜单("≡"),然后点击“设置”,最后点击侧栏的“连接”。 在此页面的底部,“查看 Tor 日志”字样旁边,点击“查看日志”按钮。

另外,在 GNU/Linux 上可直接在终端中查看日志:打开 Tor 浏览器目录,通过以下命令启动 Tor 浏览器:

./start-tor-browser.desktop --verbose

或将日志保存为一个文件(default: tor-browser.log)

./start-tor-browser.desktop --log [file]

您应该能够在 Tor 日志中发现这些常见问题(请在 Tor 日志里寻找如下所示的错误):

常见日志错误 #1:代理连接失败

2017-10-29 09:23:40.800 [NOTICE] Opening Socks listener on 127.0.0.1:9150
2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 5%: Connecting to directory server
2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server
2017-10-29 09:24:08.900 [WARN] Proxy Client: unable to connect to xx..xxx..xxx.xx:xxxxx ("general SOCKS server failure")

如果您看见这些提示出现在您的日志里面,这意味着您连接 SOCKS 代理失败了。 如果您的网络连接需要设置 SOCKS 代理,请确认您代理服务器的信息正确。 如果您的系统不需要代理,或者您不敢肯定,请尝试直接连接 Tor 网络。

常见日志错误 #2:无法连接至守卫节点

11/1/2017 21:11:43 PM.500 [NOTICE] Opening Socks listener on 127.0.0.1:9150
11/1/2017 21:11:44 PM.300 [NOTICE] Bootstrapped 80%: Connecting to the Tor network
11/1/2017 21:11:44 PM.300 [WARN] Failed to find node for hop 0 of our path. Discarding this circuit.
11/1/2017 21:11:44 PM.500 [NOTICE] Bootstrapped 85%: Finishing handshake with first hop
11/1/2017 21:11:45 PM.300 [WARN] Failed to find node for hop 0 of our path. Discarding this circuit.

如果您看见这些提示出现在您的日志里面,这意味着您的 Tor 无法连接到 Tor 网络中的第一个节点。 这可能意味着您处于有审查的网络中。

请尝试通过网桥连接,这应该能解决问题。

常见日志错误 #3:未完成 TLS 握手

13-11-17 19:52:24.300 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server 
13-11-17 19:53:49.300 [WARN] Problem bootstrapping. Stuck at 10%: Finishing handshake with directory server. (DONE; DONE; count 10; recommendation warn; host [host] at xxx.xxx.xxx.xx:xxx) 
13-11-17 19:53:49.300 [WARN] 10 connections have failed: 
13-11-17 19:53:49.300 [WARN]  9 connections died in state handshaking (TLS) with SSL state SSLv2/v3 read server hello A in HANDSHAKE 
13-11-17 19:53:49.300 [WARN]  1 connections died in state connect()ing with SSL state (No SSL object)

如果你在 Tor 日志里看见这句话,这意味着 Tor 和目录服务器无法完成 TLS 握手。 使用网桥可能会解决这个问题。

常见日志错误 #4:时钟偏移

19.11.2017 00:04:47.400 [NOTICE] Opening Socks listener on 127.0.0.1:9150 
19.11.2017 00:04:48.000 [NOTICE] Bootstrapped 5%: Connecting to directory server 
19.11.2017 00:04:48.200 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server 
19.11.2017 00:04:48.800 [WARN] Received NETINFO cell with skewed time (OR:xxx.xx.x.xx:xxxx): It seems that our clock is behind by 1 days, 0 hours, 1 minutes, or that theirs is ahead. Tor requires an accurate clock to work: please check your time, timezone, and date settings.

如果您看见这些提示出现在您的日志里面,这意味着您的系统时间设置错误。 请确认您的时间设置是正确的,包括正确的时区。然后重新启动 Tor。

网络审查

如果你无法通过我们的网站下载 Tor 浏览器,你可以通过 GetTor 获取一份 Tor 浏览器的副本。 GetTor 是一项通过不同方式自动回复最新版 Tor 浏览器下载链接的服务。这些链接由不同处所托管,例如 Dropbox 、Google Drive 和 GitHub. 你可以通过电子邮件或 Telegram 机器人https://t.me/gettor_bot提出请求。 你也可以从 https://tor.eff.orghttps://tor.calyxinstitute.org/ 下载 Tor 浏览器。

给 gettor@torproject.org 发送一封电子邮件。 在邮件的正文中,写上你的操作系统的名称(如 Windows 、macOS 或 Linux)。 GetTor 将回复一封电子邮件,其中包含你可以下载 Tor 浏览器的链接、加密签名(用于验证下载的文件)、用于签名的密钥的指纹以及软件包的校验和。 你也许需要选择“32 位”或“64 位”版本:这和你的电脑有关,你可能需要查阅你电脑的说明书或是和制造商联系来了解更多信息。

通过 Twitter 的 GetTor 目前正在维护中。请使用电子邮件代替。

Tor 浏览器可以帮助人们访问所在地区被封锁的网站。 大多数时候,只需下载 Tor 浏览器,您就可以使用它去访问被屏蔽的网站。 在被严重监视的地区,我们提供许多规避监管的选项,譬如 可插拔传输

欲了解更多信息,请参见Tor 浏览器用户手册中关于审查制度规避的部分

如果您的连接出现问题,一则错误信息会弹出,您可以选择“将 Tor 日志复制到剪切板上”选项。 然后粘贴 Tor 日志到文本文件或者其他文档格式中。

如果你没有看到这个选项,且你已打开 Tor 浏览器,你可以找到汉堡菜单("≡"),然后点击“设置”,最后点击侧栏的“连接”。 在此页面的底部,“查看 Tor 日志”字样旁边,点击“查看日志”按钮。

另外,在 GNU/Linux 上可直接在终端中查看日志:打开 Tor 浏览器目录,通过以下命令启动 Tor 浏览器:

./start-tor-browser.desktop --verbose

或将日志保存为一个文件(default: tor-browser.log)

./start-tor-browser.desktop --log [file]

您应该能够在 Tor 日志中发现这些常见问题(请在 Tor 日志里寻找如下所示的错误):

常见日志错误 #1:代理连接失败

2017-10-29 09:23:40.800 [NOTICE] Opening Socks listener on 127.0.0.1:9150
2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 5%: Connecting to directory server
2017-10-29 09:23:47.900 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server
2017-10-29 09:24:08.900 [WARN] Proxy Client: unable to connect to xx..xxx..xxx.xx:xxxxx ("general SOCKS server failure")

如果您看见这些提示出现在您的日志里面,这意味着您连接 SOCKS 代理失败了。 如果您的网络连接需要设置 SOCKS 代理,请确认您代理服务器的信息正确。 如果您的系统不需要代理,或者您不敢肯定,请尝试直接连接 Tor 网络。

常见日志错误 #2:无法连接至守卫节点

11/1/2017 21:11:43 PM.500 [NOTICE] Opening Socks listener on 127.0.0.1:9150
11/1/2017 21:11:44 PM.300 [NOTICE] Bootstrapped 80%: Connecting to the Tor network
11/1/2017 21:11:44 PM.300 [WARN] Failed to find node for hop 0 of our path. Discarding this circuit.
11/1/2017 21:11:44 PM.500 [NOTICE] Bootstrapped 85%: Finishing handshake with first hop
11/1/2017 21:11:45 PM.300 [WARN] Failed to find node for hop 0 of our path. Discarding this circuit.

如果您看见这些提示出现在您的日志里面,这意味着您的 Tor 无法连接到 Tor 网络中的第一个节点。 这可能意味着您处于有审查的网络中。

请尝试通过网桥连接,这应该能解决问题。

常见日志错误 #3:未完成 TLS 握手

13-11-17 19:52:24.300 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server 
13-11-17 19:53:49.300 [WARN] Problem bootstrapping. Stuck at 10%: Finishing handshake with directory server. (DONE; DONE; count 10; recommendation warn; host [host] at xxx.xxx.xxx.xx:xxx) 
13-11-17 19:53:49.300 [WARN] 10 connections have failed: 
13-11-17 19:53:49.300 [WARN]  9 connections died in state handshaking (TLS) with SSL state SSLv2/v3 read server hello A in HANDSHAKE 
13-11-17 19:53:49.300 [WARN]  1 connections died in state connect()ing with SSL state (No SSL object)

如果你在 Tor 日志里看见这句话,这意味着 Tor 和目录服务器无法完成 TLS 握手。 使用网桥可能会解决这个问题。

常见日志错误 #4:时钟偏移

19.11.2017 00:04:47.400 [NOTICE] Opening Socks listener on 127.0.0.1:9150 
19.11.2017 00:04:48.000 [NOTICE] Bootstrapped 5%: Connecting to directory server 
19.11.2017 00:04:48.200 [NOTICE] Bootstrapped 10%: Finishing handshake with directory server 
19.11.2017 00:04:48.800 [WARN] Received NETINFO cell with skewed time (OR:xxx.xx.x.xx:xxxx): It seems that our clock is behind by 1 days, 0 hours, 1 minutes, or that theirs is ahead. Tor requires an accurate clock to work: please check your time, timezone, and date settings.

如果您看见这些提示出现在您的日志里面,这意味着您的系统时间设置错误。 请确认您的时间设置是正确的,包括正确的时区。然后重新启动 Tor。

网桥是未在 Tor 公共目录里列出的中继节点。

这意味着试图屏蔽访问 Tor 网络的政府或 ISP 并不能一刀切地屏蔽所有网桥。 如果你身处专制政权的统治下,或担心被发现连接 Tor 中继的 IP 地址的行为,此时网桥变得十分有用。

网桥就是有些许不同的中继。 请参阅我该如何运行网桥以获取相关指南。

一些像中国和伊朗的国家,已经找到检测和屏蔽 Tor 网桥的方法。 Obfs 代理服务器网桥通过增加一层混淆来解决这个问题。 运行 obfsproxy 网桥需要一些额外的软件和配置。 若想了解更多信息,请参见我们的可插拔传输页面。

Snowflake 是一个 Tor 浏览器支持的用于对抗互联网审查的可插拔传输方式。 和 Tor 网桥一样,用户可以通过其在普通 Tor 连接被审查的情况下访问开放互联网。 使用 Snowflake 就和在 Tor 浏览器中切换到一个新的网桥配置一样容易。

这个系统由三个部分组成:运行 Snowflake 代理的志愿者,想要连接到互联网的 Tor 用户,以及向用户提供 Snowflake 代理的中转站。

愿意帮助受审查网络上的用户的志愿者可以通过在他们的常规浏览器上配置短暂的代理来帮助他们。详见我如何使用Snowflake?

Snowflake 使用卓有成效的域前置技术,连接由成千上万的志愿者运营的 Snowflake 代理服务器。 这些代理轻量、短暂、且易于运行,使我们能够比以前的技术更容易规模化 Snowflake。

对于被审查的用户,如果你的 Snowflake 代理被屏蔽,中转站将自动为你寻找一个新的代理。

如果你对技术细节和格式感兴趣,请参阅 Snowflake 技术概述项目页面。 有关 Snowflake 的其他讨论,请访问 Tor 论坛并关注 Snowflake 标签

Snowflake 在 Tor 浏览器稳定版中可用于所有平台:Windows、macOS、GNU/Linux 和 Android。 你也可以在 iOS 上通过 Onion 浏览器以使用Snowflake。

如果你是第一次运行桌面版 Tor 浏览器,你可以在启动屏幕上点击“配置连接”。 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。从菜单中,选择“Snowflake”。 一旦你选择了 Snowflake,向上滚动并点击“连接”以保存你的设置。

在浏览器内,你可以点击汉堡菜单("≡"),然后进入“设置”,再进入“连接”。 或者,你也可以在 URL 栏中输入about:preferences#connection。在“桥接”部分,找到“选择 Tor 浏览器内置网桥”的选项,并点击“选择一个内置网桥”选项。从菜单中,选择“Snowflake”。

如果你的互联网连接没有受到审查,你应考虑安装 Snowflake 扩展,以帮助受审查网络中的用户。 当你在普通浏览器上运行 Snowflake 时,你将作为代理提供连接到 Tor 网络的一个入口节点,仅此而已。

附加组件

首先确认你已启用 WebRTC。 然后你可以安装这个 Firefox 附加组件Chrome 扩展程序,这将使你成为一个 Snowflake 代理。 它还可以告知你在过去 24 小时内你帮助了多少人。

网页

在一个启用了 WebRTC 的浏览器中: 如果你不想在你的浏览器中添加 Snowflake,你可以访问 https://snowflake.torproject.org/embed ,并点击按钮以选择成为一个代理。 如果你想继续作为 Snowflake 的代理,你不应关闭那个页面。

你可能处于一个屏蔽 Tor 网络的网络上,因此你应该尝试使用网桥。 有些网桥内置于 Tor 浏览器中,只需几个步骤即可启用。 如需使用可插拔传输,请在首次启动 Tor 浏览器时点击“配置连接”。 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。 从菜单中,选择你想使用何种可插拔传输

选择可插拔传输网桥之后,上滚并点击“连接”,保存设置。

或者,如果你正在运行Tor浏览器,点击汉堡菜单(≡)中的“设置”,然后点击侧边栏中的“连接”。 在“网桥”部分,找到选项“选择 Tor 浏览器内置网桥”,然后点击“选择内置网桥”。 从菜单中选择你想使用何种可插拔传输。一旦你关闭该界面,你的设置将自动保存。

若你需要其他的网桥,你可以从网桥网站 上查找。 若想了解关于网桥的更多信息,请参阅Tor 浏览器用户手册

中国大陆的用户可能需要采取绕过防火长城的额外步骤来连接到 Tor 网络。

To get an updated version of Tor Browser, try the Telegram bot first: https://t.me/gettor_bot. If that doesn't work, you can send an email to gettor@torproject.org with the subject "windows", "macos", or "linux" for the respective operating system.

After the installation, Tor Browser will try to connect to the Tor network. If Tor is blocked in your location, Connection Assist will try to automatically connect using a bridge or Snowflake. But if that doesn't work, the second step will be to obtain a bridge that works in China.

你有三种方式获取网桥:

  1. Snowflake使用短时有效的代理连接到 Tor 网络。 It's available in Tor Browser and other Tor powered apps like Orbot. 你可以从 Tor 浏览器的内置网桥菜单中选择 Snowflake。
  2. 未公开的私密 obfs4 网桥:找到我们的 Telegram 机器人 @GetBridgesBot 并发送 /bridges 来获取网桥。 Or send an email to frontdesk@torproject.org with the phrase "private bridge cn" in the subject of the email. 如果你懂些计算机技术,你可以自己在中国大陆境外搭建和运行 obfs4 网桥。 需要注意的是,通过 BridgeDB 获取的网桥和 Tor 浏览器内置的 obfs4 网桥,很可能无法使用。
  3. meek-azure:能让你伪装成访问微软的网站,而不是 Tor。 然而,此网桥有带宽限制,因此连接可能较慢。 你可以在 Tor 浏览器的内置网桥下拉单中选择 meek-azure。

如果以上某个方法无法使用,建议你检查 Tor 日志或尝试其他方法。

If you need help, you can also get support on Telegram https://t.me/TorProjectSupportBot and Signal.

有些网站无法分辨普通 Tor 用户和机器人,因而屏蔽了 Tor 用户的访问。 我们能让网站解封 Tor 用户的最成功的手段是让用户直接联系网站管理员。 这么做也许能解决你的问题:

“嗨!我正在使用 Tor 浏览器访问 xyz.com ,不过似乎你们并没有允许 Tor 用户访问。 我建议您重新考虑这个决定;Tor 被世界各地的人用来保护隐私和对抗审查。 封锁 Tor 用户意味着也可能封锁了希望在专制国家自由的浏览互联网的用户,希望隐藏自己避免被发现的研究人员、记者、举报人和社会活动家,或只是希望不被第三方跟踪的普通人。 请采取强硬立场支持数字隐私和互联网自由,以及允许 Tor 用户访问 xyz.com,谢谢。”

另外,银行等比较敏感的网站经常进行地区范围的屏蔽(例如如果你平时只在某个特定的国家使用他们的服务,从其他国家进行访问时你的账号可能就会被冻结)。

如果您不能连接到洋葱服务器,请查阅我无法访问 X.onion!

HTTPS

简单来说:你可以使用 Tor 浏览普通的 HTTPS 网站。

HTTPS 连接被用于确保计算机网络中的通信安全。 您可以在这里阅读更多有关 HTTPS 的信息。 Tor浏览器的 HTTPS-Only 模式自动将成千上万的网站从未加密的"HTTP "切换到更私密的"HTTPS"。

Tor 浏览器防止窃听者获知您访问过的网站。 不过,出口节点和出口节点与目标网站之间的监听者能看到通过 HTTP 协议传输的未加密的内容。 如果你访问的网站使用了 HTTPS,你的流量在离开出口节点时是加密的,不会被窃听者看到。

下方的可视化图例呈现了有使用和没有使用 Tor 浏览器和 HTTPS 加密连接时,网络监听者可以拦截窃取到的数据种类:

  • 点击“Tor”按钮可以查看使用 Tor 时有哪种数据可以让网络监听者直接拦截获取。此按钮的颜色变绿表示 Tor 已启动。
  • 点击“HTTPS”按钮可以查看使用 HTTPS 时有哪种数据可以让网络监听者直接拦截获取。此按钮的颜色变绿表示 HTTPS 已启动。
  • 两个按钮的颜色皆为绿色时,你可以看到在两种功能同时启动的状态下,网络监听者能够窃取到的数据有哪些。
  • 两个按钮的颜色皆为灰色时,你可以看到在两种功能没有启动的状态下,网络监听者能够窃取到的数据有哪些。



潜在可见数据
Site.com
访问过的网站。
USER / PW(用户名和密码)
用于身份验证的用户名和密码。
DATA(数据)
传输的数据。
LOCATION(位置)
访问网站的计算机的网络位置(公网 IP 地址)。
Tor
是否使用了 Tor。

中继运营人员

棒!如果您想允许几个中继来为网络贡献更多,我们很欢迎这样做。 但请不要在同一个网络上运行太多中继,因为分散与多样性是Tor 网络目标的一部分。

如果您真的决定要运行多个中继服务器,请打开每个中继服务器torrc上的“我的家庭”配置选项,列出在您控制下的所有中继服务器(用逗号隔开):

MyFamily $fingerprint1,$fingerprint2,$fingerprint3

每个指纹是40个字母组成的身份指纹(没有空格)。

这样的话,Tor 客户就会记住不要在单个环路里使用超过一个您的中继服务器。 如果您有这些计算机或其网络管理上的控制权,您就应该设置我的家庭,即使它们不全在同一个地理位置。

既然它现在是一名守卫了,客户们在其他地方使用它的频率变低了,但还没有许多客户将他们已有的守卫移走并把它当作守卫使用。 阅读这篇博客帖子 或名为 守卫的变迁:理解和改进Tor“入口守卫”选择的框架 的文档了解详情。

很棒! 这就是我们实施出口政策的原因。

每个 Tor 中继拥有一条出口规则,用于指定允许或拒绝何种类型的出站连接通过该中继。 出口政策通过目录传送给 Tor 的客户,所以客户会自动避免挑选会拒绝退出到他们想要到达的目的地的出口中继服务器。 这样一来,每个中继服务器都可以决定服务,主人和它想让连接到达的网络,这些都基于滥用的可能性和它自身的状况。 Read the Support entry on issues you might encounter if you use the default exit policy, and then read Mike Perry's tips for running an exit node with minimal harassment.

默认的出口中继协议允许许多流行服务的获取权(如网页浏览),但出于滥用的潜在风险,限制了一些服务(如邮箱),还有一些是因为流量大小超出了 Tor 网络的承受范围(如默认文件共享端口)。 您可以通过编辑您的torrc文件来更改您自己的出口策略。 If you want to avoid most if not all abuse potential, set it to "reject *:*". 这个设置意味着您的中继服务器只会被用来中继 Tor 网络内部的通讯,而不是外部的网站连接或其他服务。

如果您确实允许任何出口连接,确保域名解析正常(也就是,您的电脑能正确解析网络地址)。 如果有任何您的计算机不能访问的资源(比如您被限制性防火墙或内容过滤器拦住了),请明确的在您的出口节点规定里驳回它们,否则其他 Tor 的用户也会被影响。

您有两种添加至 torrc 的方法:

带宽率是指条件允许的情况下,最大的长时间传输带宽(字节每秒)。 比如,您也许想要选择“10M带宽率”来获得10兆字节每秒的传输速率(十分快速的连接),或者“500KB带宽率”来获取0.5兆每秒的传输速率(相当于一个不错的有线电缆传输速率)。 最小的 BandwidthRate 是 75KB 每秒。

BandwidthBurst是一个字节池,用于满足短期流量高于 BandwidthRate 但长期平均流量低于 BandwidthRate 的需求。 如果最近还未达平均水平且在速率低但爆发高的情况下,就会出现长期平均的情况,同时在高峰期仍允许更多的流量 。 比如,如果您选择了“带宽突发传输率 500KBytes” 并应用到您的带宽率,那么您的网速就永运不会超过50万字节每秒;但如果您选择了一个更高的带宽突发传输率(如5 MBytes),它就会允许更多的数据通过,直到资源池已满。

如果您有非对称连接(上传小于下载),比如一个电缆调制解调器,您应该把带宽率设置为小于较小带宽(通常是上传带宽)。 否则,您可能会在最大带宽使用时丢包——您可能需要实验哪些值使您的连接通畅。 然后设置BandwidthBurst与BandwidthRate相同。

基于 Linux 系统的 Tor 节点提供了另外一种选择:他们会优先将Tor置于其他运行网络之下,因此他们的私人网络运作不会被 Tor 影响。 在 Tor 源码发行版的 contrib 目录中可以找到一个[执行此操作的脚本](https://gitweb.torproject.org/tor.git/plain/contrib/operator-tools/linux-tor-prio.sh?h=maint-0.3.5)。

此外,还有一些休眠选项,你可以要求 Tor 在每个时间段只提供一定量的带宽(比如每月 100 GB)。这些在休眠条目中有所涉及。

请注意,带宽率和带宽突发传输率都是以字节而不是比特为单位的。

如果您允许了出口节点连接,那么人们通过您的中继服务器连接的一些服务就会连接回来,以收集更多关于您的信息。比如,一些 IRC 服务器会连接回您的identd接口来记录哪些用户建立了连接。(这实际上并不会奏效,因为 Tor 不知道这些信息,但他们还是会试一试。)此外,从您的节点出去的用户也许会吸引其他在 RC 服务器、网站等上的用户的注意,这些用户可能想要了解更多关于他们正在使用的这个中继服务器的主人的信息。

另一个原因是,在互联网上扫描公共代理的小组意识到有时 Tor 中继服务器会将它们的socks接口暴露给全世界。我们推荐您将socks接口只与本地网络捆绑。

在任何情况下,您都需要保持您的安全措施是最新的。在 Tor 中继服务器的安全措施 上阅读这篇文章以获得更多建议。

我们旨在让搭建一个Tor 中继简单而又边界:

  • 如果中继有时下线,这并没有关系。 目录系统会迅速注意到这一点,并停止发布该中继。 但请试图确保这并不会太频繁地发生,因为当中继断连时,正在使用该中继进行的连接也会断开。
  • 每个 Tor 中继服务器都有一个出口法规则,它详细规定了中继服务器应该同意什么样的外部连接,或是拒绝什么样的外部连接。 如果你不喜欢允许别人的流量经由你的中继出口,你可以设置成仅允许从其他 Tor 中继的连接。
  • 您的中继服务器会被动地估计并公布它最近的带宽容量,所以高带宽的中继服务器会比低带宽服务器吸引更多的用户。因此,拥有低带宽中继服务器也是有用的。

如果您的 Tor 中继服务器使用了比您预想中更多的记忆储存,这儿有几条减少足迹的贴士:

  • 如果您是 Linux 操作系统,您也许会在glibc的动态内存分配操作里遇到记忆储存碎片故障。 这就是说,当 or 将记忆储存释放回系统后,这些记忆储存的片段被分成了许多碎片,很难再被利用。 Tor 原始码是用 OpenBSD 的动态内存分配操作进行运输的,这个方法没有那么多的碎片故障(但代价是更高的 CPU 负荷)。 You can tell Tor to use this malloc implementation instead: ./configure --enable-openbsd-malloc.
  • 如果您正在运行一个高速中继服务器,这意味着您拥有许多 TLS 连接处于打开状态,您可能正有大量内存流失到了 OpenSSL 的内部缓冲储存器里(每个数据包 38KB+)。 我们已经给 OpenSSL 打过了补丁,来更激进地释放未使用的缓冲区记忆储存. 如果您升级到 OpenSSL 1.0.0或更新的版本,Tor 的构造进程会自动识别并使用这个特点。
  • 如果您仍然解决不了记忆存储加载的问题,不妨考虑一下减少您的中继服务器公布的带宽。 展示较少的带宽意味着您会吸引较少的用户,所以您的中继服务器的规模应该不会变得很大。 请查阅主页中的MaxAdvertisedBandwidth选项。

所有这些都说明,Tor 高速中继确实需要大量内存。高速出口节点占用500-1000 MB内存是不正常的。

BridgeDB 实施了六项机制以分发网桥:HTTPS, Moat, Email, Telegram, Settings 和 Reserved。 网桥运营者可以在中继搜索上查看他们的网桥正使用何种机制。 在表格中输入网桥的 <HASHED FINGERPRINT>,然后点击“搜索”。

运营者也可以选择他们的网桥使用何种分配方式。 要改变方式,请将 torrc 文件中的 BridgeDistribution 设置修改为以下之一:https,moat,email,telegram,settings,none,any。

阅读网桥安装后指南的更多内容。

Tor 进程的两个客户和中继服务器功能都适用于在 AccountingMax带宽率里分配的参数。 因此您可能会发现,一旦您的 Tor 进入休眠,您就不能进行浏览了,而且在日志里会出现这样一条记录:

Bandwidth soft limit reached; commencing hibernation.
不会接受新连接

解决方案是运行两个Tor 进程——一个中继和一个客户端,每一个进程使用自己的配置。 做到这一点(如果您是从一个正在工作的中继服务器设置开始的话)的一种方法如下:

  • 在中继的Tor torrc文件中,将SocksPort设置为0.
  • 从torrc.样例中创建一个新的用户torrc 文件,并确保它与中继服务器使用的不是同一个登陆文件。 一种命名约定可以是 torrc.client 和 torrc.relay。
  • 修改 Tor 客户端和中继服务器启动脚本来包括-f /path/to/correct/torrc
  • 在 Linux/BSD/Mac OS X 系统中,将启动脚本改为Tor.clientTor.relay可以使系统配置的分离变得更轻松。

默认开放的端口如下,但请注意,中继运营者可以通过在 torrc 中配置或修改源代码以开放任何端口。 The default according to src/or/policies.c (line 85 and line 1901) from the source code release release-0.4.6:

reject 0.0.0.0/8
reject 169.254.0.0/16
reject 127.0.0.0/8
reject 192.168.0.0/16
reject 10.0.0.0/8
reject 172.16.0.0/12

reject *:25
reject *:119
reject *:135-139
reject *:445
reject *:563
reject *:1214
reject *:4661-4666
reject *:6346-6429
reject *:6699
reject *:6881-6999
accept *:*

如果您的中继才刚刚开始运行,请给它一些时间。 Tor 根据带宽权威机构的报告来决定使用哪个中继服务器。这些机构测量您的中继服务器的容量,并随着时间推移,引导更多的通讯流量至您的中继服务器,直到它达到最佳运载量。 一个新的中继服务器的生命周期在这个博客帖子 里解释的更为详尽。 如果您运行中继服务器已经有一段时间了,并仍然有疑问,那么请尝试在tor-中继服务器名单 上提问。

You can run a relay in Windows following this tutorials:

You should only run a Windows relay if you can run it 24/7. If you are unable to guarantee that, Snowflake is a better way to contribute your resources to the Tor network.

Tor可以很好地处理使用动态IP地址的中继,这没有关系。 您只需要将您的torrc文件中的”Address“留空,然后 Tor 会猜出它来。

想了解更深入了解如何运行一个中继服务器,请参阅中继服务器设置指南

是的,您在一些攻击中确实能获得更好的匿名性。

最简单的例子是一个拥有一些数量Tor 中继的攻击者。 他们会看见一个来自您的连接,但他们不会知道这个连接是来自于您的电脑还是您的中继上的其他人。

有些情况下它爱莫能助:如果一个攻击者能观察您所有的通信往来,那么他很容易发现哪些连接被转发,哪些始于您。 (在这个情况下,他们仍然不知道您的目的地址,除非他们也在观察它们,但您的处境也不比一个普通客户端好。)

运行一个Tor中继也有一些坏处。 首先,我们只有几百个中继,而您恰好运行其中一个,这个事实对于攻击者来说是一个您把匿名看得很重要的信号。 第二,有一些更难以理解的攻击,并不通俗易懂或久经测试,涉及到利用你正在运行的中继的知识--例如,一个攻击者可能能够“观察”你是否在发送流量,即使他们不能实际观察你的网络,通过你的 Tor 中继转发流量并注意到流量时间的变化。

收益是否大于风险是一个开放的研究性问题。 很大程度上这取决于您最担心的攻击方式。 对于大多数用户来说,我们认为这是一种明智的举动。

  • 不要使用 Ubuntu 仓库中的包,它们未得到可靠更新。 如果您使用它们,您可能会错过重要的稳定性和安全性修复。
  • 运行下面的命令确定你 Ubuntu 的版本:
     ‪$ lsb_release -c
    
  • 以 root 用户身份把下面的行添加到 /etc/apt/sources.list 中。用前一步你获得的版本号代替'version':
     deb https://deb.torproject.org/torproject.org version main
     deb-src https://deb.torproject.org/torproject.org version main
    
  • 运行下面的命令来添加签名软件包的 gpg 公钥:
     ‪$ curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
    
  • 运行下面的命令来检查签名并安装 tor:
     ‪$ sudo apt-get update
     ‪$ sudo apt-get install tor deb.torproject.org-keyring
    

Tor has partial support for IPv6 and we encourage every relay operator to enable IPv6 functionality in their torrc configuration files when IPv6 connectivity is available. Tor 目前需要中继的 IPv4 地址,您不能在仅有 IPv6 的主机上运行 Tor 中继。

简而言之,它这样工作:

  • There is a primary ed25519 identity secret key file named "ed25519_master_id_secret_key". 这是最重要的一个,所以请确保您在安全的地方存有备份——这份文件十分敏感,应得到充分保护。 如果您手动生成它,Tor 会对它进行加密并在被要求时输入密码。
  • 一个叫"ed25519_signing_secret_key"的中期签名密钥已经被生成,供Tor 使用。 Also, a certificate is generated named "ed25519_signing_cert" which is signed by the primary identity secret key and confirms that the medium term signing key is valid for a certain period of time. 默认有效期为30天,但这个时长可以在torrc里通过设置" 签名密钥有效时间 N 天|周|月 "来自行调节。
  • There is also a primary public key named "ed25519_master_id_public_key", which is the actual identity of the relay advertised in the network. This one is not sensitive and can be easily computed from "ed5519_master_id_secret_key".

Tor will only need access to the medium term signing key and certificate as long as they are valid, so the primary identity secret key can be kept outside DataDirectory/keys, on a storage media or a different computer. 您不得不在中期签名密钥和认证过期前手动更新它们,否则中继服务器上的Tor 进程会在到期时立刻退出。

这个功能是可选的,您不需要使用它除非您想这么做。 If you want your relay to run unattended for longer time without having to manually do the medium term signing key renewal on regular basis, best to leave the primary identity secret key in DataDirectory/keys, just make a backup in case you'll need to reinstall it. 如果您想要使用这个特殊功能,请参考我们在这个话题上更详细的指南

当一个出口被错误地配置了,或是一个恶意出口,它会被分配给损坏出口标志。这会让 Tor 避免将那个中继服务器作为出口。事实上,有着这个标志的中继服务器就相当于不存在。 如果您有了这个旗帜标志,那么说明我们在从您的出口节点路由通信时发现了问题或可疑活动,但无法联系上您。请与问题中继服务器团队 取得联系,这样我们才能整治问题。

  • 出口节点是需求最大的一种中继服务器,但同时,它也面临着最大程度的法律曝光和风险(而且您不应该在您的家里运行它们)。
  • 如果您正考虑用最小代价运行一个中继,快速守卫中继也十分有用
  • Followed by bridges.

On relay search we show an amber dot next to the relay nickname when it is overloaded. This means that one or many of the following load metrics have been triggered:

Note that if a relay reaches an overloaded state we show it for 72 hours after the relay has recovered.

假若发生节点过载,请执行以下步骤:

  1. https://status.torproject.org/ 的“Tor 网络”(Tor Network)分类检查任何已知问题。

  2. 考虑为你的系统调整 sysctl 优化网络,内存和 CPU 负载。

  3. 请考虑启用 MetricsPort 了解实际情况。

调整 sysctl 优化网络,内存和 CPU 负载

TCP port exhaustion

If you are experiencing TCP port exhaustion consider expanding your local port range. You can do that with

# sysctl -w net.ipv4.ip_local_port_range="15000 64000"

# echo 15000 64000 > /proc/sys/net/ipv4/ip_local_port_range

Keep in mind that tuning sysctl as described is not permanent and will be lost upon restart. You need to add the configuration to /etc/sysctl.conf or to a file in /etc/sysctl.d/ to make it permanent.

MetricsPort

To understand the well-being of Tor relays and the Tor network it is vital to provide and have access to relay metrics. Relay overload information has been added to relay descriptors since 0.4.6+ but it was not until Tor >= 0.4.7.1-alpha that an interface to the underlying relay metrics was available: the metrics port.

Enabling MetricsPort

Tor provides access to the metrics port via a torrc configuration option called MetricsPort.

It's important to understand that exposing the tor MetricsPort publicly is dangerous for the Tor network users, which is why that port is not enabled by default and its access has to be governed by an access policy. Please take extra precaution and care when opening this port, and close it when you are done debugging.

Let's assume you are the only user on a server that runs a Tor relay. You can enable the metrics port adding this to your torrc file:

MetricsPort 127.0.0.1:9035
MetricsPortPolicy accept 127.0.0.1

And then you will be able to easily retrieve the metrics with:

# curl http://127.0.0.1:9035/metrics

which are by default in a Prometheus format.

Note: every user on that server will be able to access those relay metrics in the example above. In general, set a very strict access policy with MetricsPortPolicy and consider using your operating systems firewall features for defense in depth.

For a more detailed explanation about MetricsPort and MetricsPortPolicy see tor's man page.

MetricsPort output

Here is an example of what output enabling MetricsPort will produce (we omitted any congestion control related metrics as we still need to stabilize that interface):

# HELP tor_relay_connections Total number of opened connections
# TYPE tor_relay_connections gauge
tor_relay_connections{type="OR listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Exit",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Exit",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened",family="ipv6"} 0
# HELP tor_relay_connections_total Total number of created/rejected connections
# TYPE tor_relay_connections_total counter
tor_relay_connections_total{type="OR listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="rejected",family="ipv6"} 0
# HELP tor_relay_flag Relay flags from consensus
# TYPE tor_relay_flag gauge
tor_relay_flag{type="Fast"} 0
tor_relay_flag{type="Exit"} 0
tor_relay_flag{type="Authority"} 0
tor_relay_flag{type="Stable"} 0
tor_relay_flag{type="HSDir"} 0
tor_relay_flag{type="Running"} 0
tor_relay_flag{type="V2Dir"} 0
tor_relay_flag{type="Sybil"} 0
tor_relay_flag{type="Guard"} 0
# HELP tor_relay_circuits_total Total number of circuits
# TYPE tor_relay_circuits_total gauge
tor_relay_circuits_total{state="opened"} 0
# HELP tor_relay_streams_total Total number of streams
# TYPE tor_relay_streams_total counter
tor_relay_streams_total{type="BEGIN"} 0
tor_relay_streams_total{type="BEGIN_DIR"} 0
tor_relay_streams_total{type="RESOLVE"} 0
# HELP tor_relay_traffic_bytes Traffic related counters
# TYPE tor_relay_traffic_bytes counter
tor_relay_traffic_bytes{direction="read"} 0
tor_relay_traffic_bytes{direction="written"} 0
# HELP tor_relay_dos_total Denial of Service defenses related counters
# TYPE tor_relay_dos_total counter
tor_relay_dos_total{type="circuit_rejected"} 0
tor_relay_dos_total{type="circuit_killed_max_cell"} 0
tor_relay_dos_total{type="circuit_killed_max_cell_outq"} 0
tor_relay_dos_total{type="marked_address"} 0
tor_relay_dos_total{type="marked_address_maxq"} 0
tor_relay_dos_total{type="conn_rejected"} 0
tor_relay_dos_total{type="concurrent_conn_rejected"} 0
tor_relay_dos_total{type="single_hop_refused"} 0
tor_relay_dos_total{type="introduce2_rejected"} 0
# HELP tor_relay_load_onionskins_total Total number of onionskins handled
# TYPE tor_relay_load_onionskins_total counter
tor_relay_load_onionskins_total{type="tap",action="processed"} 0
tor_relay_load_onionskins_total{type="tap",action="dropped"} 0
tor_relay_load_onionskins_total{type="fast",action="processed"} 0
tor_relay_load_onionskins_total{type="fast",action="dropped"} 0
tor_relay_load_onionskins_total{type="ntor",action="processed"} 0
tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0
tor_relay_load_onionskins_total{type="ntor_v3",action="processed"} 0
tor_relay_load_onionskins_total{type="ntor_v3",action="dropped"} 0
# HELP tor_relay_exit_dns_query_total Total number of DNS queries done by this relay
# TYPE tor_relay_exit_dns_query_total counter
tor_relay_exit_dns_query_total 0
# HELP tor_relay_exit_dns_error_total Total number of DNS errors encountered by this relay
# TYPE tor_relay_exit_dns_error_total counter
tor_relay_exit_dns_error_total{reason="success"} 0
tor_relay_exit_dns_error_total{reason="format"} 0
tor_relay_exit_dns_error_total{reason="serverfailed"} 0
tor_relay_exit_dns_error_total{reason="notexist"} 0
tor_relay_exit_dns_error_total{reason="notimpl"} 0
tor_relay_exit_dns_error_total{reason="refused"} 0
tor_relay_exit_dns_error_total{reason="truncated"} 0
tor_relay_exit_dns_error_total{reason="unknown"} 0
tor_relay_exit_dns_error_total{reason="tor_timeout"} 0
tor_relay_exit_dns_error_total{reason="shutdown"} 0
tor_relay_exit_dns_error_total{reason="cancel"} 0
tor_relay_exit_dns_error_total{reason="nodata"} 0
# HELP tor_relay_load_oom_bytes_total Total number of bytes the OOM has freed by subsystem
# TYPE tor_relay_load_oom_bytes_total counter
tor_relay_load_oom_bytes_total{subsys="cell"} 0
tor_relay_load_oom_bytes_total{subsys="dns"} 0
tor_relay_load_oom_bytes_total{subsys="geoip"} 0
tor_relay_load_oom_bytes_total{subsys="hsdir"} 0
# HELP tor_relay_load_socket_total Total number of sockets
# TYPE tor_relay_load_socket_total gauge
tor_relay_load_socket_total{state="opened"} 0
tor_relay_load_socket_total 0
# HELP tor_relay_load_tcp_exhaustion_total Total number of times we ran out of TCP ports
# TYPE tor_relay_load_tcp_exhaustion_total counter
tor_relay_load_tcp_exhaustion_total 0
# HELP tor_relay_load_global_rate_limit_reached_total Total number of global connection bucket limit reached
# TYPE tor_relay_load_global_rate_limit_reached_total counter
tor_relay_load_global_rate_limit_reached_total{side="read"} 0
tor_relay_load_global_rate_limit_reached_total{side="write"} 0

Let's find out what some of these lines actually mean:

tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0

When a relay starts seeing "dropped", it is a CPU/RAM problem usually.

Tor is sadly single threaded except for when the "onion skins" are processed. The "onion skins" are the cryptographic work that needs to be done on the famous "onion layers" in every circuits.

When tor processes the layers we use a thread pool and outsource all of that work to that pool. It can happen that this pool starts dropping work due to memory or CPU pressure and this will trigger an overload state.

If your server is running at capacity this will likely be triggered.

The ntor and ntor_v3 values will be the same at the moment which is a bug we need to fix.

tor_relay_exit_dns_error_total{...}

Any counter in the "*_dns_error_total" realm (apart from the one for successful queries) indicates a potential DNS related problem. However, we realized during the 0.4.7 release cycle that DNS errors are way too noisy and contain too many false positives to be useful for overload reporting purposes. We therefore don't use them anymore for that purpose starting with 0.4.6.9 and 0.4.7.4-alpha. However, we still keep DNS metrics around to give the relay operator insight into what is going on with their relay.

DNS timeout issues and errors only apply to Exit nodes.

tor_relay_load_oom_bytes_total{...}

An Out-Of-Memory invocation indicates a RAM problem. The relay might need more RAM or it is leaking memory. If you noticed that the tor process is leaking memory, please report the issue either via Tor gitLab or sending an email to the tor-relays mailing list.

Tor has its own OOM handler and it is invoked when 75%, of the total memory tor thinks is available, is reached. Thus, let say tor thinks it can use 2GB in total then at 1.5GB of memory usage, it will start freeing memory. That is considered an overload state.

To estimate the amount of memory it has available, when tor starts, it will use MaxMemInQueues or, if not set, will look at the total RAM available on the system and apply this algorithm:

    if RAM >= 8GB {
      memory = RAM * 40%
    } else {
      memory = RAM * 75%
    }
    /* Capped. */
    memory = min(memory, 8GB) -> [8GB on 64bit and 2GB on 32bit)
    /* Minimum value. */
    memory = max(250MB, memory)

To avoid an overloaded state we recommend to run a relay above 2GB of RAM on 64bit. 4GB is advised, although of course it doesn't hurt to add more RAM if you can.

One might notice that tor could be called by the OS OOM handler itself. Because tor takes the total memory on the system when it starts, if the overall system has many other applications running using RAM, it ends up eating too much memory. In this case the OS could OOM tor, without tor even noticing memory pressure.

tor_relay_load_socket_total

If the number of opened sockets is close to or the same as total sockets available then this indicates the relay is running out of sockets. The solution is to increase ulimit -n for the tor process.

tor_relay_load_tcp_exhaustion_total

These lines indicate the relay is running out of TCP ports.

Try to tune sysctl as described above.

tor_relay_load_global_rate_limit_reached_total

If this counter is incremented by some noticeable value over a short period of time, the relay is congested. It is likely being used as a Guard by a big onion service or for an ongoing DDoS on the network.

If your relay is still overloaded and you don't know why, please get in touch with network-report@torproject.org. You can encrypt your email using network-report OpenPGP key.

在升级您的 Tor 中继服务器,或把它转移到另一台计算机上时,重要的是保持同样的身份密钥(存储于您的数据词典里的"keys/ed25519_master_id_secret_key" and "keys/secret_id_key")。 给身份密钥进行备份,这样您就可以在未来修复中继服务器。这是我们推荐的确保中继服务器的名誉不被浪费的方法。

这意味着,如果您正在升级您的 Tor 中继服务器,且您没有更改torrc和数据词典,那么升级过程不会出现问题,您的中继服务器会继续使用相同的密钥。 如果您需要选择一个新的数据词典,请确保复制了您旧的keys/ed25519_master_id_secret_key and keys/secret_id_key。

If you are a bridge operator, also make sure to copy pt_state/. It contains data required for your bridge to keep working with the same bridge line.

Note: As of Tor 0.2.7 we are using new generation identities for relays based on ed25519 elliptic curve cryptography. 最终它们会取代老的 RSA 身份,来确保老版本的兼容性,但这不会立即发生。 直到那时,每个中继服务器都会有一个ed25519身份(身份密钥文件:keys/ed25519_master_id_secret_key)和一个 RSA 身份(身份密钥文件:keys/secret_id_key)。 您需要将两者都拷贝 / 备份,以便恢复您的中继服务器,更改您的数据词典或将中继服务器移植到另一台计算机上。

所有的传出连接必须被允许,这样每一个中继才可以与其他中继互相通讯。

在许多司法管辖区,Tor 中继服务器运行者是受公共承运人法律保护的,这条法律保护互联网服务提供者免受潜在的传播第三方内容的法律风险。 过滤某些流量的出口节点将丧失那些保护。

Tor促进了免费无干扰的网络访问。 出口中继不得过滤通过中继的互联网流量。 被检测到过滤流量的出口节点会被打上劣质出口的标签。

特别地,如果您正在使用Debian或Ubuntu,从 Tor 项目的信息库 里安装 Tor 会有许多好处。

  • Your ulimit -n gets set to 32768 high enough for Tor to keep open all the connections it needs.
  • 为 Tor 创建一个用户,所以 Tor 不需要root就能运行。
  • 一个启动脚本被包含在了里面,这样 Tor 就会在开机时自行启动。
  • Tor runs with --verify-config, so that most problems with your config file get caught.
  • Tor 可以捆绑低层级的接口,然后下放权限。

We're looking for people with reasonably reliable Internet connections, that have at least 10 Mbit/s (Mbps) available bandwidth each way. If that's you, please consider running a Tor relay.

Even if you do not have at least 10 Mbit/s of available bandwidth you can still help the Tor network by running a Tor bridge with obfs4 support. In that case you should have at least 1 MBit/s of available bandwidth.

Tor 通过询问计算机的主机名来猜测它的IP地址,然后解析那个主机名。人们往往在他们的 /etc/hosts 文件里有指向旧 IP 地址的旧条目。

如果那不能解决这个问题,您应该使用“地址”配置选项来具体说明您想选取的 IP 地址。如果您的计算机处于一个网络地址转换里,并只有一个内部IP地址,请查看以下关于如何进入动态IP地址的技术支持。

并且,如果您有许多地址,您可能也想要设置“OutboundBindAddress”,这样外部的连接就会来自您想要展示给世界的那个。

您是正确的,在大多数情况下,您的 Tor 中继服务器进一个比特就意味着要出一个比特,反之亦然。但也有几个例外:

如果您打开了您的 DirPort,那么 Tor 的客户端就会向您索要一份目录的拷贝。 他们发出的请求(一个 HTTP GET)十分的小,然而回复有时会非常大。 这应该能解释大多数您的“写入”比特量与“读取”比特量之间的不符。

当您以出口节点运行,并阅读了来自出口连接的几比特信息(比如一则即时信息或ssh连接),把它包裹成一个完整的512比特包以便在 Tor 网络里运输时,一个小小的例外会出现。

Why Relay Load Varies

Tor manages bandwidth across the entire network. It does a reasonable job for most relays. But Tor's goals are different to protocols like BitTorrent. Tor wants low-latency web pages, which requires fast connections with headroom. BitTorrent wants bulk downloads, which requires using all the bandwidth.

We're working on a new bandwidth scanner, which is easier to understand and maintain. It will have diagnostics for relays that don't get measured, and relays that have low measurements.

Why does Tor need bandwidth scanners?

Most providers tell you the maximum speed of your local connection. But Tor has users all over the world, and our users connect to one or two Guard relays at random. So we need to know how well each relay can connect to the entire world.

So even if all relay operators set their advertised bandwidth to their local connection speed, we would still need bandwidth authorities to balance the load between different parts of the Internet.

What is a normal relay load?

It's normal for most relays to be loaded at 30%-80% of their capacity. This is good for clients: an overloaded relay has high latency. (We want enough relays to so that each relay is loaded at 10%. Then Tor would be almost as fast as the wider Internet).

Sometimes, a relay is slow because its processor is slow or its connections are limited. Other times, it is the network that is slow: the relay has bad peering to most other tor relays, or is a long distance away.

Finding Out what is Limiting a Relay

Lots of things can slow down a relay. Here's how to track them down.

System Limits

  • Check RAM, CPU, and socket/file descriptor usage on your relay

Tor logs some of these when it starts. Others can be viewed using top or similar tools.

Provider Limits

  • Check the Internet peering (bandwidth, latency) from your relay's provider to other relays. Relays transiting via Comcast have been slow at times. Relays outside North America and Western Europe are usually slower.

Tor Network Limits

Relay bandwidth can be limited by a relay's own observed bandwidth, or by the directory authorities' measured bandwidth. Here's how to find out which measurement is limiting your relay:

  • Check each of the votes for your relay on consensus-health (large page), and check the median. If your relay is not marked Running by some directory authorities:
    • Does it have the wrong IPv4 or IPv6 address?
    • Is its IPv4 or IPv6 address unreachable from some networks?
    • Are there more than 2 relays on its IPv4 address?

Otherwise, check your relay's observed bandwidth and bandwidth rate (limit). Look up your relay on Metrics. Then mouse over the bandwidth heading to see the observed bandwidth and relay bandwidth rate.

Here is some more detail and some examples: Drop in consensus weight and Rampup speed of Exit relay.

How to fix it

The smallest of these figures is limiting the bandwidth allocated to the relay.

  • If it's the bandwidth rate, increase the BandwidthRate/Burst or RelayBandwidthRate/Burst in your torrc.
  • If it's the observed bandwidth, your relay won't ask for more bandwidth until it sees itself getting faster. You need to work out why it is slow.
  • If it's the median measured bandwidth, your relay looks slow from a majority of bandwidth authorities. You need to work out why they measure it slow.

Doing Your Own Relay Measurements

If your relay thinks it is slow, or the bandwidth authorities think it is slow, you can test the bandwidth yourself:

  • Run a test using tor to see how fast tor can get on your network/CPU.
  • Run a test using tor and chutney to find out how fast tor can get on your CPU. Keep increasing the data volume until the bandwidth stops increasing.

关于如何用您的 NAT/路由设备进行端口转发的指导,参见 portforward.com

如果您的中继在内网运行,您需要设置端口转发。 转发 TCP 连接取决于系统,但配有防火墙的客户端 FAQ 条目提供了一些关于如何做的例子。

另外,这里也有一个说明如何在 GNU/Linux 下使用 iptables 操作的例子:

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 9001 -j ACCEPT

如果您有不同的(连接到互联网的)外部接口,您可能需要改动"eth0"。 因为您可能只有一个(除了环回接口)所以这应该不难找。

不要这么做。 如果司法部门察觉了你出口节点的数据流量,他们可能会没收你的电子设备。 出于这些原因,最好不要在你的家中或使用你家里的网络运行出口节点。

推荐在支持 Tor 的商业实体(例如某些 VPS 服务商 —— 译者注)上搭建 Tor 的出口节点。 你的出口节点有一个独立的 IP 地址,而且不会传输你的流量。 当然,你应该避免在你运行出口节点的电脑上存储任何敏感或与你有关的信息。

torrc文件里的会计选项让您能够明确规定您的中继服务器在一段时间内使用的最大流量。

    AccountingStart day week month [day] HH:MM

这详细规定了计数器应该在何时被重置。比方说,要想设置可供服务一星期的比特量(这在每周三上午10:00点会重置),您会使用:

    AccountingStart week 3 10:00
    AccountingMax 500 GBytes

这详细规定了您的中继服务器在一个计数周期内发送的最大数据量和接收的最大数据量。 当会计期间被(AcountingStart)重置后,AccountingMax 的计数器会被重置为0。

比如:假设您想要每天每个方向设置50GB的流量,那么计数器就应该在每天中午重置:

    AccountingStart day 12:00
    AccountingMax 50 GBytes

请注意,您的中继服务器不会在每个会计期间的一开始恰好被唤醒。 它会跟踪记录它在上一个时期里使用额度的速度有多快,并在新的时间间隔里选择一个随机的点唤醒。 这样我们就能避免数百个中继服务器在每个月的一开始就同时运行,结果在月末就没有服务器运行的情况发生。

相较于您的连接速率,如果您只能贡献一小部分带宽,我们推荐您使用日常账户,这样您就不会在每个月的第一天就把一整个月的额度全用光。 只要将您每月的限额除以30即可。您也可以考虑将流量限速,把您的额度覆盖更多的时间:如果您想要在每个方向提供X GB, 您可以将中继服务器的带宽率设为20*X KB. 比如,如果您每种方法都有50GB可提供,您也许要将您的中继服务器带宽率调为1000 KBytes: 这样您的中继服务器就总是可保持每天起码有一半的时间可以使用。

    AccountingStart day 0:00
    AccountingMax 50 GBytes
    RelayBandwidthRate 1000 KBytes
    RelayBandwidthBurst 5000 KBytes # 允许更高的短时流量但是保持平均

洋葱服务

没错!我们洋葱服务的名单可以在 onion.torproject.org 上找到。

当浏览一项洋葱服务时,Tor 浏览器会在地址栏展示不同的洋葱图标,来表示当前网站的安全等级。

Image of an onion An onion means:

  • The Onion Service is served over HTTP, or HTTPS with a CA-Issued certificate.
  • The Onion Service is served over HTTPS with a Self-Signed certificate.

Image of an onion with a red slash An onion with a red slash means:

  • The Onion Service is served with a script from an insecure URL.

Image of an onion with a caution sign An onion with caution sign means:

  • The Onion Service is served over HTTPS with an expired Certificate.
  • The Onion Service is served over HTTPS with a wrong Domain.
  • The Onion Service is served with a mixed form over an insecure URL.

If you cannot reach the onion service you desire, make sure that you have entered the 56-character onion address correctly; even a small mistake will stop Tor Browser from being able to reach the site. 如果你仍然无法访问这个洋葱服务,请稍后重试。 有可能是网络连接有出现暂时性阻碍,或者是该网站的管理员在没有提示的情况下关闭了网站。

You can also ensure that you're able to access other onion services by connecting to DuckDuckGo's onion service.

Onion-Location is a new HTTP header that web sites can use to advertise their onion counterpart. If the web site that you're visiting has an onion site available, a purple suggestion pill will prompt at the URL bar saying ".onion available". When you click on ".onion available", the web site will be reloaded and redirected to its onion counterpart. At the moment, Onion-Location is available for Tor Browser desktop (Windows, macOS and GNU/Linux). You can learn more about Onion-Location in the Tor Browser Manual. If you're an onion service operator, learn how to configure Onion-Location in your onion site.

How do I know if I'm using v2 or v3 onion services?

You can identify v3 onion addresses by their 56 character length, e.g. Tor Project's v2 address:http://expyuzz4wqqyqhjn.onion/, and Tor Project's v3 address: http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/

If you're an onion service administrator, you must upgrade to v3 onion services as soon as possible. If you're a user, please ensure that you update your bookmarks to the website's v3 onion addresses.

What is the timeline for the v2 deprecation?

In September 2020, Tor started warning onion service operators and clients that v2 will be deprecated and obsolete in version 0.4.6. Tor Browser started warning users in June, 2021.

In July 2021, 0.4.6 Tor will no longer support v2 and support will be removed from the code base.

In October 2021, we will release new Tor client stable versions for all supported series that will disable v2.

You can read more in the Tor Project's blog post Onion Service version 2 deprecation timeline.

Can I keep using my v2 onion address? Can I access my v2 onion after September? Is this a backward-incompatible change?

V2 onion addresses are fundamentally insecure. If you have a v2 onion, we recommend you migrate now. This is a backward incompatible change: v2 onion services will not be reachable after September 2021.

What is the recommendation for developers to migrate? Any tips on how to spread the new v3 addresses to people?

In torrc, to create a version 3 address, you simply need to create a new service just as you did your v2 service, with these two lines:

HiddenServiceDir /full/path/to/your/new/v3/directory/
HiddenServicePort <virtual port> <target-address>:<target-port>

The default version is now set to 3 so you don't need to explicitly set it. Restart tor, and look on your directory for the new address. If you wish to keep running your version 2 service until it is deprecated to provide a transition path to your users, add this line to the configuration block of your version 2 service:

HiddenServiceVersion 2

This will allow you to identify in your configuration file which one is which version.

If you have Onion-Location configured on your website, you need to set the header with your new v3 address. For technical documentation about running onion services, please read the Onion Services page in our Community portal.

I didn't see the announcement, can I get more time to migrate?

No, v2 onion connections will start failing nowish, first slowly, then suddenly. It's time to move away.

Will services start failing to be reached in September, or before already?

Already, introduction points are not in Tor 0.4.6 anymore, so they will not be reachable if relay operators update.

As a website administrator, can I redirect users from my v2 onion to v3?

Yes, it will work until the v2 onion address is unreachable. You may want to encourage users to update their bookmarks.

Are v3 onion services going to help in mitigating DDoS problems?

Yes, we are continuously working on improving onion services security. Some of the work we have in our roadmap is ESTABLISH_INTRO Cell DoS Defense Extension, Res tokens: Anonymous Credentials for Onion Service DoS Resilience, and A First Take at PoW Over Introduction Circuits. For an overview about these proposals, read the detailed blog post How to stop the onion denial (of service).

只能通过 Tor 访问的网站称作“洋葱服务”,它们以 .onion 结尾。 比如,DuckDuckGo 的洋葱站点是 https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion/。 您可以用 Tor 浏览器访问这些网站。 因为洋葱服务并不能像普通的网站一样被索引,所以必须由网站所有者把洋葱服务的地址分享给你。

An authenticated onion service is an onion service that requires you to provide an authentication token (in this case, a private key) before accessing the service. The private key is not transmitted to the service, and it's only used to decrypt its descriptor locally. You can get the access credentials from the onion service operator. Reach out to the operator and request access. Learn more about how to use onion authentication in Tor Browser. If you want to create an onion service with client authentication, please see the Client Authorization in the Community portal.

洋葱服务允许人们匿名的访问和发表信息,包括架设匿名网站。

洋葱服务还被依赖于提供一系列的服务:去元数据式的聊天,文件共享,利用诸如SecureDrop洋葱共享 进行的记者之间的互动和资源共享,更安全的软件升级,和更安全的访问如 Facebook 这样网页的渠道。

These services use the special-use top level domain (TLD) .onion (instead of .com, .net, .org, etc.) and are only accessible through the Tor network.

洋葱图标

When accessing a website that uses an onion service, Tor Browser will show at the URL bar an icon of an onion displaying the state of your connection: secure and using an onion service.

To learn more about onion services, read How do Onion Services work?

其他

Tor 开发者没有追踪 Tor 用户的手段。 Tor 具有避免恶意用户破坏匿名性的保护措施,这些措施也阻止了我们追踪用户。

不,我们不提供任何在线服务。 我们所有软件项目的清单可以在我们的 项目页面 里找到。

Tor 有不同的资金支持赞助,包括美国中央政府部分机构(译者加:应该是搞笑的,Tor 被列为国家安全局重点监控对象-----因为无法监控),私有募款机构和个人。 查看我们所有的赞助商 和一系列关于我们财务报告的博客帖子

我们认为开诚布公地谈论我们的赞助商和资助模式是与社区保持信任的最佳方式。 我们一直在寻求更多的资金来源,尤其是基金会和个人。

要想在 Tor 上共享文件,onionShare 是个好的选择。 洋葱共享是一个开源、安全、匿名式收发文件的工具,使用的是 Tor 洋葱服务。 它的工作原理是:直接在您的计算机上开启网络服务器,并将其变成一个不可猜测的 Tor 网络地址以便访问,他人可以登陆 Tor 浏览器来从您这里下载文件,或者向您上传文件。 这不要求设置一个独立的服务器,使用第三方文件共享服务,或甚至是登陆账户。

不像邮件、Google Drive、DropBox、WeTransfer 或几乎其他任何一种人们通常用来发送文件的服务,当您使用洋葱共享时,您不需要授予任何公司您共享文件的访问权限。 只要您以一种安全的方式共享不可猜测的网络地址(比如用编码过的通信软件进行传输),除了您和与您共享的人以外没有人可以访问这些文件。

OnionShare由Micah Lee开发。

很多出口节点会设置成阻止 BitTorrent 一类的文件共享服务的流量。 特别地,BitTorrent 在 Tor 中是无法匿名的

目前路径的长度为 3 加上你的路径中敏感路径的数量。 是的,通常是三个,但如果你访问洋葱服务或是“.exit”地址时会增加。

因为会增加网络的负载而且(据我们所知)不会提供任何额外的安全性,所以我们不鼓励使用比默认设置更长的路径长度。 并且,使用长度超过3的线路会损害您的匿名性,首先这回让拒绝安全措施 的攻击变得更容易,其次,如果只有很少的用户的线路长度和您一样,您会很容易被区分出来。

不,在几次 beta 版之后,我们终止了 Tor Messenger 的支持。 即使现在没有那么多资源进行这项工作,我们依旧相信 Tor 可以和即时消息结合。 你也相信吗?联系我们

Vidalia 已经不再维护和支持。 Vidalia 提供的许多功能已经整合进了 Tor 浏览器中。

Tor 依靠全球用户和志愿者的支持,来协助我们改进相关软件和资源,因此你的反馈对我们(以及所有 Tor 用户)而言极具价值。

反馈模板

给我们发送反馈或者报告程序问题时,请尽量包含以下信息,越多越好:

  • Operating System you are using
  • Tor 浏览器版本
  • Tor Browser Security Level
  • 请详细叙述您遇到问题的过程和步骤,以便于我们重新还原您遇到的问题。(比如,“我打开了浏览器,输入了一个网页地址,点击了图标,然后我的浏览器就崩溃了。”)
  • 一张显示问题的截屏
  • 日志文件

如何与我们联系

有多种方式可以联系我们,请选择对您来说最方便的一种。

Tor Forum

We recommend asking for help on the Tor Forum. You will need to create an account to submit a new topic. Before you ask, please review our discussion guidelines. At the moment, for the fastest response, please write in English. If you found a bug, please use GitLab.

GitLab

First, check if the bug is already known. You can search and read all the issues at https://gitlab.torproject.org/. To create a new issue, please request a new account to access Tor Project's GitLab instance and find the right repository to report your issue. We track all Tor Browser related issues at Tor Browser issue tracker. Issues related to our websites should be filed under the Web issue tracker.

Telegram

If you need help installing or troubleshooting Tor Browser and the Tor Forum is blocked or censored where you are, you can reach out to us on Telegram https://t.me/TorProjectSupportBot. A Tor support specialist will assist you. At the moment, the Telegram support channel is available in two languages: English and Russian.

电子邮件

Send us an email to frontdesk@torproject.org

In the subject line of your email, please tell us what you're reporting. The more specific your subject line is (e.g. "Connection failure", "feedback on website", "feedback on Tor Browser, "I need a bridge"), the easier it will be for us to understand and follow up. Sometimes when we receive emails without subject lines, they're marked as spam and we don't see them.

For the fastest response, please write in English, Spanish, and/or Portuguese if you can. If none of these languages works for you, please write in any language you feel comfortable with, but keep in mind it will take us a bit longer to answer as we will need help with translation to understand it.

博客文章评论

You can always leave comments on the blog post related to the issue or feedback you want to report. If there is not a blog post related to your issue, please contact us another way.

IRC

You can find us in the #tor channel on OFTC to give us feedback or report bugs/issues. We may not respond right away, but we do check the backlog and will get back to you when we can.

了解如何连接到 OFTC 服务器.

邮件列表

For reporting issues or feedback using email lists, we recommend that you do so on the one that is related to what you would like to report. A complete directory of our mailing lists can be found here.

想要反馈或有关 Tor 浏览器、Tor 网络和 Tor 开发的其他项目的问题:tor-talk

想要反馈或有关我们网站的问题:ux

想要获得反馈或有关运行 Tor 中继服务器的问题: tor-relays

反馈有关 Tor 浏览器使用手册或支持网站的问题:tor-community-team

报告安全问题

如果您在我们的项目或基础设施里发现了问题,请发邮件至tor-security@lists.torproject.org。 如果您在 Tor或 Tor 浏览器里找到了安全漏洞,请报告给我们的漏洞悬赏项目. 如果你想要加密邮件,可以联系 tor-security-sendkey@lists.torproject.org,或从 pool.sks-keyservers.net 列表中获取 GPG 公钥。指纹如下:

  gpg --fingerprint tor-security@lists.torproject.org
  pub 4096R/1A7BF184 2017-03-13
  Key fingerprint = 8B90 4624 C5A2 8654 E453 9BC2 E135 A8B4 1A7B F184
  uid tor-security@lists.torproject.org
  uid tor-security@lists.torproject.org
  uid tor-security@lists.torproject.org
  sub 4096R/C00942E4 2017-03-13

不推荐将 Tor 和 BitTorrent 一起使用。 更多详情,请看我们有关该话题的博客帖子

感谢你的支持! 您可以在我们的捐赠常见问题上找到更多信息。

我们很抱歉,但这是您被恶意软件感染的现象。 Tor Project 并不是这个恶意软件的作者。不过恶意软件的作者希望你使用 Tor 浏览器来匿名的联系他们来交付赎金。

如果这是你第一次听说 Tor 浏览器,我们知道你可能会认为我们是坏人。

但请考虑我们的软件每天都被人权活动家,记者,国内暴乱幸存者,举报人,执法人员和其他许多人用于各种目的。不幸的是,我们的软件在保护这些人的同时也会被罪犯和恶意软件作者滥用。 Tor Project 没有支持也没有纵容以恶意的方式使用我们的软件。

Tor 不会保留能识别用户身份的日志记录。 我们对于网络运转有一些措施,您可以在Tor 指数里查看。

Even if your application is using the correct variant of the SOCKS protocol, there is still a risk that it could be leaking DNS queries. This problem happens in Firefox extensions that resolve the destination hostname themselves, for example to show you its IP address, what country it's in, etc. If you suspect your application might behave like this, follow the instructions below to check.

  1. Add TestSocks 1 to your torrc file.
  2. Start Tor, and point your program's SOCKS proxy settings to Tor's SOCKS5 server (socks5://127.0.0.1:9050 by default).
  3. Watch your logs as you use your application. For each socks connection, Tor will log a notice for safe connections, and a warn for connections leaking DNS requests.

If you want to automatically disable all connections leaking DNS requests, set SafeSocks 1 in your torrc file.

There are a few reasons we don't:

  1. We can't help but make the information available, since Tor clients need to use it to pick their paths. So if the "blockers" want it, they can get it anyway. Further, even if we didn't tell clients about the list of relays directly, somebody could still make a lot of connections through Tor to a test site and build a list of the addresses they see.
  2. If people want to block us, we believe that they should be allowed to do so. Obviously, we would prefer for everybody to allow Tor users to connect to them, but people have the right to decide who their services should allow connections from, and if they want to block anonymous users, they can.
  3. Being blockable also has tactical advantages: it may be a persuasive response to website maintainers who feel threatened by Tor. Giving them the option may inspire them to stop and think about whether they really want to eliminate private access to their system, and if not, what other options they might have. The time they might otherwise have spent blocking Tor, they may instead spend rethinking their overall approach to privacy and anonymity.

A few things everyone can do now:

  1. Please consider running a relay to help the Tor network grow.
  2. Tell your friends! Get them to run relays. Get them to run onion services. Get them to tell their friends.
  3. If you like Tor's goals, please take a moment to donate to support further Tor development. We're also looking for more sponsors - if you know any companies, NGOs, agencies, or other organizations that want anonymity / privacy / communications security, let them know about us.
  4. We're looking for more good examples of Tor users and Tor use cases. If you use Tor for a scenario or purpose not yet described on that page, and you're comfortable sharing it with us, we'd love to hear from you.

Documentation

  1. Help localize the documentation into other languages. See becoming a Tor translator if you want to help out. We especially need Arabic or Farsi translations, for the many Tor users in censored areas.

Advocacy

  1. The Tor community uses the Tor Forum, IRC/Matrix, and public mailing lists.
  2. Create a presentation that can be used for various user group meetings around the world.
  3. Create a poster around a theme, such as "Tor for Human Rights!".
  4. Spread the word about Tor at a symposium or conference and use these Tor brochures as conversation starter.

抱歉, Tor Project 不提供虚拟主机服务。

Tor 被设计成通过防止被各种人(甚至是我们)监控和审查来抵御人权和隐私。 我们厌恶用 Tor 做糟糕的事情的人,但是我们并不能在剔除他们的同时,不伤害到人权活动者,记者,虐待后的幸存者们,以及其他用 Tor 做好事的人们。 虽然我们仅需要增加一些软件后门就可以阻止某些人使用 Tor 网络,但是这会导致我们的用户遭更容易受到专制政权和其他组织的攻击。

关于 文档 媒体评论 工作 博客 新闻通讯 联系我们 捐款 支持 社区 常见问题 关于 Tor Tor 浏览器 Tor Messenger Tor 移动版 GetTor 连接 Tor 网络审查 HTTPS 中继操作者 洋葱服务 Debian 仓库 RPM 仓库 替代设计方案 Little-t-tor 其他 有关滥用的常见问题 保持联系

保持联系

For a long time, the Tor community has been running many day-to-day activities using the IRC network known as OFTC. IRC has worked out well for us, and our community on IRC has been evolving over the years with new people joining in and new channels appearing for specific needs in the organization.

Matrix bridge

The Tor community is opening up its day-to-day conversations by bridging our IRC community the Matrix network. For regular Tor users, it means that you can chat with us using a friendly App like Element. The #tor:matrix.org room or the #tor IRC channel are connected: whichever platform you chose, your message will be shared on both platforms.

To join the conversation with Tor contributors on Matrix, you need a Matrix account. Several providers can get you one. One of these is the Matrix.org Foundation, which allows people to register an account for free. You can register an account on app.element.io.

Once you have a Matrix account, you can either join the Tor Matrix Space to browse the Tor rooms, or directly join the #tor:matrix.org user support room.

OFTC IRC network

Alternatively, if you want to use IRC you can use OFTC's web IRC client:

  1. Open OFTC webchat

  2. 在空白处填入:

    昵称:任何您想取的名字都可以,但要选取您每次使用 IRC 和 Tor 上的人交流时用的同样的昵称。如果您的昵称已经被人使用,您会收到系统的信息,并选择其他昵称。

    频道: #tor

  3. 点击确定

祝贺!您正在使用IRC。

几秒过后,您会自动进入 #tor,这是一个 Tor 的开发者,中继服务器运行者和其他社区成员的聊天室。这里也有些在 #tor 里的随机人员。

您可以在屏幕下方的空白条里输入问题。请您直接输入您的问题,不用输入其他无关内容。

人们也许可以立即做出回复,也可能有所延迟(有些人被列在频道上,但他们可能此刻不在电脑旁,而是记录下频道活动,之后再阅读)。

如果您想和某个特定的人聊天,请以他们的昵称作为您评论的开头,他们通常便会收到通知,告诉他们有个人正试图联系他们。

OFTC often doesn't allow people to use their webchat over Tor. For this reason, and because many people end up preferring it anyway, you should also consider using an IRC client.

tor-project 频道是Tor的成员讨论和协调日常 Tor 工作的地方。它比 #tor 的成员数更少,但更专注于手头上的工作。我们也欢迎您加入这个频道。要想访问 #tor-project,您的昵称必须要注册并验证。

这是如何联系到 #tor-project和其他注册频道的方法。

注册您的昵称

  1. Log onto #tor. See How can I chat with Tor Project teams?

  2. 然后点击屏幕左上方的"Status"字样。

  3. In the window at the bottom of the page, type: /msg nickserv REGISTER yournewpassword youremailaddress

  4. 点击确定。

如果一切顺利,您会收到一条注册成功的信息。

系统可能会将您注册成您的昵称加上“_”,而不仅仅是您的昵称。

如果是这样的话,继续进行操作即可,但要牢记,您是“用户_”而不是“用户”。

每当您登入IRC时,为了验证您的注册昵称,请输入:

/nick yournick

/msg nickserv IDENTIFY YourPassWord

如何验证您的昵称

After registering your nickname, to gain access to the #tor-project and other protected channels, your nickname must be verified.

  1. Go to https://services.oftc.net/ and follow the steps in the 'To verify your account' section

  2. Go back to the IRC webpage where you are logged in and type:

    /msg nickserv checkverify

  3. Click ENTER.

  4. If all is well, you will receive a message that says:

*!NickServ*checkverify

Usermodechange: +R

!NickServ- Successfully set +R on your nick.
`

您的昵称验证成功!

现在,加入 #tor-project,您可以直接键入:

/join #tor-project 并点击确定。

您将会被允许进入频道。如果成功的话,祝贺您!

然而,如果您在某一步中遇到了问题,您可以在#tor channel中寻求帮助。

您可以通过点击IRC窗口左上方不同的频道名称,在频道之间来回切换。

Tor 依靠全球用户和志愿者的支持,来协助我们改进相关软件和资源,因此你的反馈对我们(以及所有 Tor 用户)而言极具价值。

反馈模板

给我们发送反馈或者报告程序问题时,请尽量包含以下信息,越多越好:

  • Operating System you are using
  • Tor 浏览器版本
  • Tor Browser Security Level
  • 请详细叙述您遇到问题的过程和步骤,以便于我们重新还原您遇到的问题。(比如,“我打开了浏览器,输入了一个网页地址,点击了图标,然后我的浏览器就崩溃了。”)
  • 一张显示问题的截屏
  • 日志文件

如何与我们联系

有多种方式可以联系我们,请选择对您来说最方便的一种。

Tor Forum

We recommend asking for help on the Tor Forum. You will need to create an account to submit a new topic. Before you ask, please review our discussion guidelines. At the moment, for the fastest response, please write in English. If you found a bug, please use GitLab.

GitLab

First, check if the bug is already known. You can search and read all the issues at https://gitlab.torproject.org/. To create a new issue, please request a new account to access Tor Project's GitLab instance and find the right repository to report your issue. We track all Tor Browser related issues at Tor Browser issue tracker. Issues related to our websites should be filed under the Web issue tracker.

Telegram

If you need help installing or troubleshooting Tor Browser and the Tor Forum is blocked or censored where you are, you can reach out to us on Telegram https://t.me/TorProjectSupportBot. A Tor support specialist will assist you. At the moment, the Telegram support channel is available in two languages: English and Russian.

电子邮件

Send us an email to frontdesk@torproject.org

In the subject line of your email, please tell us what you're reporting. The more specific your subject line is (e.g. "Connection failure", "feedback on website", "feedback on Tor Browser, "I need a bridge"), the easier it will be for us to understand and follow up. Sometimes when we receive emails without subject lines, they're marked as spam and we don't see them.

For the fastest response, please write in English, Spanish, and/or Portuguese if you can. If none of these languages works for you, please write in any language you feel comfortable with, but keep in mind it will take us a bit longer to answer as we will need help with translation to understand it.

博客文章评论

You can always leave comments on the blog post related to the issue or feedback you want to report. If there is not a blog post related to your issue, please contact us another way.

IRC

You can find us in the #tor channel on OFTC to give us feedback or report bugs/issues. We may not respond right away, but we do check the backlog and will get back to you when we can.

了解如何连接到 OFTC 服务器.

邮件列表

For reporting issues or feedback using email lists, we recommend that you do so on the one that is related to what you would like to report. A complete directory of our mailing lists can be found here.

想要反馈或有关 Tor 浏览器、Tor 网络和 Tor 开发的其他项目的问题:tor-talk

想要反馈或有关我们网站的问题:ux

想要获得反馈或有关运行 Tor 中继服务器的问题: tor-relays

反馈有关 Tor 浏览器使用手册或支持网站的问题:tor-community-team

报告安全问题

如果您在我们的项目或基础设施里发现了问题,请发邮件至tor-security@lists.torproject.org。 如果您在 Tor或 Tor 浏览器里找到了安全漏洞,请报告给我们的漏洞悬赏项目. 如果你想要加密邮件,可以联系 tor-security-sendkey@lists.torproject.org,或从 pool.sks-keyservers.net 列表中获取 GPG 公钥。指纹如下:

  gpg --fingerprint tor-security@lists.torproject.org
  pub 4096R/1A7BF184 2017-03-13
  Key fingerprint = 8B90 4624 C5A2 8654 E453 9BC2 E135 A8B4 1A7B F184
  uid tor-security@lists.torproject.org
  uid tor-security@lists.torproject.org
  uid tor-security@lists.torproject.org
  sub 4096R/C00942E4 2017-03-13

Debian 仓库

不。 不要使用Ubuntu's universe提供的软件包。 In the past they have not been reliably updated. That means you could be missing stability and security fixes. Instead, please use Tor Debian repository.

Yes, deb.torproject.org is also served through via an Onion Service: http://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/

Note: The symbol # refers to running the code as root. This means you should have access to a user account with system administration privileges, e.g your user should be in the sudo group.

如需通过 Tor 使用apt,需要安装 apt 传输工具:

   # apt install apt-transport-tor

Then you need to add the following entries to /etc/apt/sources.list or a new file in /etc/apt/sources.list.d/:

   # 对于稳定版本。
   deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org <DISTRIBUTION> main

   # 对于不稳定版本。
   deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] tor://apow7mjfryruh65chtdydfmqfpj5btws7nbocgtaovhvezgccyjazpqd.onion/torproject.org tor-nightly-main-<DISTRIBUTION> main

Replace <DISTRIBUTION> with your Operating System codename. Run lsb_release -c or cat /etc/debian_version to check the Operating System version.

Add the gpg key used to sign the packages by running the following command at your command prompt:

   # wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

Install tor and tor debian keyring

Now refresh your sources and try to install tor and tor debian keyring:

   # apt update
   # apt install tor deb.torproject.org-keyring

The Tor Project maintains its own Debian package repository. Since Debian provides the LTS version of Tor, this might not always give you the latest stable Tor version. Therefore, it's recommended to install tor from our repository.

如果您需要在您的基于 Debian 的系统中添加 Tor 软件包仓库,请遵循以下指示:

Note: The symbol # refers to running the code as root. This means you should have access to a user account with system administration privileges, e.g your user should be in the sudo group.

Prerequisite: Verify the CPU architecture

The package repository offers amd64, arm64, and i386 binaries. Verify your operating system is capable of running the binary by inspecting the output of the following command:

  # dpkg --print-architecture

It should output either amd64, arm64, or i386. The repository does not support other CPU architectures.

Note: The package repository does not offer 32-bit ARM architecture (armhf) images (yet). You should either install the version Debian offers (make sure to check out Debian backports, too, as that one has often a more up-to-date Tor package), or build Tor from source.

1. 安装 apt-transport-https

To enable all package managers using the libapt-pkg library to access metadata and packages available in sources accessible over https (Hypertext Transfer Protocol Secure).

   # apt install apt-transport-https

2. Create a new file in /etc/apt/sources.list.d/ named tor.list. Add the following entries:

   deb     [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org <DISTRIBUTION> main
   deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org <DISTRIBUTION> main

If you want to try experimental packages, add these in addition to the lines from above:

   deb     [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-experimental-<DISTRIBUTION> main
   deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-experimental-<DISTRIBUTION> main

或是每晚构建:

   deb     [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-nightly-main-<DISTRIBUTION> main
   deb-src [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org tor-nightly-main-<DISTRIBUTION> main

Replace <DISTRIBUTION> with your Operating System codename. Run lsb_release -c or cat /etc/debian_version to check the Operating System version.

Note: Ubuntu Focal dropped support for 32-bit, so instead use:

   deb     [arch=<ARCHITECTURE> signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org focal main
   deb-src [arch=<ARCHITECTURE> signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org focal main

Replace <ARCHITECTURE> with your system architecture (you found it earlier by writing dpkg --print-architecture).

Warning symptom, when running sudo apt update:

   Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'http://deb.torproject.org/torproject.org focal InRelease' doesn't support architecture 'i386'

3. Then add the gpg key used to sign the packages by running the following command at your command prompt:

   # wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

4. 安装 tor 和 tor debian 密钥串

我们提供一个 Debian 软件包,以帮助您保持我们的密钥为最新状态。推荐您使用这个软件包。用下列命令安装它:

   # apt update
   # apt install tor deb.torproject.org-keyring

Tor 的 RPM 软件包

The Tor Project maintains its own RPM package repository for CentOS and RHEL and Fedora.

Note: The symbol # refers to be running the code as root. That means you should have access to a user account with system administration privileges, e.g your user should be in the sudo group.

Here's how you can enable Tor Package Repository for both CentOS and RHEL and Fedora:

1. Enable epel repository (only for CentOS and RHEL)

‪# dnf install epel-release -y

2. Add the following to /etc/yum.repos.d/tor.repo

For CentOS or RHEL:

[tor]
name=Tor for Enterprise Linux $releasever - $basearch
baseurl=https://rpm.torproject.org/centos/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://rpm.torproject.org/centos/public_gpg.key
cost=100

对于 Fedora:

[tor]
name=Tor for Fedora $releasever - $basearch
baseurl=https://rpm.torproject.org/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://rpm.torproject.org/fedora/public_gpg.key
cost=100

3. Install the Tor package

Then you can install the latest Tor package.

‪# dnf install tor -y

首次使用时,你需要导入GPG公钥。

Importing GPG key 0x3621CD35:
Userid     : "Kushal Das (RPM Signing key) <kushal@torproject.org>"
Fingerprint: 999E C8E3 14BC 8D46 022D 6C7D E217 C30C 3621 CD35
From       : https://rpm.torproject.org/fedora/public_gpg.key
Is this ok [y/N]: y

有关滥用的常见问题

很棒! 这就是我们实施出口政策的原因。

每个 Tor 中继拥有一条出口规则,用于指定允许或拒绝何种类型的出站连接通过该中继。 出口政策通过目录传送给 Tor 的客户,所以客户会自动避免挑选会拒绝退出到他们想要到达的目的地的出口中继服务器。 这样一来,每个中继服务器都可以决定服务,主人和它想让连接到达的网络,这些都基于滥用的可能性和它自身的状况。 Read the Support entry on issues you might encounter if you use the default exit policy, and then read Mike Perry's tips for running an exit node with minimal harassment.

默认的出口中继协议允许许多流行服务的获取权(如网页浏览),但出于滥用的潜在风险,限制了一些服务(如邮箱),还有一些是因为流量大小超出了 Tor 网络的承受范围(如默认文件共享端口)。 您可以通过编辑您的torrc文件来更改您自己的出口策略。 If you want to avoid most if not all abuse potential, set it to "reject *:*". 这个设置意味着您的中继服务器只会被用来中继 Tor 网络内部的通讯,而不是外部的网站连接或其他服务。

如果您确实允许任何出口连接,确保域名解析正常(也就是,您的电脑能正确解析网络地址)。 如果有任何您的计算机不能访问的资源(比如您被限制性防火墙或内容过滤器拦住了),请明确的在您的出口节点规定里驳回它们,否则其他 Tor 的用户也会被影响。

Criminals can already do bad things. Since they're willing to break laws, they already have lots of options available that provide better privacy than Tor provides. They can steal cell phones, use them, and throw them in a ditch; they can crack into computers in Korea or Brazil and use them to launch abusive activities; they can use spyware, viruses, and other techniques to take control of literally millions of Windows machines around the world.

Tor aims to provide protection for ordinary people who want to follow the law. Only criminals have privacy right now, and we need to fix that.

Some advocates of anonymity explain that it's just a tradeoff — accepting the bad uses for the good ones — but there's more to it than that. Criminals and other bad people have the motivation to learn how to get good anonymity, and many have the motivation to pay well to achieve it. Being able to steal and reuse the identities of innocent victims (identity theft) makes it even easier. Normal people, on the other hand, don't have the time or money to spend figuring out how to get privacy online. This is the worst of all possible worlds.

So yes, criminals can use Tor, but they already have better options, and it seems unlikely that taking Tor away from the world will stop them from doing their bad things. At the same time, Tor and other privacy measures can fight identity theft, physical crimes like stalking, and so on.

Distributed denial of service (DDoS) attacks typically rely on having a group of thousands of computers all sending floods of traffic to a victim. Since the goal is to overpower the bandwidth of the victim, they typically send UDP packets since those don't require handshakes or coordination.

But because Tor only transports correctly formed TCP streams, not all IP packets, you cannot send UDP packets over Tor. (You can't do specialized forms of this attack like SYN flooding either.) So ordinary DDoS attacks are not possible over Tor. Tor also doesn't allow bandwidth amplification attacks against external sites: you need to send in a byte for every byte that the Tor network will send to your destination. So in general, attackers who control enough bandwidth to launch an effective DDoS attack can do it just fine without Tor.

首先,默认的 Tor 出口策略拒绝所有出站的端口 25 (SMTP)的流量。 因此,通过 Tor 发送垃圾邮件在默认情况下是行不通的。 有可能一些中继运营者会在他们特定的出口节点上启用端口 25 ,在这种情况下,该计算机将允许发出邮件;但他们也可以直接建立一个与 Tor 无关的开放的邮件中继。 简而言之,Tor 对发送垃圾邮件没有用处,因为几乎所有的 Tor 中继都拒绝投递邮件。

Of course, it's not all about delivering the mail. Spammers can use Tor to connect to open HTTP proxies (and from there to SMTP servers); to connect to badly written mail-sending CGI scripts; and to control their botnets — that is, to covertly communicate with armies of compromised computers that deliver the spam.

This is a shame, but notice that spammers are already doing great without Tor. Also, remember that many of their more subtle communication mechanisms (like spoofed UDP packets) can't be used over Tor, because it only transports correctly-formed TCP connections.

Not much, in the grand scheme of things. The network has been running since October 2003, and it's only generated a handful of complaints. Of course, like all privacy-oriented networks on the net, it attracts its share of jerks. Tor's exit policies help separate the role of "willing to donate resources to the network" from the role of "willing to deal with exit abuse complaints", so we hope our network is more sustainable than past attempts at anonymity networks.

Since Tor has many good uses as well, we feel that we're doing pretty well at striking a balance currently.

If you run a Tor relay that allows exit connections (such as the default exit policy), it's probably safe to say that you will eventually hear from somebody. Abuse complaints may come in a variety of forms. For example:

  • Somebody connects to Hotmail, and sends a ransom note to a company. The FBI sends you a polite email, you explain that you run a Tor relay, and they say "oh well" and leave you alone. [Port 80]
  • Somebody tries to get you shut down by using Tor to connect to Google groups and post spam to Usenet, and then sends an angry mail to your ISP about how you're destroying the world. [Port 80]
  • Somebody connects to an IRC network and makes a nuisance of himself. Your ISP gets polite mail about how your computer has been compromised; and/or your computer gets DDoSed. [Port 6667]
  • Somebody uses Tor to download a Vin Diesel movie, and your ISP gets a DMCA takedown notice. See EFF's Tor DMCA Response Template, which explains why your ISP can probably ignore the notice without any liability. [Arbitrary ports]

Some hosting providers are friendlier than others when it comes to Tor exits. For a listing see the good and bad ISPs wiki.

For a complete set of template responses to different abuse complaint types, see the collection of templates. You can also proactively reduce the amount of abuse you get by following these tips for running an exit node with minimal harassment and running a reduced exit policy.

You might also find that your Tor relay's IP is blocked from accessing some Internet sites/services. This might happen regardless of your exit policy, because some groups don't seem to know or care that Tor has exit policies. (If you have a spare IP not used for other activities, you might consider running your Tor relay on it.) In general, it's advisable not to use your home internet connection to provide a Tor relay.

A collection of templates for successfully responding to ISPs is collected here.

Sometimes jerks make use of Tor to troll IRC channels. This abuse results in IP-specific temporary bans ("klines" in IRC lingo), as the network operators try to keep the troll off of their network.

This response underscores a fundamental flaw in IRC's security model: they assume that IP addresses equate to humans, and by banning the IP address they can ban the human. In reality, this is not the case — many such trolls routinely make use of the literally millions of open proxies and compromised computers around the Internet. The IRC networks are fighting a losing battle of trying to block all these nodes, and an entire cottage industry of blocklists and counter-trolls has sprung up based on this flawed security model (not unlike the antivirus industry). The Tor network is just a drop in the bucket here.

On the other hand, from the viewpoint of IRC server operators, security is not an all-or-nothing thing. By responding quickly to trolls or any other social attack, it may be possible to make the attack scenario less attractive to the attacker. And most individual IP addresses do equate to individual humans, on any given IRC network at any given time. The exceptions include NAT gateways which may be allocated access as special cases. While it's a losing battle to try to stop the use of open proxies, it's not generally a losing battle to keep klining a single ill-behaved IRC user until that user gets bored and goes away.

But the real answer is to implement application-level auth systems, to let in well-behaving users and keep out badly-behaving users. This needs to be based on some property of the human (such as a password they know), not some property of the way their packets are transported.

Of course, not all IRC networks are trying to ban Tor nodes. After all, quite a few people use Tor to IRC in privacy in order to carry on legitimate communications without tying them to their real-world identity. Each IRC network needs to decide for itself if blocking a few more of the millions of IPs that bad people can use is worth losing the contributions from the well-behaved Tor users.

If you're being blocked, have a discussion with the network operators and explain the issues to them. They may not be aware of the existence of Tor at all, or they may not be aware that the hostnames they're klining are Tor exit nodes. If you explain the problem, and they conclude that Tor ought to be blocked, you may want to consider moving to a network that is more open to free speech. Maybe inviting them to #tor on irc.oftc.net will help show them that we are not all evil people.

Finally, if you become aware of an IRC network that seems to be blocking Tor, or a single Tor exit node, please put that information on The Tor IRC block tracker so that others can share. At least one IRC network consults that page to unblock exit nodes that have been blocked inadvertently.

Even though Tor isn't useful for spamming, some over-zealous blocklisters seem to think that all open networks like Tor are evil — they attempt to strong-arm network administrators on policy, service, and routing issues, and then extract ransoms from victims.

If your server administrators decide to make use of these blocklists to refuse incoming mail, you should have a conversation with them and explain about Tor and Tor's exit policies.

We're sorry to hear that. There are some situations where it makes sense to block anonymous users for an Internet service. But in many cases, there are easier solutions that can solve your problem while still allowing users to access your website securely.

First, ask yourself if there's a way to do application-level decisions to separate the legitimate users from the jerks. For example, you might have certain areas of the site, or certain privileges like posting, available only to people who are registered. It's easy to build an up-to-date list of Tor IP addresses that allow connections to your service, so you could set up this distinction only for Tor users. This way you can have multi-tiered access and not have to ban every aspect of your service.

For example, the Freenode IRC network had a problem with a coordinated group of abusers joining channels and subtly taking over the conversation; but when they labeled all users coming from Tor nodes as "anonymous users", removing the ability of the abusers to blend in, the abusers moved back to using their open proxies and bot networks.

Second, consider that hundreds of thousands of people use Tor every day simply for good data hygiene — for example, to protect against data-gathering advertising companies while going about their normal activities. Others use Tor because it's their only way to get past restrictive local firewalls. Some Tor users may be legitimately connecting to your service right now to carry on normal activities. You need to decide whether banning the Tor network is worth losing the contributions of these users, as well as potential future legitimate users. (Often people don't have a good measure of how many polite Tor users are connecting to their service — you never notice them until there's an impolite one.)

At this point, you should also ask yourself what you do about other services that aggregate many users behind a few IP addresses. Tor is not so different from AOL in this respect.

Lastly, please remember that Tor relays have individual exit policies. Many Tor relays do not allow exiting connections at all. Many of those that do allow some exit connections might already disallow connections to your service. When you go about banning nodes, you should parse the exit policies and only block the ones that allow these connections; and you should keep in mind that exit policies can change (as well as the overall list of nodes in the network).

If you really want to do this, we provide a Tor exit relay list or a DNS-based list you can query.

(Some system administrators block ranges of IP addresses because of official policy or some abuse pattern, but some have also asked about allowing Tor exit relays because they want to permit access to their systems only using Tor. These scripts are usable for allowlisting as well.)

Tor 开发者没有追踪 Tor 用户的手段。 The same protections that keep bad people from breaking Tor's anonymity also prevent us from figuring out what's going on.

Some fans have suggested that we redesign Tor to include a backdoor. There are two problems with this idea. First, it technically weakens the system too far. Having a central way to link users to their activities is a gaping hole for all sorts of attackers; and the policy mechanisms needed to ensure correct handling of this responsibility are enormous and unsolved. Second, the bad people aren't going to get caught by this anyway, since they will use other means to ensure their anonymity (identity theft, compromising computers and using them as bounce points, etc).

This ultimately means that it is the responsibility of site owners to protect themselves against compromise and security issues that can come from anywhere. This is just part of signing up for the benefits of the Internet. You must be prepared to secure yourself against the bad elements, wherever they may come from. Tracking and increased surveillance are not the answer to preventing abuse.

But remember that this doesn't mean that Tor is invulnerable. Traditional police techniques can still be very effective against Tor, such as investigating means, motive, and opportunity, interviewing suspects, writing style analysis, technical analysis of the content itself, sting operations, keyboard taps, and other physical investigations. The Tor Project is also happy to work with everyone including law enforcement groups to train them how to use the Tor software to safely conduct investigations or anonymized activities online.

The Tor Project does not host, control, nor have the ability to discover the owner or location of a .onion address. The .onion address is an address from an onion service. The name you see ending in .onion is an onion service descriptor. It's an automatically generated name which can be located on any Tor relay or client anywhere on the Internet. Onion services are designed to protect both the user and service provider from discovering who they are and where they are from. The design of onion services means the owner and location of the .onion site is hidden even from us.

But remember that this doesn't mean that onion services are invulnerable. Traditional police techniques can still be very effective against them, such as interviewing suspects, writing style analysis, technical analysis of the content itself, sting operations, keyboard taps, and other physical investigations.

If you have a complaint about child abuse materials, you may wish to report it to the National Center for Missing and Exploited Children, which serves as a national coordination point for investigation of child pornography: http://www.missingkids.com/. We do not view links you report.

我们严肃对待滥用。 Activists and law enforcement use Tor to investigate abuse and help support survivors. We work with them to help them understand how Tor can help their work. In some cases, technological mistakes are being made and we help to correct them. Because some people in survivors' communities embrace stigma instead of compassion, seeking support from fellow victims requires privacy-preserving technology.

Our refusal to build backdoors and censorship into Tor is not because of a lack of concern. We refuse to weaken Tor because it would harm efforts to combat child abuse and human trafficking in the physical world, while removing safe spaces for victims online. Meanwhile, criminals would still have access to botnets, stolen phones, hacked hosting accounts, the postal system, couriers, corrupt officials, and whatever technology emerges to trade content. They are early adopters of technology. In the face of this, it is dangerous for policymakers to assume that blocking and filtering is sufficient. We are more interested in helping efforts to halt and prevent child abuse than helping politicians score points with constituents by hiding it. The role of corruption is especially troubling; see this United Nations report on The Role of Corruption in Trafficking in Persons.

Finally, it is important to consider the world that children will encounter as adults when enacting policy in their name. Will they thank us if they are unable to voice their opinions safely as adults? What if they are trying to expose a failure of the state to protect other children?

Tor Metrics

We actually don't count users, but we count requests to the directories that clients make periodically to update their list of relays and estimate number of users indirectly from there.

No, but we can see what fraction of directories reported them, and then we can extrapolate the total number in the network.

We put in the assumption that the average client makes 10 such requests per day. A tor client that is connected 24/7 makes about 15 requests per day, but not all clients are connected 24/7, so we picked the number 10 for the average client. We simply divide directory requests by 10 and consider the result as the number of users. Another way of looking at it, is that we assume that each request represents a client that stays online for one tenth of a day, so 2 hours and 24 minutes.

Average number of concurrent users, estimated from data collected over a day. We can't say how many distinct users there are.

No, the relays that report these statistics aggregate requests by country of origin and over a period of 24 hours. The statistics we would need to gather for the number of users per hour would be too detailed and might put users at risk.

Then we count those users as one. We really count clients, but it's more intuitive for most people to think of users, that's why we say users and not clients.

No, because that user updates their list of relays as often as a user that doesn't change IP address over the day.

The directories resolve IP addresses to country codes and report these numbers in aggregate form. This is one of the reasons why tor ships with a GeoIP database.

Very few bridges report data on transports or IP versions yet, and by default we consider requests to use the default OR protocol and IPv4. Once more bridges report these data, the numbers will become more accurate.

Relays and bridges report some of the data in 24-hour intervals which may end at any time of the day.
And after such an interval is over relays and bridges might take another 18 hours to report the data.
We cut off the last two days from the graphs, because we want to avoid that the last data point in a graph indicates a recent trend change which is in fact just an artifact of the algorithm.

The reason is that we publish user numbers once we're confident enough that they won't change significantly anymore. But it's always possible that a directory reports data a few hours after we were confident enough, but which then slightly changed the graph.

We do have descriptor archives from before that time, but those descriptors didn't contain all the data we use to estimate user numbers. Please find the following tarball for more details:

Tarball

For direct users, we include all directories which we didn't do in the old approach. We also use histories that only contain bytes written to answer directory requests, which is more precise than using general byte histories.

Oh, that's a whole different story. We wrote a 13 page long technical report explaining the reasons for retiring the old approach.
tl;dr: in the old approach we measured the wrong thing, and now we measure the right thing.

We run an anomaly-based censorship-detection system that looks at estimated user numbers over a series of days and predicts the user number in the next days. If the actual number is higher or lower, this might indicate a possible censorship event or release of censorship. For more details, see our technical report.

Little-t-tor

Attention: These instructions are to verify the tor source code. Please follow the right instructions to verify Tor Browser's signature.

数字签名是一个确保某个包由其开发人员生成并且未被篡改的过程。 Below we explain why it is important and how to verify that the tor source code you download is the one we have created and has not been modified by some attacker.

Each file on our download page is accompanied by two files which are labelled "checksum" and "sig" with the same name as the package and the extension ".sha256sum" and ".sha256sum.asc" respectively.

The .asc file will verify that the .sha256sum file (containing the checksum of the package) has not been tampered with. Once the signature has been validated (see below on how to do it), the package integrity can be validated with:

$ sha256sum -c *.sha256sum

These files allow you to verify the file you've downloaded is exactly the one that we intended you to get. This will vary by web browser, but generally you can download this file by right-clicking the "sig" and "checksum" link and selecting the "save file as" option.

For example, tor-0.4.6.7.tar.gz is accompanied by tor-0.4.6.7.tar.gz.sha256sum.asc. 这些是示例文件名,并不会与你所下载的文件名完全一致。

我们现在展示如何在不同的操作系统上验证下载文件的数字签名。 请注意数字签名是标注该包被签名的时间。 因此,每个新文件上传时,都会生成具有不同日期的新签名。 只要您验证了签名,就不必担心报告的日期可能有所不同。

安装 GnuPG

首先你需要安装 GnuPG 才能验证签名。

对于 Windows 的用户:

如果您使用 Windows, 下载 Gpg4win并运行其安装包。

为了验证签名,您需要在 Windows 命令行(cmd.exe)中输入一些命令。

对于 macOS 的用户:

如果您正在使用 macOS,您可以安装 GPGTools

为了验证签名,您需要在(“应用程序”下的)终端中输入一些命令。

对于 GNU/Linux 的用户:

如果你使用 GNU/Linux,那么可能在你的系统中已经安装了 GnuPG,因为大多数 Linux 发行版都预装了它。

In order to verify the signature you will need to type a few commands in a terminal window. How to do this will vary depending on your distribution.

获取 Tor 开发者密钥

The following keys can sign the tarball. Don't expect them all, it can vary depending on who is available to make the release.

You can fetch the key with the links provided above or with:

$ gpg --auto-key-locate nodefault,wkd --locate-keys ahf@torproject.org
$ gpg --auto-key-locate nodefault,wkd --locate-keys dgoulet@torproject.org
$ gpg --auto-key-locate nodefault,wkd --locate-keys nickm@torproject.org

This should show you something like (for nickm):

gpg: key FE43009C4607B1FB: public key "Nick Mathewson <nickm@torproject.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1
pub   rsa4096 2016-09-21 [C] [expires: 2025-10-04]
      2133BC600AB133E1D826D173FE43009C4607B1FB
uid           [ unknown] Nick Mathewson <nickm@torproject.org>
sub   rsa4096 2016-09-23 [S] [expires: 2025-10-04]
sub   rsa4096 2016-09-23 [E] [expires: 2025-10-04]

If you get an error message, something has gone wrong and you cannot continue until you've figured out why this didn't work. You might be able to import the key using the Workaround (using a public key) section instead.

导入密钥后,你可以将其保存到文件中(通过这里的指纹来识别它):

$ gpg --output ./tor.keyring --export 0x2133BC600AB133E1D826D173FE43009C4607B1FB

这条命令的结果是,密钥被保存在路径为./tor.keyring的文件中,也就是在当前目录中。 如果运行这个命令后./tor.keyring不存在,就说明出了问题,你不能继续操作,直到你弄清楚为什么会出现错误。

验证签名

To verify the signature of the package you downloaded, you will need to download the corresponding .sha256sum.asc signature file and the .sha256sum file itself, and verify it with a command that asks GnuPG to verify the file that you downloaded.

下面的例子假设你已经下载了这样的两个文件到你的"下载"文件夹。 请注意,这些命令使用的是示例文件名,而你的文件名会有所不同:你下载的版本与 9.0 不同,且你可能没有选择英文(en-US)版本。

对于 Windows 的用户:

gpgv --keyring .\tor.keyring Downloads\tor-0.4.6.10.tar.gz.sha256sum.asc Downloads\tor-0.4.6.10.tar.gz.sha256sum

对于 macOS 的用户:

gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum

For BSD/Linux users:

gpgv --keyring ./tor.keyring ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum.asc ~/Downloads/tor-0.4.6.10.tar.gz.sha256sum

The result of the command should produce something like this (depending on which key signed it):

gpgv: Signature made Mon 16 Aug 2021 04:44:27 PM -03
gpgv:                using RSA key 7A02B3521DC75C542BA015456AFEE6D49E92B601
gpgv: Good signature from "Nick Mathewson <nickm@torproject.org>"

如果你得到包含 "No such file or directory"的错误信息,要么是前面的某个步骤出了问题,要么是你忘记了这些命令使用的是示例文件名,而你的文件名会与此不同。

你可能还想了解有关 GnuPG 的详细信息

Verifying checksum

Now that we validated the signatures of the checksum, we need to verify the integrity of the package.

对于 Windows 的用户:

certUtil -hashfile tor-0.4.6.10.tar.gz.sha256sum SHA256

对于 macOS 的用户:

shasum -a 256 tor-0.4.6.10.tar.gz.sha256sum

For BSD/Linux users:

sha256sum -c tor-0.4.6.10.tar.gz.sha256sum

我们(尚未)采用的替代设计方案

No, you cannot trust the network to pick the path. Malicious relays could route you through their colluding friends. This would give an adversary the ability to watch all of your traffic end to end.

It would be nice to let relay operators say things like reject www.slashdot.org in their exit policies, rather than requiring them to learn all the IP address space that could be covered by the site (and then also blocking other sites at those IP addresses).

There are two problems, though. First, users could still get around these blocks. For example, they could request the IP address rather than the hostname when they exit from the Tor network. This means operators would still need to learn all the IP addresses for the destinations in question.

The second problem is that it would allow remote attackers to censor arbitrary sites. For example, if a Tor operator blocks www1.slashdot.org, and then some attacker poisons the Tor relay's DNS or otherwise changes that hostname to resolve to the IP address for a major news site, then suddenly that Tor relay is blocking the news site.

This would be handy for a number of reasons: It would make Tor better able to handle new protocols like VoIP. It could solve the whole need to socksify applications. Exit relays would also not need to allocate a lot of file descriptors for all the exit connections.

We're heading in this direction. Some of the hard problems are:

  1. IP packets reveal OS characteristics. We would still need to do IP-level packet normalization, to stop things like TCP fingerprinting attacks. Given the diversity and complexity of TCP stacks, along with device fingerprinting attacks, it looks like our best bet is shipping our own user-space TCP stack.

  2. Application-level streams still need scrubbing. We will still need user-side applications like Torbutton. So it won't become just a matter of capturing packets and anonymizing them at the IP layer.

  3. Certain protocols will still leak information. For example, we must rewrite DNS requests so they are delivered to an unlinkable DNS server rather than the DNS server at a user's ISP; thus, we must understand the protocols we are transporting.

  4. DTLS (datagram TLS) basically has no users, and IPsec sure is big. Once we've picked a transport mechanism, we need to design a new end-to-end Tor protocol for avoiding tagging attacks and other potential anonymity and integrity issues now that we allow drops, resends, et cetera.

  5. Exit policies for arbitrary IP packets mean building a secure Intrusion Detection System (IDS). Our node operators tell us that exit policies are one of the main reasons they're willing to run Tor. Adding an IDS to handle exit policies would increase the security complexity of Tor, and would likely not work anyway, as evidenced by the entire field of IDS and counter-IDS papers. Many potential abuse issues are resolved by the fact that Tor only transports valid TCP streams (as opposed to arbitrary IP including malformed packets and IP floods.) Exit policies become even more important as we become able to transport IP packets. We also need to compactly describe exit policies in the Tor directory, so clients can predict which nodes will allow their packets to exit. Clients also need to predict all the packets they will want to send in a session before picking their exit node!

  6. The Tor-internal name spaces would need to be redesigned. We support onion service ".onion" addresses by intercepting the addresses when they are passed to the Tor client. Doing so at the IP level will require a more complex interface between Tor and the local DNS resolver.

Requiring every Tor user to be a relay would help with scaling the network to handle all our users, and running a Tor relay may help your anonymity. However, many Tor users cannot be good relays — for example, some Tor clients operate from behind restrictive firewalls, connect via modem, or otherwise aren't in a position where they can relay traffic. Providing service to these clients is a critical part of providing effective anonymity for everyone, since many Tor users are subject to these or similar constraints and including these clients increases the size of the anonymity set.

That said, we do want to encourage Tor users to run relays, so what we really want to do is simplify the process of setting up and maintaining a relay. We've made a lot of progress with easy configuration in the past few years: Tor is good at automatically detecting whether it's reachable and how much bandwidth it can offer.

There are four steps we need to address before we can do this though:

  • First, we still need to get better at automatically estimating the right amount of bandwidth to allow. It might be that switching to UDP transport is the simplest answer here — which alas is not a very simple answer at all.

  • Second, we need to work on scalability, both of the network (how to stop requiring that all Tor relays be able to connect to all Tor relays) and of the directory (how to stop requiring that all Tor users know about all Tor relays). Changes like this can have large impact on potential and actual anonymity. See Section 5 of the Challenges paper for details. Again, UDP transport would help here.

  • Third, we need to better understand the risks from letting the attacker send traffic through your relay while you're also initiating your own anonymized traffic. Three different research papers describe ways to identify the relays in a circuit by running traffic through candidate relays and looking for dips in the traffic while the circuit is active. These clogging attacks are not that scary in the Tor context so long as relays are never clients too. But if we're trying to encourage more clients to turn on relay functionality too (whether as bridge relays or as normal relays), then we need to understand this threat better and learn how to mitigate it.

  • Fourth, we might need some sort of incentive scheme to encourage people to relay traffic for others, and/or to become exit nodes. Here are our current thoughts on Tor incentives.

Please help on all of these!