简述科学上网原理第2期
嗨,大家好,本科学上网系列持续更新欢迎订阅哦。😜
导航页
简述科学上网原理
Copyright© By SouthAki
1. 防火长城原理
在没有防火长城的完美情况下,一个网络通讯的数据包是这样运作的
首先是从你的本地的计算机发送一个数据包请求,经过你的本地网络,接入骨干网,经由DNS解析(也就是Domain Name Service 域名解析服务),把你要输入的这串英文域名解析成IP地址
经过解析后达到国际网络出口,最后接入到对应的服务器,服务器对你的数据进行处理,然后返回一个数据包,再发送回你的计算机
如果在有了一个防火长城的前提下,你的网络通信流程是这样的
首先还是一样的是从你的本地的计算机发送一个数据包请求,经过你的本地网络,接入骨干网,经由DNS解析(也就是Domain Name Service 域名解析服务),把你要输入的这串英文域名解析成IP地址
好了问题来了,这就是GFW封锁互联网访问的其中一种手段
DNS污染
- 就是DNS污染,这是最常用的方法。包括了在2023-10-01日,大陆劫持对微软的Bing,VScode,以及Minecraft的IP,使其你访问会被指向反诈页面。
这里借用下别人的图片
因为你解析DNS的时候,数据包是HTTP,是一种明文协议,GFW可以探测到数据包流量里面内容的一部分,探测到你访问的是黑名单内的网站,就解析一个错误的服务器的IP,于是你访问不了正常的内容了
关键字阻断(SNI阻断)
当你传输的数据流里,被GFW探测到,包含一些敏感词的时候,就会被中断连接
端口阻断
GFW还会在某些特定的IP主机服务器的特定端口,进行阻断,来切断VPN或者是SSL的链接。比如443,22这些端口
IP黑名单
GFW通过几年来的不断收集,将所有大陆屏蔽的域名的IP全部记录,实行黑名单制度,一旦你想建立与对应的IP的网络链接,就进行相应的阻断
以上就是,GFW的工作原理,推测大概是上面的方法。随着时间的推进,大陆政府可能会推出新的检测阻断方法
2. 突破防火长城
GFW部署了之后,根据上面的工作原理,现阶段有几种方式进行突破
核心思想就是只要让GFW不探明我数据包真实意图,那么我可以连接一台符合大陆政府的境外VPS进行中转,来替代我去访问我需要访问的网站。这个过程全程加密,除了你自己和VPS提供商,理论上,没有人会从中间知道你访问哪些网站
很多初期的翻墙手段就是http代理、VPN、SSH这些,突破封锁的实现方式
以下拿SSH代理这个流程举例
本地网络计算机发送一个请求建立加密通道的数据包,接入骨干网域名解析,GFW发现你访问的数据包并不是去往黑名单的那些域名,于是GFW放行相应的数据包,数据包到境外之后,到达你的中转服务器解密出我真实想要访问的地址,代替我去上网。目标服务器传回数据的时候,也是先到达中转服务器,经过加密,回到大陆。这一系列的方式完美规避了GFW一切有效的探测手段。
首先我的数据包,不在是明文数据,而是加密数据,GFW探测不到里面的关键字,DNS解析又发现你的IP不在黑名单中,当然可以正常解析。
不过问题来了,一个致命的Error:就是GFW会发现,越来越多的流量都是这种模式,先发送数据包请求和一台服务器建立加密连接,然后数据包中紧跟一个代理请求。
这个是一个明显的特征,在一段时间内,由于VPN和Http代理流行,造成全网上的特征逐渐被GFW学习到,于是GFW做了以下的处理
- 将VPN的通讯端口封锁,政企用户需要申报审核
- 对在境外提供VPN服务或代理的VPS厂商的IP进行收集,批量封禁。(例如:搬瓦工)
于是,业界有大佬开发出了新的方法
一个横空出世的协议:Shadowsocks
解决了翻墙的根本问题,奠定了后续的协议的基础
Shadowsocks协议:将翻墙的流程拆分成本地和远程两个概念
实现通过GFW的流量全部加密
消除十分明显的Http代理流量的痕迹特征
同样是从本地计算机发出一个数据,给你本地的SS服务器发送数据加密请求,本地SS服务器加密后发往境外的VPS,途中经过GFW,但是由于加密数据不含有明显特征的数据包,所以GFW只好放行数据包,到达境外的SS服务器时,由境外的SS服务器解密代替你访问Google。返程亦然。
目前各种加密协议啊这类的翻墙手段,都是集中在GFW这里,进行一个强加密方式,来达到访问境外网站的目的。
至于国家为什么不封锁所有国际加密流量:因为相比你翻墙的流量,超过99%的通信流量都是正常的需求,如果把正常的加密流量给ban掉,那受影响最大一定不是你。
所以目前的SS等其他协议是相对安全的
下期将讲述的是多种翻墙的硬件等的特点