回国翻墙(科学上网)101
父亲节,祝坛子里的父亲们快乐!
今天聊一聊二十一世纪中国最伟大的发明 – 防火长城。
从业网络工作多年,没想到连自己翻墙也是困难重重,费了不少劲才跟上墙梯更新的步伐。回顾在网上查找到资料,感觉都缺少对翻墙的基础知识的介绍,使得局外人(即便是网络专业人员)很难找对入口。特别是在网上 Google 时,结果会出现许多 VPN 商业软硬广告,产生误导。在此我记录一下我的学习心得,以餐有需要的朋友。
本文不是教人如何翻墙的,因为这些翻墙教程网上到处都是,甚至让人无所适从。这里旨在介绍翻墙相关的基础知识和社会环境,让读者在制定自己的翻墙计划时有的放矢。
就像长城(Great Wall)一样,防火长城(Great Firewall,GFW)也是中国独一无二的。不同的是,长城是固定不变的,而 GFW 则时时在加高,而且在某些敏感时期会额外增加防护网。用普通的梯子是很难跨越的,即便侥幸过去了几次,也无法稳定地长期使用。
防火长城被戏称墙,来源于防火墙技术。现在,“墙”不仅是名词,也是动词:“被墙了”就是被断了翻墙的通道,被“屏蔽”了。
同样,“翻墙”这个土词也出现了“科学上网”这个阳春白雪的同义词,我想这里主要是有两层含义:一是在国内的科研院所需要到外网查找资料,二是在国内的“局域网”不够科学。
近十几年来,墙越建越高,用来翻墙的手段也不断更新。围绕着这种魔道争霸,其相关的技术已经自成体系,不断进化,充分体现了魔高一尺,道高一丈的关系。
基于 VPN 的手段,不管底层是 IPSec,IKE 还是什么 SSH tunnel 之类的,基本上都是基于信息安全的设计,也就是监听者无法看到加密的传输内容。这是传统信息安全的首要目标,但不是翻墙的主要目的。用这些 VPN 来翻墙有诸多问题:
小的 VPN 开发商跑路就更是常见了。随着近几年 GFW 的不断加高,VPN 翻墙基本已经成为鸡肋,只有那些大品牌的广告宣传还是轰轰烈烈,但实用时稳定性极差。
那么自建 VPN 怎么样呢?我前两日安装了一个 Amazon AWS EC2 的虚拟服务器,在上面搭了 一个 VPN 服务,在我的手机上运行很好,可惜,在国内就被墙了。我了解一下,好像就是 Amazon 的 IP 地址都已经上了黑名单。
总之,耗费时间精力有点得不偿失。就算现在通了,不知什么时候又会被墙,需要不断维护,不如用别人专业的服务更划算。
早年的网络安全技术 VPN 为代表的翻墙手段已经很难适应这种魔道之争了,近五年出现的“机场”方式更能体现“道高一丈”。现在的翻墙技术都转向了“机场”了。
熟悉网络技术的朋友可以跳过这一段。
现在互联网的网络基础可以说是三十年未变,还是基于 IP 地址上的一系列协议。我们在网上通讯,最底层都会被打包成为一个 IP 包,包头上有两个重要的信息:源 IP 地址和目的地 IP 地址。以 IPv4 为例(现在互联网上的流量还是以 IPv4 为主),就是如同 52.132.254.12 样子的四个小于 255 的数字标识。
每个 IP 地址都代表网络上的一个节点。比如我们拿手机用流量看油管时,发出的信息包都有一个类似的 IP 地址作为源地址 A,而油管的服务器的 IP 地址就是目的地地址 B。反过来,油管发回给我们的视频数据包里正好把这两个地址换了一下,B 为源地址,A 为目标地址。当然这是一个简化的示范,加入路由后事情就会很复杂了。
用 IP 地址作为通讯的标识对计算机很方便,但对人们则不是很友好。所以人们对网络节点还赋予了名字,叫 hostname 或 nodename。比如 www.youtube.com:这个 www 就是服务器的主机名,youtube 是域名,com 是顶级域名。网络上的每个节点都可以赋予一个名字,并绑定到一个(或多个) IP 地址上。
但网络通信还是用 IP 包的,发包的计算机知道自己的 IP 地址,可是它如何知道目的地的 IP 地址呢,比如上面的 www.youtube.com。互联网的设计者在网上安排了若干的域名服务器,负责解析这些域名/主机名到 IP 地址。全球有 13 根域名服务器来解析顶级域名下的地址,有一两千个镜像服务器来分流。这种域名服务叫 DNS – Domain Name Service,它们不仅需要物理的计算机服务器,也代表着一个协议,支持各个网络节点的域名服务请求。所以,每个网络节点计算机都需要设置 DNS 服务器的 IP 地址才能上网(在局域网内,网关 Gateway 可以自动提供 DNS 服务器)。
好了,主要的“墙”技术和“翻墙”手段都围绕着上面的最基础信息展开。
“墙”只是网络世界对现实世界的一个形象描述,而实际上网络世界里的墙和现实世界里的情况是不一样的。网络世界里的墙可以理解为篱笆,中间总是有许多漏洞,理论上就不可能完全堵死。除非真的换成土墙,但那样就彻底隔绝了,成了地地道道的局域网,连官方通过也只能走专线(门),这明显不靠谱。
所以,严格地说,墙不仅是不断加高,而且是不断加密,堵塞漏洞。而墙的严密的程度和墙内有需要的人“合法”出墙的难度成正比,所以理论上墙总是有漏洞的,而且需要有漏洞。我理解官方的要求是“漏洞可控”,而不是完全堵塞漏洞,否则成本太高,承受不起。
举个例子。美加边界有近九千公里(包括加拿大和阿拉斯加的边界),要想建墙堵住是不可能的。所以只在有公路通过的地方设卡,估计所有公路上的美加边境障碍也不过几公里长。如果有人经常走某个小路非法越境,时间长了管理层可能就会建一段墙堵住那个小路。但总体上说,能通过的地方是远远多于不能通过的地方,只是人们都习惯了走大路,这才觉得到处是墙。
为此,GFW 开发了一系列的相关技术用于检测和干扰“非法”翻墙:
DPI (Deep Packet Inspection)技术 – 分析 IP 数据包内内容。对于 IPSec 的数据包,只有两个 IP 地址可见,但现在有大数据,可以据此判断目标地址是否该堵。这也是 VPN 翻墙经常出问题的一大原因。
DNS 污染 – 当 DPI 发现数据包内有问题,GFW 就可以马上给发包节点发回假的 DNS 信息,让该节点的通信异常。
IP 封锁 – 当认定某个 IP 地址是禁止访问的,就对之进行墙内全网封锁,当然也就无法建立通讯了。这里面具体的还有各种手段,就不一一列举了。
VPN 屏蔽 – 为了翻墙,VPN 开发商往往把数据包伪装成各种“合法”数据,但由于 VPN 技术的特点,这些包总会有某些特征,称为指纹。就像当年查病毒软件一样,GFW 可以根据这种特定的指纹信息对数据包进行欺骗处理。
如此种种,不胜枚举。但万变不离其宗,就是对数据包的检查和封锁。
先从 VPN 技术说起。VPN 商家制作一个软件 (或手机上的 app),用户就在自己的计算机/手机上安装后直接可以访问外网了。
VPN 如果没有 GFW 是很方便的,不需要用户有多少网络知识就可以使用。但这也产生一个致命缺陷,就是这个软件是一个“稳定”的产品,这也意味着从这个软件发出的数据包都会有某些遗传特征,数据包的目的地也都是比较固定,时间长了 GFW 就会发现。这就是为什么传统的 VPN 很难胜任翻墙工作的根本原因。不管它做得多隐秘,只要用户多了、流量大了,就会被针对,然后被屏蔽。这种 VPN 和 GFW 的斗法让用户很无奈,经常会出现 VPN 很长时间不能用,甚至以月来计。相信多数人没有毅力在一两个月 VPN 不好用的情况下还继续期待着吧。
机场采用的是积木式方法来搭建。从底层技术上来说,它并不比 VPN 先进。虽然采用了许多新的协议,但那些东西都是大同小异,如果 GFW 给力的话,都可以咬上一口的。但机场把客户端的应用和翻墙用的服务器分离开来,这样只要那些各种翻墙的服务器足够多, GFW 是忙不过来的,即便屏蔽了几个,客户很快可以导入其他的机场,继续翻墙。这样就大大地提升了翻墙的客户体验。
机场是翻墙机场的简称,这个名字来源于其起初的 Shadowsocks 协议,其客户端是一个小纸飞机 – 是不是和 Telegram 的图标也有点像?这个词没有英文对应,是完完全全国产名牌 。
必须说明,机场的信息安全性(不被监视)是不如 VPN 的。当然,想要偷窥机场传输的内容也不是那么简单。所以 GFW 也没有能力去全部过滤所同雨后春笋般的机场。
其实,就我的理解,这些机场也都是在某种监控之下的。作为监管方,他们比我的手段、经验、技术高多了,如果真的想要对付某个具体的机场或 VPN 是轻而易举的事儿。但凡事都有副作用,平衡利弊是关键,当副作用过大时,杀敌八百自损一千的事儿就没人干了。这些副作用都有什么呢?
也许还有其他的原因。所以我认为彻底严封“非不能也,实不为也”。但为什么当局对 VPN 斩尽杀绝呢?当然一方面是它可以做到,另一方面是 VPN 让反贼们交流太容易了。其实,他们只知其一,不知其二:如果用机场搭了梯子,然后再用 WhatsApp 一类的端到端加密通讯,其安全性不比 VPN 差。
机场也分专线(如租赁 IPLC/IEPL)、直连和中转。专线是最好的,就像上山坐缆车一样, 没有 GFW 干扰,但价格昂贵,往往是企业内部专用,这是“合法”翻墙的;直连就是直接连到国外的服务器,不经国内的服务器中转,其缺点主要是因服务提供商不同其网速迥异,现在已经不多了;中转式是性能价格比最高的方式,也是有当局某种默许的成分在里面。
说起来好像挺复杂,实际上只要了解了原理,安装机场并不是太难的事儿。
现在流行的操作系统都可以安装机场客户端,比如 Windows,Linux,MacOS,Android,iOS 等。但不同的操作系统有不同的客户端,而且这些客户端在中国的 app store 里往往不支持 – 需要登录到外国的 app store 里下载。非苹果产品有直接安装的优势,不必受此累,但也会产生安全顾虑(有一得就有一失)。
以 iOS 为例,有付费的 Shadowrocket (USD $2.99),有免费的 FoXray,V2Box,Sing-Box 等。这些客户端大多都支持各种翻墙协议。大陆客户必须在境外注册 Apple ID 才能下载。
有了客户端,就可以订购机场服务了。网络上搜索翻墙机场 2024 就会给出大量的机场,本文不做广告推荐。
在搜索机场时,用“翻墙机场2024”作为关键字即可。放上年份是因为这些信息的时效性很强。另外,也要注意区分 VPN 和机场。机场在实际使用时会像 VPN 一样,而 VPN 在做广告时又和机场一样,很是混乱。
在找机场时还需要注意以下原则:
订阅后,按机场的要求说明,导入 profile 到客户端,就可以像 VPN 一样使用了。要注意那些 profile 需要经常更新,以免被墙。
幻想买一个 VPN 软件就可以在国内翻墙的朋友,可以洗洗睡了。
翻墙是一个持续的魔道争霸赛,不仅仅 VPN 不能一劳永逸,用机场也不行。最好的办法是加入翻墙群,比如 Telegram 有不少这样的群,有许多就是机场开发商建的,可以跟踪目前的实用翻墙技术。另外和几个搞机场的朋友的连上微信,以后就方便多了。
不要完全相信哪个机场。他们可能会跑路,可能会被拔线,也可能本身就是当局设的。
作为用户,机场有三类:
大家可以看到,机场其实比 VPN 要便宜一些。上面的价格都是按月付款,按季按年都另有优惠。
作为机场用户,应该有狡兔三窟,就是同时准备几个机场。比如,有一个大容量的作为主机场,另安排一两个不限时按流量付费的备份机场,当主机场出问题时,备份机场就可以生效了。它们之间是不冲突的。
至于付费方式,这些机场基本都是支持支付宝、微信付款的,因为主要客户群毕竟是在中国国内。
对于短期回国旅行的朋友,在国内翻墙时还有另外两种方法:
这两种方式都可以访问外网。
----
本文是基于身在国外,需要临时回国的角度来考虑回国后如何翻墙出来的。从国内同胞的角度可能会另有考虑。
本人也是脱离网络技术多年,错误和谬误难免,望读者海涵。
谢谢博主的科普,自由万岁!