VPN 和代理的区别:VPN 作用于整台设备,而非单个程序

伊利亚·索科洛夫

阅读时间 9 分钟基础知识

代理还是 VPN

代理要在单个程序的设置中填写。VPN 则作用于整部手机或整台电脑。两者的其他区别大多源于这一点。下面围绕咖啡馆的 Wi-Fi、访问的网站和速度,逐项说明 VPN 和代理的区别。文末回答 3 个问题,就能在两者之间做出选择。

代理要在每个程序里分别填写,VPN 要设置的是例外

代理指的是他人服务器的地址和端口。这两项填写在浏览器、Telegram 或系统的网络设置中。只有读取这些设置的程序,才会把流量发往代理。例如,在笔记本电脑的 Telegram 里填入代理后,Telegram 的流量都会经过那台服务器。浏览器、Steam 和系统更新仍走原来的连接,IP 地址也不变。

使用 VPN 时,哪里都不用填写服务器地址。应用会在系统里安装 VPN 适配器,即一块虚拟网卡。在电脑上,这一步可能需要管理员权限。VPN 开启期间,所有流量都经过这个适配器。从不读取代理设置的游戏和系统服务也包括在内。Ben's VPN 对分割隧道“关闭”模式的描述与此相同。应用中的原文是:“在此模式下,设备的所有流量都通过 VPN”。

用代理时,每个程序都要单独填写。漏填的程序会直接连接,不经过代理。用 VPN 时,所有程序都经过服务器,例外由自己选择。在 Ben's VPN 中,例外通过主界面上的“隧道”按钮设置。在“手动”模式下,列出不需要走 VPN 的域名、IP 地址和子网。在 Android 上,还有“绕过 VPN 的应用”列表。

各类代理的作用范围和加密程度各不相同

下表对比 4 种代理、“VPN”浏览器扩展和 VPN 应用。

类型在哪里启用是否加密到服务器的连接哪些流量经过它
HTTP 代理在浏览器、系统设置或某个 Wi-Fi 网络的设置中否读取这些设置的程序发出的网页请求
HTTPS 代理通常在浏览器或浏览器扩展中是,加密到代理为止浏览器流量
SOCKS5在 Telegram、浏览器、BT 客户端等有此设置的程序中否该程序的连接;双方都支持时也包括 UDP
MTProto 代理仅在 Telegram 中Telegram 的数据本身已用 Telegram 自己的协议加密仅 Telegram
“VPN”浏览器扩展单个浏览器视服务而定该浏览器的标签页
VPN 应用整台设备通常是所有程序同时经过,设为例外的除外

浏览器扩展无法改变其他程序流量的走向。在所有网络设置中,扩展只能更改浏览器的代理。因此,“VPN”扩展只是为单个浏览器的标签页充当代理。Ben's VPN 没有浏览器扩展。VPN 把浏览器当作普通程序处理,所以浏览器的标签页也经过服务器。唯一的例外是设为不走 VPN 的网站。详情见本站的浏览器扩展页面。

仅凭协议名称,也无法区分代理和 VPN。例如,Shadowsocks 最初的设计就是加密代理。后来,Jigsaw 在 Shadowsocks 的基础上开发了 Outline,而 Ben's VPN 基于 Outline。我们的应用仍然是 VPN,因为系统中的所有程序都经过这个应用。应用会从 4 种协议(VLESS + REALITY、XHTTP、Hysteria2 和 Shadowsocks)中自动选择一种。应用设置里没有协议选项。

未加密的代理会把网站名称和密码暴露给网络

在咖啡馆的 Wi-Fi 上使用普通 HTTP 代理时,网站名称以明文在网络中传输。每次连接之前,浏览器都会向代理发送带有网站名称的 CONNECT 请求。即使经过代理,HTTPS 网站的内容仍然是加密的。热点所有者和网络运营商能读取 CONNECT 请求,因此能看到访问过的网站列表。没有 HTTPS 的页面则完全不加密。代理可以读取甚至修改这些页面。

代理的用户名和密码同样不加密。HTTP 代理通常采用 Basic 认证方案,以 Base64 编码接收。SOCKS5 代理则以明文接收。凡是能查看该网络流量的人,都能读到用户名和密码。

使用 VPN 时,咖啡馆的 Wi-Fi 上没有 CONNECT 请求。从设备到服务器只有一条加密连接。就连设备用来查找网站的 DNS 查询也在这条连接里传输。热点所有者和网络运营商能看到的只有服务器的 IP 地址和传输的数据量。这时,能看到访问过的网站列表的是 VPN 服务器。用代理时,看到同一份列表的是代理。选择 VPN 服务商,就是选择把这份列表交给谁。

有些代理会把真实 IP 地址发给网站

使用代理或 VPN 时,网站得到的都是服务器的 IP 地址,而不是真实 IP 地址。网站会据此认为访问者位于服务器所在地。有些代理会在无 HTTPS 页面的请求里附上真实 IP 地址。地址写在 X-Forwarded-For 或 Forwarded 请求头里。有了这样的请求头,网站就能得知真实 IP 地址,和没有代理时一样。VPN 工作在更底层,处理的是网络数据包,不会添加任何请求头。

代理和 VPN 都隐藏不了账号、浏览器语言和时区。登录后,服务会通过账号识别身份。浏览器会把语言设置发送给每个网站。页面上的脚本可以读取设备的时区。因此,网站可能发现一位“来自日本的访客”,设备上用的却是纽约时间。本站的 VPN 入门指南列出了 VPN 不会改变的其他方面。

距离、服务器负载和后台任务都会降低速度

任何中间方都会在设备和网站之间多加一跳。同一座城市里的代理和 VPN 服务器,增加的这一跳长度相同。这样一来,速度取决于到服务器的距离和服务器的负载。公开列表上的免费代理,要为所有找到这份列表的人服务。每个人只能分到一小部分带宽。

加密本身对 VPN 速度影响很小。处理器配备 AES 加密专用指令已有多年。Intel 在 2010年推出这类指令,首批支持的手机于 2013年上市。

VPN 承载设备的全部流量,所以后台任务也会经过 VPN。Steam 更新、向云端上传照片都属于这类任务。如果这类任务不需要 VPN 又占用带宽,用“隧道”按钮把它设为例外。要提高速度,选择离所在地较近的位置。“改变国家”窗口中的“最快的”按钮,选的就是附近的位置。

最快的和之前的这两个按钮位于 iPhone 上的“改变国家”窗口中,在搜索框和位置列表上方
“最快的”和“之前的”按钮位于位置列表上方。

用 3 个问题在代理和 VPN 之间做出选择

如果下面 3 个问题的回答都是“否”,用代理就够了。只要有一个回答是“是”,VPN 就是更方便的选择。

  1. 需要经过服务器的程序不止一个吗?Telegram 里的代理只对 Telegram 有效。浏览器和游戏可能也需要新的 IP 地址。在每个程序里分别填写代理,比连接 VPN 更费时间。有些程序根本没有代理设置。关于 Telegram 的更多说明,见本站的 Telegram VPN 页面。
  2. 用的是别人的网络吗?在咖啡馆、酒店或航站楼,通过普通代理访问了哪些网站,网络都看得到。同一网络还能读取代理密码。VPN 让所有流量都经过一条加密连接。
  3. 要通话、玩游戏,或使用没有代理设置的程序吗?HTTP 代理通常不承载通话和网络游戏。语音和游戏数据大多通过 UDP 传输。上文提到的 CONNECT 请求只能建立 TCP 连接。这类流量要么传不过去,要么绕过代理。VPN 会把这类流量和其他流量一起传输,设为例外的除外。

无法运行应用的游戏主机、智能音箱或电视属于特殊情况。这类设备可以使用路由器上的 VPN。它一次覆盖整个家庭网络。

要在手机、电脑或电视上安装 Ben's VPN,打开各设备的 VPN 下载页面。

问题与解答

什么是反向代理?它能隐藏我的身份吗?

不能。反向代理工作在网站一侧,不在访问者一侧。它接收发给网站服务器的请求,再转发给这台服务器。内容分发网络和负载均衡器就是这样工作的。反向代理隐藏的是网站的服务器,还能减轻服务器的负载。和任何网站一样,它能看到访问者的 IP 地址。HTTP 标准把这类中间方称为“网关”。

多跳和代理链的原理一样吗?

原理相似。两种情况下,流量都经过 2 台服务器。代理链通常为单个程序搭建。Ben's VPN 的多跳作用于整个 VPN 连接。多跳会在连接路径上增加一台第三国的中转服务器。我们推荐“自动”模式。在这个模式下,如果连接需要这台服务器才能保持稳定,应用就会加上它。该设置位于“账户” → “设置” → “多跳”。

怎样判断代理或 VPN 当前是否生效?

分别在设置了代理的浏览器和另一个未设代理的浏览器中打开 IP 查询网站。如果代理只填在一个程序里,两个 IP 地址会不一致。使用 VPN 时,两个浏览器显示同一个 IP 地址,IP 归属地与所选位置一致。Ben's VPN 的主界面也会显示“已连接到”和 IP 地址。唯一的例外是设为不走 VPN 的 IP 查询网站。

代理能读取 HTTPS 网站的内容吗?

不能。代理本身只能看到 HTTPS 网站的名称。要读取 HTTPS 流量,中间方的根证书必须安装在设备上。一些公司就是这样检查内部网络流量的。如果免费代理或陌生程序要求安装证书,不要安装。

VPN 可以不加密吗?

可以。“VPN”一词指的是建立在公共网络之上的专用网络,并不意味着加密。例如,L2TP 本身不加密数据。正因如此,L2TP 通常与 IPsec 搭配使用。在 Ben's VPN 中,到服务器的连接始终是加密的,应用使用哪种协议都一样。

先试用 3 天,再做决定

试用费用为 $0.50,包含全部 187 个国家和地区,所有应用都能使用。试用结束后按每月 $5 续订。续订可以随时在账户页面取消。

Mac App Store App Store Google Play