如何通过 IP 检测 Tor 流量:出口节点、风险与检测方法
Tor 将用户隐藏在中继之后,您只能看到出口节点。本文介绍如何通过 IP 检测 Tor 出口节点,以及如何在不拦截正常用户的前提下处理 Tor 流量。

当请求经由 Tor 到达时,您通常能从 IP 地址中获得的几乎所有信息都具有误导性。位置是出口节点的位置,而不是用户的位置。ISP 是一个志愿者中继,而不是用户的网络服务商。IP 唯一能如实告诉您的,恰恰是 Tor 无法隐藏的那件事:流量确实经过了 Tor。可靠地检测出这一事实,就是全部的关键。

Tor 是什么,出口节点如何运作
Tor(“The Onion Router”,洋葱路由器的缩写)通过将流量包裹在多层加密中,并经由全球志愿者运行的三个随机选择的中继进行转发,从而实现流量匿名化。
这条路径有三跳。入口(守卫)节点能看到用户的真实 IP,但看不到其目标。中间中继两端都看不到,只能看到它两侧的中继。出口节点解密最后一层并将请求转发到目标,因此它知道流量去往何处,却不知道是谁发出的。没有任何一个中继同时知道来源和目标,这正是 Tor 匿名性的来源。
对于接收流量的一方来说,结果简单但重要:您永远只能看到出口节点的 IP 地址。 用户的真实 IP 在三跳之外,并且受到加密保护。所有 Tor 检测技术都围绕识别这个出口节点展开,这使 Tor 成为 VPN 与代理检测背后各信号层中最简单的一种。
- 您看到的是出口节点,而不是用户。 来源 IP、位置和 ISP 都属于最后一个中继。
- 出口节点列表是公开的。 Tor Project 发布并持续更新出口中继列表。
- 这使 Tor 可被检测。 与许多 VPN 不同,Tor 出口节点可以被逐一列举,因此一次查询就能直接标记它们。
- 地理位置对用户而言毫无意义。 您解析出的国家属于出口节点,而不是访问者。
Tor 能对您的 ISP 隐藏流量吗?
这是用户方常问的问题,而答案也决定了您在服务器端如何解读 Tor:您的 ISP 能看到您正在使用 Tor,但看不到您在做什么。在 ISP 看来,与入口(守卫)节点的连接就是发往已知 Tor 中继的加密流量。其后的目标是隐藏的,因此您的 ISP 无法读取您访问的网站或发送的内容。
另一端的服务器看到的则正好相反:它能看到出口节点的 IP 和请求,却看不到您的真实地址。这种分离正是 Tor 标记对检测如此重要的原因:您通常从 IP 中读取的身份和位置,按设计属于别人。(网桥的存在,恰恰是为了在受审查的网络中连“正在使用 Tor”这一事实也对 ISP 隐藏,这也是网桥流量比公开出口更难列举的原因。)
Tor、VPN 与代理的对比
Tor 常与 VPN 和代理归为一类,但它们的机制和可检测性各不相同。
| Tor | VPN | 代理 | |
|---|---|---|---|
| 跳数 | 三个中继,分层加密 | 一台提供商服务器 | 一台服务器 |
| 谁能看到真实 IP | 仅入口节点 | VPN 提供商 | 代理运营者 |
| 您观察到的 IP | 出口节点 | VPN 端点 | 代理 IP |
| 可检测性 | 高(出口列表公开) | 不一(许多端点未公开) | 因类型而异 |
| 典型信号强度 | 强,明确的标记 | 数据好时较强 | 中等到强 |
实际结论是:Tor 是最容易检测的匿名工具之一,因为它的出口节点是公开发布的;而 VPN 和代理检测则取决于您的提供商数据的广度和新鲜度。尤其是代理,识别难度从轻而易举到极其困难不等,正如代理类型对比所示。
为什么要检测 Tor 流量
检测 Tor 不是为了惩罚它,而是为了让您做出有依据的决策。它之所以重要,是因为 Tor 剥离了您通常所依赖的 IP 信号。
- 欺诈与滥用。 Tor 被用来掩盖账户接管、虚假账户注册、盗刷卡和数据抓取,因为它能以低成本轮换表面来源。我们的基于 IP 的 bot 检测指南展示了 Tor 标记在其他 bot 信号中的位置。
- 未经验证的位置。 对于地理围栏和合规而言,出口节点的国家并不是用户的国家,因此 Tor 标记意味着“不要信任此位置”。参见 IP 地理围栏。
- 风险评分。 Tor 是综合 IP 欺诈评分中有意义的一项输入,而不是单独的定论:
tor_exit原因会增加 44.55 分。 - 合规与审计。 某些受监管的流程要求您知道并记录访问何时经由匿名网络到达。
但使 Tor 成为风险信号的那个特性(匿名性),恰恰也是正常用户使用它的原因。保护消息来源的记者、身处审查之下的活动人士、研究人员以及普通的注重隐私的用户都依赖 Tor。把每个 Tor 请求都当作欺诈,恰恰会把 Tor 本来要保护的人拒之门外。Tor 是需要仔细查看的理由,而不是关上大门的理由。
如何通过 IP 检测 Tor 出口节点
检测方法有层次之分,从决定性的方法到补充性的方法。
1. 与公开的出口节点列表比对
Tor Project 发布权威的出口中继列表,并持续刷新。将访问者的 IP 与该列表比对,是最可靠的单一 Tor 检测方法,并能给出明确、误报率低的判定。挑战在于运维:随着中继的上线和下线,列表不断变化,因此必须保持最新。IP 情报 API 会为您完成这项工作,并在每次查询中返回 is_tor 之类的标记。
2. 已知中继 IP 段与 ASN
除了出口节点之外,入口中继和中间中继,以及常用于运行它们的托管网络,也会形成可识别的模式。许多中继位于数据中心和托管 ASN 上,因此连接类型和网络信誉可以提供佐证。这对于捕获 Tor 网桥尤其有用,因为网桥是为了规避审查而刻意不公开的。
3. 行为佐证
Tor 流量常常呈现出明显的模式:许多用户共享同一个出口 IP、请求时间异常,或者声称的语言区域与出口节点的位置不符。这些信号永远无法替代出口节点比对,但它们有助于标记经过混淆的情况,并减少对任何单一来源的依赖。
| 方法 | 可靠性 | 能捕获什么 |
|---|---|---|
| 公开出口节点列表 | 决定性 | 标准 Tor 出口流量 |
| 中继 IP 段与数据中心 ASN | 强有力的佐证 | 托管网络上的中继和网桥 |
| 行为模式 | 补充性 | 经过混淆或经由网桥的 Tor |
如何在不过度拦截的情况下处理 Tor 流量
检测是容易的那一半。决策才是团队容易出错的地方,通常是直接诉诸一刀切的拦截。
更好的做法是根据操作的风险来决定响应,而不是仅凭 Tor 的存在。通过 Tor 浏览营销页面是无害的;通过 Tor 注册账户、修改密码或结账则值得更多审查。
- 低风险页面。 自由放行 Tor;在这里,匿名不会给您带来任何损失。
- 中等风险操作。 增加加强验证:在继续之前要求 CAPTCHA、邮箱验证或额外检查。
- 高风险操作。 对于账户注册、支付或修改密码,将 Tor 标记与其他信号结合,只有在风险确实很高时才拦截或暂缓。
- 绝不信任 Tor IP 的位置。 将
is_tor标记输入地理围栏和合规流程,使出口节点的国家被视为未经验证。 - 记录证据。 记录该请求来自 Tor 以及您采取行动的原因,使决策可审计、可调整。
这种分级响应,正是一个能阻止基于 Tor 的欺诈的系统与一个只会拦截隐私的系统之间的区别。目标是让通过 Tor 进行的滥用操作代价高昂,同时让开放的网络保持开放。这与在不拦截真实客户的情况下检测匿名流量中描述的平衡是一样的。
使用 GeoIPHub 检测 Tor
GeoIPHub 在每次查询中都会标记 Tor。一次调用就会返回 detection.is_tor,以及更完整的信任画像(is_vpn、is_proxy、is_hosting、asn.connection_type、asn.asn 和 asn.org),并附带每项判定背后的 scoring.detection_methods,而不是一个光秃秃的标签,因此您始终知道某个 IP 为什么被标记。
- 立即试用: 免费的 Tor 出口节点检测工具可以在浏览器中将任意 IP 与实时出口节点列表比对,无需注册。
- 集成到产品中: 获取免费 API 密钥,并阅读 API 文档与快速入门。
- 深入了解: 经主动探测验证的 VPN 与代理检测以及威胁情报与滥用信号扩展了同一次查询的能力。
- 没有字段付费墙: Tor 标记以及其他所有字段在所有套餐中都提供,包括免费套餐:每天 1,500 次请求,无需信用卡。
# Is this IP a Tor exit node? One call, with the evidence.
curl "https://api.geoiphub.com/v1/lookup/185.220.101.1" \
-H "x-api-key: YOUR_API_KEY"
精简后的真实响应(查询于 2026 年 10 月 2 日运行):
{
"ip": "185.220.101.1",
"asn": {
"asn": 60729,
"org": "TORSERVERS-NET - Stiftung Erneuerbare Freiheit",
"connection_type": "datacenter"
},
"geo": { "country_code": "DE", "city": "Hamburg (Hamburg-Nord)" },
"network": {
"ptr_record": "berlin01.tor-exit.artikel10.org",
"ptr_pattern": "tor",
"fcrdns_valid": true
},
"detection": {
"is_tor": true,
"is_hosting": true,
"is_vpn": false,
"is_proxy": false,
"is_anonymous": true
},
"threat": { "threat_types": ["tor"] },
"scoring": {
"fraud_score": 79,
"recommended_action": "block",
"detection_methods": ["tor_exit", "datacenter_ip", "rdns_tor"]
}
}
这里有三种方法得出了一致的结论:该 IP 在出口列表中(tor_exit),它位于托管基础设施上,并且它的反向 DNS 将其命名为 Tor 出口(rdns_tor)。也请注意位置字段:该出口的地理定位是汉堡,而它的主机名却以 berlin01 开头,两者都无法告诉您用户实际身在何处。
Tor 是最容易检测的匿名工具之一,因为它的出口节点是公开的:将 IP 与实时列表比对,您就能得到一个决定性的标记。真正的功夫在于响应。把 Tor 视为一个按操作风险相应提高审查力度的信号,绝不信任 Tor IP 的位置,您就能阻止隐藏在 Tor 背后的欺诈,同时不会拦截依赖它的人。
常见问题
什么是 Tor 出口节点?
Tor 出口节点是 Tor 网络中的最后一个中继,也就是流量到达目标之前的最后一跳。由于 Tor 将每个请求经由三个中继转发,目标服务器只能看到出口节点的 IP 地址,永远看不到用户的真实 IP。因此,出口节点是网站唯一能观察到的 Tor IP,也是所有 Tor 检测的基础。
如何通过 IP 检测 Tor 流量?
最可靠的方法是将访问者的 IP 与 Tor 出口节点的公开列表进行比对,该列表由 Tor Project 发布并持续更新。IP 情报 API 会自动完成这一比对,并在每次查询中返回 is_tor 之类的标记。补充信号(已知中继 IP 段、托管/数据中心 ASN 以及行为模式)可以捕获网桥等边缘情况。
Tor 流量一定是恶意的吗?
不是。使用 Tor 的有记者、活动人士、研究人员、注重隐私的用户以及身处审查地区的人,当然也有攻击者。应把 Tor 视为一个需要提高审查力度的风险信号,而不是欺诈的自动证据。一刀切地拦截所有 Tor 流量,可能会把寻求隐私的正常用户挡在门外,因此大多数团队会提升风险等级或增加验证,而不是直接拒绝访问。
可以拦截 Tor 流量吗?
可以。由于 Tor 出口节点列表是公开的,您可以拦截或质询来自任何已知出口节点的连接。是否应该这样做取决于具体场景:对于账户注册或结账等高风险操作,拦截是合理的;而在风险较低的页面上,采用较温和的加强验证(额外验证、CAPTCHA 或只读访问)可以保留正常 Tor 用户的访问权限。
Tor 和 VPN 有什么区别?
VPN 通过提供商运营的单一服务器转发您的流量,因此 VPN 公司可以看到您的真实 IP。Tor 则通过三个由志愿者运行的中继并使用分层加密进行转发,因此没有任何一个中继同时知道来源和目标。从检测角度看,两者都替换了用户的真实 IP,但 Tor 出口节点是公开列出的,因此比许多 VPN 端点更容易识别。
为什么 Tor 的地理位置与真实用户不符?
因为您看到的 IP 是出口节点,您解析出的地理位置是出口节点的位置,它可能与用户位于完全不同的国家。这就是为什么地理围栏等基于位置的规则必须检查 is_tor 标记:Tor IP 报告的国家并不是用户所在的国家,因此该位置应被视为未经验证。
GeoIPHub API 背后的团队
由 GeoIPHub 团队撰写,即构建 GeoIPHub IP 情报 API 及其扫描器的团队。草稿在 AI 辅助下完成,并由团队编辑;除非标注为示例,API 示例均为针对线上 API 的真实查询。


