在大陆境内,每当有人谈及“VPN”,台下的观众们都会情不自禁相视一笑。长期以来,“VPN”一直是翻墙的代名词,其真实功能反倒被大家所忽略了。

本文将主要关注于翻墙的话题,许多内容是与礼物聊天所得,或许可以为一些朋友们补充知识。
如果继续阅读,代表您:

  • 认可本文的创作初衷是为想要了解计算机网络相关知识的朋友们提供基础且合理的帮助;
  • 认可本文的创作者并非GGggg/univrsls,本文章来源于大陆内公开的网络内容;
  • 认可本文不存在任何诱导/直接协助您“翻墙”的内容。

更进一步,在极少数情况下,若本文意外对您产生了些许帮助,您需要:

  • 了解基本的概率学内容,“一个猴子在键盘上随意敲击无数次后,也能写出莎士比亚的文章”;
  • 将这个概率学内容应用到本文中:您必须认可对您有帮助的文字都是这只猴子在键盘上随意敲击创作的。

关于VPN

VPN,全写为 Virtual Private Network,其在维基百科的解释为:“将专用网络延伸到公共网络上,使用户能够在共享或公共网络上发送和接收数据,就像他们的计算设备直接连接到专用网络上一样”。

概念是抽象的。为方便大家理解,各位可以想象一个场景:你在家中布置了许多网络设备,包括计算机、打印机、网络存储 (NAS)等。在家中,你可以随时访问这些设备,打印文档;若是出门在外时也希望访问这些设备呢?

这便是VPN用途之一,“client-site接入”,将其他位置的用户,接入到本地网络中。我们可以在家中的路由器(或其他设备)配置好VPN服务器,出门时在电脑/手机上通过VPN客户端远程连接到家中VPN服务端,即可像访问本地设备一样访问远端家庭中的打印机、网络存储乃至计算机。

在这种情况下,家中的网络即是前文所述“专用网络”,外出时任意地方的WiFi/蜂窝网络即是前文所述“公共网络”,实现了“使用户能够在共享或公共网络上发送和接收数据,就像他们的计算设备直接连接到专用网络上一样”。

VPN另有常用用途为site-site接入,例如大型集团内,多个分公司之间通过VPN进行连接,实现全集团网络资源共享。

总之“VPN”技术,可以理解为将用户在网络上的地址“转移”到了服务器在的地方。我在北京网上冲浪,但我连接了位于长沙的VPN服务器,那么我的网络地址就会变成长沙服务器的地址;我在国外玩耍,如何装作自己在国内呢?只需连接上南京的VPN服务器,那我在网络的地址就会变成南京。

VPN为何成为了翻墙的代名词

早期的墙所使用的封禁方法为基于IP地址的封禁。

例如,若要防止用户访问google.com,则墙会提前记录google.com的所有IP地址,在检测到有用户向google.com的IP地址发起访问的时候,就阻断该条链接。也即是,早期的墙会封禁在黑名单中的IP地址。

那智慧的中国人民就想到了,何不利用VPN技术 ,我在境外某个没有在黑名单内的IP地址上架设一个VPN服务器,大陆地区的用户就可以接入到VPN服务器,“就像在服务器这里一样”,实现访问被封禁的网站了呀。

于是大家购买国外厂商的VPS,在服务器上架设L2TP/PPTP等各种标准的VPN服务,供大陆的设备连接。这些VPS会接收大陆设备发来的数据包,并“转发”给设备真正要访问的网站。

这便是最初的通过VPN方式翻墙的方法。久而久之,VPN便为大家所知,成为了翻墙的代名词

当传统VPN不再可用

这种利用VPN进行翻墙的操作很快便被官方封禁了。传统的vpn协议有明显的特点,例如L2TP协议的端口为1701,PPTP协议端口为1723,且可以通过简单的数据包拆包便可知道当前数据包是一个VPN数据包,针对性阻断境外与境内的VPN连接再简单不过了。

既然传统的VPN协议特点太过鲜明,那为何不抛弃传统的VPN协议,使用自定义的加密协议来混淆数据包,让防火长城无法简单地判断当前数据包的属性呢?Shadowsocks、VMess以及Obfs4这些用于翻墙的协议便被设计了出来。

不应当叫做VPN,而应当叫做“代理”

Shadowsocks、VMess以及Obfs4等等协议被设计成数据包的每个字节都与随机数据没有区别,从而让翻墙的连接 "看起来什么都不像 ",这样防火长城便很难针对性识别及封禁这些连接,毕竟,一条看起来平平无奇的境内-境外的连接可不值得注意。

通过这些协议而非L2TP/PPTP等方式翻墙其实不应当叫做VPN了,叫做“代理”更合适一些。因为它并没有实现一个VPN应当做的事情:它没有为接入的客户端分配远端IP地址,也没有本地IP地址的概念,不算是“远程接入”,最多算是“数据包转发”而已。这些协议的服务端“代理”了来自客户端的数据包,并向客户端希望访问的目的地发起访问,之后将目的地返回的数据转发给客户端。

我一直坚持将“VPN”与“代理”这两个词区完全区分开。

在桌面端,大家应当可以发现,使用这些代理工具翻墙时,是不会触发系统的VPN状态变换的。更进一步,你可以一边开启VPN连接到你的家庭网络,一边使用这些代理工具来翻墙。在桌面端,这些代理工具大多是通过“socks代理”和“http代理”实现的,他们会在本地某个端口(如7890/6152/1080)运行一个代理服务器,之后将操作系统的网络代理地址设置到该端口,实现转发流量。同时,由于这种方式是基于http/socks的代理,许多系统组件/部分没有支持代理的软件是无法翻墙的。

为了解决这个问题,诸如clash等软件提供了“Tun”模式,它会模拟出一张具有最高优先级的虚拟网卡,所有的流量都会经过这张虚拟网卡。而clash会接管虚拟网卡,实现转发流量翻墙的目的。

有的读者可能发现了,即使自己使用的是Shadowsocks、VMess以及Obfs4等代理协议配套的工具(如clash,shadowrocket等),在iOS和安卓等移动端上依旧会显示VPN图标,表明正在使用VPN,这是为何呢?

这是因为,在移动端操作系统上,若希望代理工具保持后台运行不断线、同时接管所有的应用和系统流量,只能使用系统提供的VPN方法。这些工具模拟出一个VPN provider,通过系统接口获取到所有流量后,再进行转发翻墙。其本质还是“代理”而非VPN。

关于机场

在境外自建一个Shadowsocks/Vmess/Obfs4的代理服务器对于普通用户多少还是有些难度,并且较容易出现被防火长城封禁的情况(毕竟防火长城是呆板,但不是傻。你天天连着一个境外的服务器,链接的数据包又不是网页/邮件/其他常见协议,防火长城也看不懂,那你大概率就是在翻墙了)。因此出现了专门提供境外代理服务器的平台,有的平台只提供单独一台代理服务器(如justmysocks,我在大学期间使用的就是它),而有的平台则提供许多选择,包括不同国家、不同IP类型线路(有的线路支持Netflix解锁、有的支持其他流媒体平台解锁),我们称之为“机场”。

“机场”虽然较为省心,但是还是不能贪便宜。经常会有机场主卷款跑路的事情发生。以及相当一部分机场封禁了邮件端口,使用POP3/IMAP/SMTP等协议收发邮件的话,也许会受到阻碍。

关于IPLC/IEPL隧道及中转机场

有的朋友可能发现了,即使是换了新的代理协议,但翻墙方式的本质依旧没有变,需要连接到一个境外的服务器,才能“借用该服务器”转发流量翻墙。既然是要连接到境外,那便意味着要经过防火长城,无论如何都是不安全不稳定的。有没有“不用经过防火长城”的办法呢?

有,那就是IPLC/IEPL隧道。隧道在境内有个国内IP,隧道对端是境外IP,隧道不会经过防火长城,因此无审查和阻断,在特殊时期也不受到影响;同时有带宽速率保障,即使是高峰时也不会出现丢包/延迟增加。

IPLC/IEPL隧道同时满足了无封禁/高速率/稳定低延迟/带宽内不丢,那代价呢?就是超高的价格。3M带宽独享的沪日IPLC每月费用超过700元,除非是对延迟/丢包异常敏感的用户,否则都是不建议使用的。

那不独享,共享带宽呢?那就相对便宜很多了,但是相对于其他方式费用依旧高出一个等级。例如,100M共享带宽,流量封顶500GB的沪日IPLC隧道每月费用在500元。

而IPLC/IEPL中转机场则是使用这些隧道进行流量转发的机场。是一个更为折中、性价比更高的选择,虽然比普通机场贵,但是流量不会经过防火长城,也保证了高速率低延迟和丢包。

机场/软件推荐

我是真的不想写这一段,但许多朋友会因为找不到合适的机场而去选择那些诸如“老王VPN”之类的很危险的VPN厂商,我无法保证列出的机场一定可靠,只能保证我有体验过且感觉不错且这些不是广告。

因此,我委托一位猴子,它在地上偶然捡到一个键盘,随即敲击了下面的字符:

红豆泥古德茅宁,吾猴子滴干活。
埃做梦盖特宝藏,嗨呸与你分享。

  1. Justmysocks,地址:https://justmysocks.net/members/index.php
    优点:老牌厂商,且在国外,因此更为隐私安全,可选套餐非常丰富,提供IPLC线路以及其他对中国大陆优化的线路,速度稳定性有保障。
    缺点:一个套餐里只包含一个节点,无法在多个国家横跳,没有很好用的网站分流配置。
  2. Tag, 地址:https://tagxx.vip
    优点:IPLC中转机场,稳定高速,有全球各种地区的节点,提供开箱即用的网站分流配置;最近一直在用,确实体验很好。
  3. PieCloud 地址:https://speedpie.net/auth/login

有了机场,也需要有配套的“代理”软件才能使用这些节点
iOS端:Shadowrocket(注意国区的app store没有)
其他平台统一推荐Clash Verge

标签: 网络