把 Tor 出口节点当作代理
Tor(The Onion Router)是用于匿名通信的免费软件。Tor 网络由数千个志愿者运营的中继组成,流量通过多层加密在其中路由。
出口节点是 Tor 链路中的最后一个节点,负责把流量发送到普通互联网。本质上,出口节点的作用相当于一台代理服务器:目标网站看到的是出口节点的 IP,而不是客户端的 IP。
Tor 架构
节点类型
Guard(入口)节点 —— 链路中的第一个节点。知道客户端的 IP,但不知道流量的目的地。
Middle relay(中间中继) —— 中间节点。既不知道客户端,也不知道目的地。
出口节点 —— 最后一个节点。连接目标网站。知道目的地址,但不知道客户端。
洋葱路由
客户端用三层加密数据:
- 最外层给 Guard 节点
- 中间层给 middle relay
- 最内层给出口节点
每个节点剥掉自己的那层加密,再把数据传下去。就像剥洋葱——名字由此而来。
把 Tor 用作代理
通过 SOCKS5
Tor 在 localhost:9050 提供 SOCKS5 代理。任何支持 SOCKS5 的应用都可以使用 Tor。
通过 HTTP 代理(Privoxy)
Privoxy 把 HTTP 请求转换为 Tor 使用的 SOCKS5。适合不支持 SOCKS 的应用。
Tor Control Protocol
以编程方式控制 Tor:更换链路(换新的出口节点)、获取当前链路的信息。
Stem(Python)
通过 Control Protocol 控制 Tor 的 Python 库,可实现链路自动轮换。
Tor 作为代理的优势
1. 免费
Tor 完全免费。无订阅、无流量限制。
2. 高匿名性
三跳加洋葱加密。没有任何单个节点同时知道客户端和目的地。
3. 抗审查
数千个节点。网桥(bridge)让用户在审查严格的国家也能连接。
4. 绕过封锁
出口节点遍布全球——可访问不同国家的内容。
5. 开源
全部代码开源,并经过多次安全审计。
6. 社区庞大
社区活跃、更新频繁、文档齐全。
Tor 作为代理的劣势
1. 速度低
三跳 + 加密 = 200-2000+ ms 延迟。带宽受最慢节点限制。
2. 出口节点被封
许多网站封禁 Tor 出口节点的 IP。出口节点列表是公开的,很容易获取。
3. 无法做地理定位
无法可靠地选择特定国家的出口节点(可以设置偏好,但无法保证)。
4. IP 不固定
Tor 每 10 分钟自动更换链路。无法实现 sticky 会话。
5. 出口节点不可信
出口节点由志愿者运营。有些可能监听未加密流量(不带 S 的 HTTP)。
6. 不支持 UDP
Tor 只支持 TCP。游戏、VoIP 等 UDP 应用无法使用。
7. 流量可疑
使用 Tor 本身就可能引起 ISP 和执法部门的注意。
Tor 与商业代理对比
| 参数 | Tor | 商业代理 |
|---|---|---|
| 价格 | 免费 | $1-15/GB 或按 IP 计费 |
| 速度 | 0.5-5 Mbps | 10-1000 Mbps |
| 延迟 | 200-2000 ms | 1-100 ms |
| 匿名性 | 最高 | 取决于服务商 |
| 地理定位 | 有限 | 精确 |
| Sticky IP | 否(10 分钟) | 是 |
| 被检测风险 | 高(公开 IP) | 低(住宅代理) |
| UDP | 否 | 是(SOCKS5) |
实际场景
适合用 Tor 的情况:
- 匿名获取信息
- 在限制严格的国家绕过审查
- 探索暗网(.onion 站点)
- 保护信息源(记者、举报人)
不适合用 Tor 的情况:
- 数据抓取(太慢,出口节点被封)
- 账号运营(IP 不稳定)
- 流媒体(速度低)
- 任何要求速度和稳定性的任务
自建出口节点
为什么
- 为 Tor 网络做贡献
- 掌控出口点
- 为自己的任务获得固定出口 IP
风险
- 您的 IP 会被目标网站看到,可能进入黑名单
- 对其他用户的流量承担法律责任
- 版权投诉(DMCA)
- 可能引来执法部门的关注
替代方案:中间中继
运行 middle relay 更安全——既帮助了网络,又不必为出口流量负责。
结论
Tor 是强大的匿名工具,但作为商业用途的代理存在明显局限。速度低和出口节点被封,使它不适合抓取、监测和自动化。Tor 作为代理的主要用途是匿名获取信息和绕过审查。
