VPN、代理与 Tor 有什么区别?三者的机制对比

Yalgorup 编辑部 · 更新于 2026年8月1日

一句话回答代理工作在应用层,只接管配置了它的那个程序,多数不加密;VPN 工作在网络层,接管整机流量并全程加密;Tor 用三层中继和逐层加密换取匿名性,代价是速度极慢。三者解决的是不同问题。

核心要点

  • 判断标准有三个:作用在哪一层、加不加密、覆盖哪些流量。
  • SOCKS5 本身不提供加密,「SOCKS5 更安全」是常见误解。
  • Tor 的价值在于没有任何单一节点同时知道「你是谁」和「你在访问什么」。
  • VPN 是单跳架构,服务商同时知道这两件事 —— 所以信任模型完全不同。

一张表先看结论

HTTP/SOCKS 代理VPNTor
工作层级应用层网络层应用层(覆盖网络)
加密通常没有全程加密三层逐跳加密
覆盖范围单个程序整机Tor 浏览器或经配置的程序
跳数113
速度略有损耗很慢
谁知道你是谁代理服务器VPN 服务商只有入口节点
谁知道你访问什么代理服务器VPN 服务商只有出口节点

代理:只是转一手

代理服务器代替你去请求目标资源。HTTP 代理理解 HTTP 语义,可以做缓存和内容改写;SOCKS5(RFC 1928)更底层,只负责转发 TCP/UDP 连接,不关心内容。

关键点有两个:

只有配置了代理的程序才会走它。 浏览器设了代理,微信、系统更新照样走原网络。这也是代理经常被误用的原因 —— 用户以为全局生效了。

代理本身不负责加密。 如果访问的是 HTTPS 网站,加密来自 HTTPS 而不是代理。SOCKS5 传输的数据对代理服务器和路径上的设备是什么样,取决于上层协议。

VPN:接管整台设备

VPN 在网络层建立隧道,所有出站 IP 数据包都被加密封装。这带来了两个代理没有的特性:

  • 覆盖全系统,包括那些根本没有代理设置的应用
  • DNS 查询也能被接管,减少泄露面(前提是实现正确,见 DNS 泄露

代价是需要系统级权限,切换不如代理灵活。

Tor:用多跳换匿名

Tor 的设计目标和前两者不同 —— 它要保证没有任何一个节点同时掌握两端信息

流量依次经过入口节点、中间节点、出口节点,客户端为每一跳单独加密。入口节点知道你的 IP,但看不到最终目的地;出口节点知道目的地,但不知道你是谁;中间节点两头都不知道。

代价非常直接:三跳绕行,节点由志愿者运营,带宽有限,延迟通常几百毫秒起步。此外出口节点能看到未加密的内容,所以在 Tor 里访问 HTTP 网站依然危险。

该用哪一个

  • 只是想让某个程序换个出口 IP —— 代理够用,别指望它提供隐私。
  • 想让整台设备的流量都不被本地网络看到 —— VPN。
  • 威胁模型里包含「不能让任何单一方关联身份与行为」 —— Tor。

一个务实的判断方法:先明确你在防谁。防同一个 Wi-Fi 下的其他人,VPN 足够;防的是掌握全局观测能力的对手,那么 VPN 的单跳架构本身就不成立,因为服务商这一个点就掌握了全部信息。

常见问题

SOCKS5 代理有加密吗?+

协议本身没有。SOCKS5 只规定了如何转发连接和做身份验证,数据是否加密取决于上层协议。要加密需要在外面再套一层,例如 TLS。

Tor 可以替代 VPN 吗?+

日常用不合适。三跳中继带来的延迟通常在数百毫秒以上,视频和游戏基本不可用。它面向的是需要强匿名的场景。

VPN 和 Tor 一起用有意义吗?+

有特定意义但也有代价。先 VPN 后 Tor 可以让本地网络看不到你在用 Tor;顺序反过来则改变了信任假设。除非清楚自己在防谁,否则不建议叠加。

为什么有些服务能识别出我在用代理或 VPN?+

主要靠 IP 情报库。数据中心 IP 段、同一 IP 上异常多的并发用户、以及时区与 IP 地区不一致,都是判定信号。

参考资料

延伸阅读