目录

浅析翻墙

浅析“翻墙”

警告
声明

撰写本文是出于学习计算机网络知识,解析技术以及简单普法的目的。不传播、售卖“翻墙”工具,不教授“翻墙”方法,本文也不出现“翻墙”教程。本人对网民浏览本文后做出的不理智行为概不负责

什么是“翻墙”?

首先,我们要知道翻墙翻的是什么?答案是 GFW(Great Fire Wall)也就是长城防火墙。这里借用维基百科来解释:防火长城(英语:Great Firewall,常用简称:GFW),中文也称中国国家防火墙,俗称墙、网络长城、防火墙等等,中国国家互联网信息办公室称为数据跨境安全网关 ,是中华人民共和国政府监控和过滤互联网国际出口内容的软硬件系统集合。随着使用的拓广,“墙”有时也被用作动词,中国网友所说的“被墙”即指网站内容被防火长城所屏蔽或者指服务器的通讯被封阻,“翻墙”也被引申为突破网络审查浏览中国大陆境外被屏蔽的网站或使用服务的行为。

为什么要“翻墙”

一方面,普通人翻墙原因如下:

  1. 使用国外的 app 和服务,例如看 YouTube,使用海外版腾讯视频(海外版往往比国内版体验感好,无广告简洁)。
  2. 好奇,想见识一下墙外的世界。(这点原因是主要因素,大多数人都是出于这一点)
  3. 满足在国内无法实现的欲望,比如逛 P 站(懂的都懂)
  4. 与外国人聊天,增长外语水平
  5. 做外贸,面外海外经商却不想支付昂贵的官方信道费用
  6. ……

另一方面,作为一名程序员,其翻墙原因如下:

  1. 使用 GitHub,对于一名程序员来说,GitHub 算得上是必需品,根本离不开
  2. StackOverflow 社区,寻找 bug 解决方案
  3. 下载、使用专业工具,因为有些工具是海外的,国内没有替代品
  4. 查阅文档、学习技术
  5. 阅读科研论文、查询数据、与海外团队交流
  6. ……

”翻墙“犯法吗?

需要明确的是,在这一问题上,国内暂无一个统一见解。但我个人观点是只要不传播、不扩散、不进行违法违规活动,不发表、不转发、不支持反动言论,只是简单地浏览,同时也没有人举报你翻墙了,那么警察也不会闲得来抓你。

引用

计算机信息网络国际互联网安全保护管理办法》(以下简称其为“办法”)第5条规定,任何单位和个人不得利用国际互联网制作、复制、查阅和传播下列信息:

(一)煽动抗拒、破坏宪法和法律、行政法规实施的;

(二)煽动颠覆国家政权,推翻社会主义制度的;

(三)煽动分裂国家、破坏国家统一的;

(四)煽动民族仇恨、民族歧视,破坏民族团结的;

(五)捏造或者歪曲事实,散布谣言,扰乱社会秩序的;

(六)宣扬封建迷信、淫秽、色情、赌博、暴力、凶杀、恐怖、教唆犯罪的;

(七)公然侮辱他人或者捏造事实诽谤他人的;

(八)损害国家机关信誉的;

(九)其他违反宪法和法律、行政法规的。

如果按照上述规定,那么在翻墙过程中将难免会遇到不良内容,容易触犯该办法。而这也警示我们:不传播、不扩散、不进行有违法律法规的网络活动!

另一方面,国内翻墙用户众多,所谓法不责众,如果按照翻墙即违法来处办的话,这对于警力要求过高。按照下图显示的份额来看,谷歌 2020 年在中国就有着 3.49% 的市场份额,而 2020 年中国网民共计 9.40亿,不难得出中国有3200万谷歌用户的数据,如果我们保守估计,以其中有一半的人都有着正规渠道访问谷歌(比如各高校、科研实验室、跨国公司、银行等有资质购买专线的),那么具有翻墙能力的人也有 1600 万之巨,这已经是一个庞大的数字,这也是国内对翻墙不再如从前那么敏感的原因之一。

https://s2.loli.net/2022/01/02/oyRG56acvAQrxni.png

同时,近些年来国民的民族自豪感、国家认同感大幅提升,这一现象在年轻人身上表现尤为明显,恰如年轻一辈的口号“请党放心,强国有我”。这使得 GFW 封锁国民访问外网的一大原因——防止国外媒体恶意抹黑中国的言论对国民的思想造成影响——不怎么适用,因为国民不再容易被误导了,”国外的空气也不怎么香甜“。并且有能力进行翻墙的人大多数都是接受了高等教育的人,思想较为深刻,有稳固而正确的三观,放他们出去逛一逛问题也不是很大。

当然了,如果你不是一个普通的翻墙用户,而是以此牟利,那你肯定触犯了法律,必将接受法律的制裁。一方面,你使得国家将面对更多的不可确定因素,因为受传播者不一定遵纪守法,你需要为此负责!

引用

除了办法中的条例以外,对提供“翻墙”服务的卖家而言,《互联网信息服务管理办法》 规定的惩罚措施更重。

第 4 条规定:“国家对经营性互联网信息服务实行许可制度;对非经营性互联网信息服务实行备案制度。未取得许可或者未履行备案手续的,不得从事互联网信息服务。”

第 19 条规定:“违反本办法的规定,未取得经营许可证,擅自从事经营性互联网信息服务,或者超出许可的项目提供服务的,由省、自治区、直辖市电信管理机构责令限期改正,有违法所得的,没收违法所得,处违法所得 3 倍以上 5 倍以下的罚款;没有违法所得或者违法所得不足 5 万元的,处 10 万元以上 100 万元以下的罚款;情节严重的,责令关闭网站。”

总结:作为一名普通翻墙用户,只要老老实实地,不犯法。而如果你进行了违法乱纪的活动,或者是翻墙服务提供商或者教授、传播翻墙方法,那就犯法了!

“翻墙”原理解析

要知道翻墙的原理,我们就得先知道GFW是如何把这堵墙树立起来,如何阻断不正常通信的。

GFW的封锁

关键字过滤

由于 Http 协议数据包头部是明文的,所以 GFW 一旦发现连接有敏感词,马上就会伪装成连接两方,向真正的对方发送 RST 数据包(重置连接、复位连接),真正的双方一看,出现异常了,TCP连接就会中断掉。表现为有的页面正在打开,然后过了一会又没了,显示无法连接。

IP封锁

GFW 可以在出境的网关上加一条伪造的路由规则,这样对于一些被过滤了的 IP 的数据包就无法正确地被送达,所以也就无法访问了。GFW 封路由是直接封独立 IP ,这样可能因为某个敏感站点,导致跟他同一台主机的其他站点也无法访问,理解起来就像旁注(从旁注入)。而且 GFW 封 IP 有的时候是直接封 IP 段的,国外几大 VPS 服务商(比如 Bandwagon 搬瓦工)更是重点监测,有时就因为其中一个 IP 不对,GFW 能给你把这整个机房里的服务器的 IP 全封了,当然这样一来难免会有无辜之人中枪。

DNS污染、劫持

​ DNS 也就是域名解析服务,GFW 会对所有经过骨干出口路由的在 UDP 的 53 端口上的域名查询进行检测,一旦发现有黑名单里的域名,它就会伪装成目标域名的解析服务器给查询者返回虚假结果。由于 UDP 是一种无连接不可靠的协议,查询者只能接受最先返回的结果,故而你将看到明明地址栏中的 URL 是对的,但是浏览器渲染的却是不是目标网页或者干脆访问不了。

特定端口封锁

对于一些特点的 IP ,GFW 会丢弃特定端口上的数据包,使得某些功能无法使用,比如 443 端口 SSL,22 端口的 SSH。

GWF 曾经干过一件事,针对 Google 的一些 IP 上的 443 端口,实施间歇性封锁,不明所以的用户就会觉得这是 Google 抽风了,久而久之自然不能忍受 “老是出问题” 的产品。同样的还有 GitHub 的 443 端口、前段时间的 steam 的 443 端口也都被间歇性封锁了。

值得一提的是这个一般是人为干预的,理由就是常发生在白天。https://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/a1/2018new_doge02_org.png

加密连接干扰

加密连接不总是加密的,公钥还是明文的,所以 GFW 就能识别出特定服务的证书。然后在遇到 “黑名单” 加密连接时,它会发送RST数据包,干扰双方正常的 TCP 连接,进而切断加密连接的握手。

主动嗅探

现在我们假设你能伪装你的流量,当它和其他流量混杂在一起时从外观上看没有什么区别,你以为这就可以高枕无忧了?错!事实上,GFW 是被动监测+主动嗅探来实现封锁的,即使一个流量没有任何翻墙特征,但是这股流量太大了,或者时间太长了,GFW 也将主动地发一个连接请求过去,由于这根本就是个假流量,连接返回的内容也不正常,GFW 一看就知道不对劲了,然后再来个人工检测,你不就暴露了么。另一方面,每逢政治敏感时期(比如每年两会、国庆、建党节)或者每年 6 月的大扫除时期,这个时期人工检测大大增多, GFW 敏感系数提升,更容易发现不正常流量,并且从前稳妥起见,只是怀疑还怕误杀的流量,放在这个时期就大概率给你封了。

对抗GFW的技术

直接访问IP

GFW 不是对域名进行各种干扰吗,现在我直接绕过域名解析,对那些还进入监控名单的 IP 直接访问就能躲开 GFW 的干扰。但是很可惜 GFW 对付这种方法的策略也很简单粗暴但有效,那就是见一个封一个。比如早些年谷歌在国内还能正常访问靠的就是大量的镜像 IP,但随着这些年来 GFW 的不懈努力,谷歌服务的 IP 已经被杀绝了。这种办法的失效也就是个时间问题,因为人家封锁只需要找到 IP 然后加入黑名单就行,而被封锁的一方的要付出的努力就大得多了。

VPN隧道

首先我们明确,虚拟专用网络(VPN)是一门网络技术,而非一个软件,它为我们提供了一种通过公用网络(如最大的公用因特网)安全地对企业内部专用网络进行远程访问的连接方式。在 VPN 隧道中通信能确保通信通道的专用性,并且传输的数据是经过压缩、加密的,所以VPN通信同样具有专用网络的通信安全性。VPN 原本用意是为了让人不在公司也能访问公司内网,但其优越的安全性也让他也有了对抗 GFW 的功能,这里不展开讲解。但是值得注意的是,那些名叫某某加速器、某某 VPN 的翻墙工具往往都不咋地,而且还有跑路的风险,甚至有的还是“家庭小作坊”,而那些大的服务商提供的虽然稳定速度快,但是又是重点监测,譬如某海外服务商的 VPN 长期坚挺,一直加 IP 来对抗 GFW ,但代价就是价格高昂。就像这张图讲的道理:

https://s2.loli.net/2022/01/04/9GNlBTuQjoPinID.png

代理服务器

这里故意把 VPN 和代理分开,事实上 VPN 也是代理的一种,但其在网络七层协议中跑在数据链路层/第二层,而socks5、Trojan、v2ray之类的则是在OSI七层模型中的第五层/会话层的,( HTTP 在第七层/应用层, Ping 指令使用 ICMP 协议,工作于第三层/网络层)。而更低层可以代理更高层,更高层代理不了更底层。表现出来的则是你挂了梯子(非 VPN 类)发现依然没法加速 LOL 等游戏(游戏跑网络层),这也是你再挂了梯子之后依然可以用 Ping 来看主机与服务器直接的延迟的原因。但如果开了 VPN ,那他可以加速游戏,可以代理 ICMP 指令。

https://s2.loli.net/2022/01/12/DoTLUd6Zef7W5hY.png

说完了 VPN 与这里说的代理的区别,现在再来说常见的几种“翻墙”代理协议。

注意
世界上没有永远安全的协议,所谓道高一尺,魔高一丈,这是一场长期的军备竞赛,双方都在不断推陈出新!
Socks5 协议与 HTTP 协议

Socks5 把你的网络数据由代理服务器转发到目的地,这个过程中你是没有一条专用通道的,只是数据包的发出,然后被代理服务器收到,然后代理服务器再进行转发,整个过程并没有额外的处理。

但是在连接建立时、传输流量过程中有着极为明显的流量特征。因此网上也不乏唱衰 Socks5 协议的声音,甚至有流言称 Socks5 协议已被 GFW 攻破,能被其拿捏,但目前暂无明确证据,同时 Socks5协议依然是用的最多的代理协议,因此我对这种观点持保留观点。

对抗措施:流量加密、反检测、免杀

  • Socks5 + HTTP 代理并不会让本来明文传输的浏览加密,但是可以改变请求的 IP,服务器看到访问者的 IP 就是你的代理代理服务器的IP。
  • 如果流量本身没有加密,实战中流控设备很容易识别到客户端连接成功的流量规则。
  • 如果想要加密 Socks5 的流量,则需要安装魔改版 Socks 服务端和客户端,比如著名的 SS/SSR 就是用 Socks5 来实现的,Cobalt Strike 也有相关插件对流量进行加密。
v2ray协议
VMess协议

VMess 协议是由 V2Ray 原创并使用于 V2Ray 的加密传输协议,如同 Shadow socks 一样为了对抗墙的深度包检测而研发的。在 V2Ray 上客户端与服务器的通信主要是通过 VMess 协议通信。

VLESS协议

VLESS 是一种无状态的轻量级数据传输协议,被定义为下一代 V2ray 数据传输协议。作者对该协议的愿景是“可扩展性空前,适合随意组合、全场景广泛使用,符合很多人的设想、几乎所有人的需求,足以成为 v2ray 的下一代主要协议,乃至整个 XX 界的终极协议。”,由此可见 VLESS 协议的强大。

注意
VLESS 命名源自“less is more”,写法与 VMess 近似

VLESS和VMESS区别如下:

  1. VLESS协议不依赖于系统时间,不使用 alterId 。一些人的 V2ray 用不了,最后找出原因是电脑时间和服务器只相差两分钟,简直要让人抓狂;VLESS 协议去掉了时间要求,双手举赞;
  2. VLESS 协议不带加密,用于科学上网时要配合TLS等加密手段;
  3. VLESS 协议支持分流和回落,比 Nginx 分流转发更简洁、高效和安全;
  4. 使用TLS的情况下,VLESS 协议比 VMESS 速度更快,性能更好,因为 VLESS 不会对数据进行加解密;
  5. V2ray 官方对 VLESS 的期望更高,约束也更严格。例如要求客户端统一使用 VLESS 标识,而不是 Vless 、vless 等名称;VLESS 分享链接标准将由官方统一制定(尚未出炉);
  6. VLESS 协议的加密更灵活,不像 VMESS 一样高度耦合(仅对开发者有用)

对于普通用户来说,VLESS 协议的主要优势是:1. 不需要客户端和服务器时间一致; 2. VLESS 协议不自带加密,使用 TLS 的情况下性能比 VMESS 更好。

XTLS协议

XTLS官方库 的介绍仅有一句话:THE FUTURE。V2fly 官网(V2fly 社区是 V2ray 技术的主要推动力量) 称 XTLS为黑科技,VLESS协议作者的形容是:划时代的革命性概念和技术。

XTLS 的原理是:使用 TLS 代理时,https 数据其实经过了两层 TLS:外层是代理的 TLS,内层是 https 的 TLS。XTLS 无缝拼接了内外两条货真价实的 TLS,使得代理几乎无需再对 https 流量进行数据加解密,只起到流量中转的作用,极大的提高了性能。

VLESS + XTLS 的组合可以理解为是增强版 ECH,即多支持身份认证、代理转发、明文加密、UDP over TCP 等。但从其原理可知,VLESS + XTLS对http流量是没有多大优势的。好消息是,目前超过 90% 的流量都是 https 的,因此 VLESS + XTLS 能极大的提升性能,无愧于上面的评价。

注意
需要说明的是,XTLS 是科学上网的 future ,不是 TLS 发展的 future。
Trojan协议

Trojan 协议简单来说是通过 TLS 协议(安全传输层协议)伪装成访问 HTTPS(超文本传输协议)的正常流量。由于 TLS 是一个完整的加密协议通过目前的任何技术手段都无法得到其加密内容,所以 Trojan 的安全性可见一斑。但目前 Trojan 还属于是一个新兴的技术,在各方面都存在问题,但其有着最值得期待的未来,我们需要做的是给予其时间,让其成长。

在安全性方面,GFW 的主动嗅探主要是其接入目标服务器进行数据检测,而 Trojan 和其他协议不同,当 GFW 接入时不会主动断开介入服务,而是会将接入点连接到一个常规的 web 服务器。这个时候 GWF 就会以为这个服务器是一个常规服务器,从而做出错误的判断。当然,如果是人工来检测,进行了精密的流量分析的话 Trojan 也无能为力。

找 GFW 的 BUG

这个比较少,就是寻找 GFW 的漏洞,然后依次为突破点来翻墙,这里我也没怎么了解,不做展开。

注意
最后,如果你有任何想法,欢迎来评论区告诉我!