谈谈 VPN

在国内,VPN(Virtual Private Network)仍然作为很多人连接国际网路的主要方式。原理上,个人设备是连接到远端 VPN 服务器,通过 VPN 服务器来中转网络访问请求,一般情况下设备到 VPN 的连接不会被干预,所以个人设备可以通过 VPN 来访问国际网络。简单的说,VPN 提供了一条连接到 Web 的新通道,并且可以对通道上的通讯数据进行加密。

上图是同一个设备访问不同网站的路由节点信息,这些节点展示了从设备到站点的网络路径。从图上可以看出,数据从本地网关(192.168.1.1)出去后经过一系列节点最后到达目标站点,信息显示到达不同网站的网络路径是不一样的,左边国内站点(news.163.com)是 9 个节点而右边国际站点(xinlake.github.io)是 14 个节点。路由节点的数量与网站服务器所在区域、网站规模(包括 CDN 铺设)、网路环境都有关系,一般情况下,路径节点少意味着低延时,节点综合负载低意味着高网速(更能接近网路带宽的速度)。

没延迟信息的节点(即 Request Timed Out)有可能是真的超时了,也有可能是该节点不响应 ICMP。

连接

通过 VPN 联网则不会走默认的网络路径,客户端的网络访问会由 VPN 服务器来中转。总的节点数量可能会变多也可能会变少,比如你在国内使用国外 VPN,访问国内站点时网络路径有可能是从国内绕到国外再绕回国内,路径变长;访问国外站点时 VPN 通道及外部网络有可能会使整个路径更加优化,路径变短。同时,VPN 也会使网络延时、速度发生变化。

VPN 通道有可能绕过干预,从而让设备能够访问一些无法到达的站点,相信这也是国内 VPN 的主要用途。站在 Web 站点的视角看,站点看到的来访者的 IP 地址是 VPN 服务器的 IP 地址,但这并不意味着使用 VPN 后就匿名了,这一点稍后会说明。

加密

VPN 通道有数据加密的功能,但我不建议将 VPN 的加密功能作为数据通讯的安全保证。因为加密只处理设备到 VPN 这一段的通道,VPN 到 Web 站点这一段不处理。所以说 VPN 并不能保证通讯安全,不能保证 VPN 到 Web 站点这一段的网络通讯不被侦听、拦截、篡改。

HTTPS 连接具有全程加密的特性,虽然 HTTPS 和 VPN 不是同一类别的东西,但就从提升通讯安全的技术方式来说,HTTPS 比起 VPN 要好。一个网站或多或少都会引用一些第三方提供的服务,这些服务有的不支持 HTTPS 连接,不过现代浏览器在这方面都会有详尽的提示。

HTTPS 完整支持

匿名

技术上,VPN 服务器知道一个用户设备的真实 IP 地址,还可以记录这个 IP 的账号登录及网络访问(可以参考一些开源 VPN 的代码)。也就是说,VPN 可以追踪并记录一个用户账号的网络访问。当这个用户账号(机器层面)和使用者(实体身份)有了一定的绑定关系时(如一个人购买了 VPN 服务,支付时需要实体身份信息),使用者的网络访问就很难匿名了。当然,是否记录以及如何使用该记录取决于 VPN 服务商,这有很大的不确定性。

此外,Web 站点也可以通过技术方法得到真正的来访者信息,比如 WebRTC、Cookie,App(像浏览器、互联网客户端、社交媒体)也可以直接读取本地 IP 地址然后打包上传到服务器。在匿名这个需求上,可以尽量减少机器数据和人类实体身份的关联。

最近更新 2019-07-15