一、互联网的几个关键概念
你可以把互联网想成一个超级复杂的多层路由网,关键角色有:
1. 终端:你手里的手机、电脑。
2. 局域网 / 路由器:家里的 Wi-Fi、公司内网,做内网地址分配(NAT)、简单防火墙。
3. 运营商网络(ISP):移动、电信、联通… 它们是大号的「公路运营商」,帮你把数据送进更大的互联网。
4. 自治系统(AS) & BGP:
* 每个运营商/大机构都有自己的「自治系统号」(AS);
* AS 之间用 **BGP 路由协议** 互相告诉对方「我这边能到哪些 IP 网段」。
5. 骨干网:很多 AS 串起来,就成了国家/地区级骨干网;再互联,就是全球互联网。
6. DNS:负责把 www.example.com 这种名字翻译成 IP 地址。
7. 应用层协议:HTTP(S)、SMTP、WebSocket、QUIC 等,在已经建立好的「管道」上跑具体业务。
二、「墙」大概处在什么位置?
学术界一般叫:Great Firewall / GFW,「防火长城」。它不是某一台机器,而是部署在中国骨干网边界上的一整套系统:
* 位置大致在「国内运营商骨干 → 国际出口」这条线上;
* 也有一部分流量在国内运营商网络内部就被处理。(net.in.tum.de)
可以先把它想成:
在「国内网络」和「国外网络」之间,有一圈超级强大的防火墙 + 监控系统,所有「进出国境」的流量都要从这几段“边境线”走。
三、「墙」到底在干什么?
核心目标其实就几个:过滤、阻断、监控部分内容。技术上主要手段大致是这些:
1. IP 封锁 / 路由封锁
* 对某些 IP 段,直接在边界路由器上「黑洞处理」:
* 要么路由表里直接不通;
* 要么收到了包也不回应,像掉进黑洞。
* 效果:访问这些 IP(比如部分国外网站)就像「服务器挂了」一样。
2. DNS 污染 / DNS 劫持
对于很多被封的网站,最典型现象是:
ping facebook.com得到一个奇怪 IP,或者根本解析不出来。
实际上是:
* 当你在国内发一个 DNS 查询:
1. 数据包经过骨干网络时,GFW 的设备会**监听 UDP 53 端口**(DNS 流量);
2. 如果发现查询的是「敏感域名」,它会**抢先伪造一个假的 DNS 响应**发回来;
3. 真实的 DNS 响应还在路上,但你已经收到了假的结果,系统就缓存了这个假 IP。
所以叫 DNS 污染 / DNS 注入,因为不是你的本地 DNS 服务器故意骗人,而是在路上被「插了一脚」。
3. URL / 关键字过滤(HTTP 与 SNI)
对 HTTP/HTTPS 流量,GFW 会做类似 DPI(深度包检测) 的事情:
1. 明文 HTTP:
* 直接看你的 URL、Header、内容中有没有敏感关键字;
* 发现以后可以:
* 直接断连接(TCP RST);
* 或返回假页面 / 错误页面;
* 或对你这个连接后续一段时间「抽风式丢包」。
2. HTTPS(加密了内容):
* 虽然看不到你具体访问的路径 `/xxx`,但是可以看到:
* 你要连哪个 IP;
* TLS 握手里的 **SNI(Server Name Indication)= 域名**;
* 所以会对 SNI 里的域名做过滤。
* 新协议里出现了 **加密 SNI / ECH / QUIC** 之类之后,GFW 这几年也在不断升级、尝试 Blocking。
4. 行为特征识别 / QoS 限速式封锁
GFW 还在做一件事:根据连接行为,对疑似绕过工具的流量降速或丢包。
大致逻辑可以类比为:
* 它复制一份你的流量到一个「分析系统」,用各种特征模型判断:
* 这个像不像 VPN / 代理 / 隧道协议?
* 像不像某种已知的绕过工具模式?
* 如果觉得「可疑」,就给这个目的 IP/端口打分,并对后续连接实施:
* 提高丢包率;
* 提高延迟;
* 导致你“超时”“断线”,用体验上的糟糕来实现「封锁」。
5. 主动探测(Active Probing)
还有一招叫 主动探测
* 当发现某个境外服务器疑似在跑「绕过工具」,
* GFW 会自己伪装成普通用户,去连这个服务器测试:
* 如果确认你在跑某种被列入黑名单的协议/服务,
* 就可能对这个 IP/端口做更持久的封锁。
四、为什么能够检测
因为所有进出境的流量几乎都要经过少数几个「出口关口」——这些关口上的路由器 / 交换机 / 光纤设备可以被接入监控系统。
国内访问国外网站的路径是:
你电脑 → 家用路由器 → 本地运营商 → 省级/区域骨干 → 国家级骨干 / 国际出口路由器 → 国外运营商 → 国外网站
关键点在这一步:
国内运营商骨干网 ↔ 国外运营商骨干网 这中间的对接点就叫「国际出口」,可以是:
* 陆地上的国际通信局机房 / 边界网关路由器
* 通往海底光缆的登陆站设备
* 与周边国家互联的边境光缆节点
因为 绝大多数出境流量都要走这几个点, 只要在这些点做「复制 + 分析」就能对进出境流量进行监控/过滤。
互联网本身就是一堆运营商 / 自治系统互联出来的,所以想让国内用户访问国外的任何东西,最终都得和别人的网络对接。
五、那么梯子?
完整串起来其实是这样:
1. 没有梯子时
* 你直接从国内网络发包到各种境外网站;
* 中间所有路径都是“官方运营商 ↔ 国外运营商”的对接;
* 中间的边界设备有足够信息做精细控制。
2. 有梯子时
* 你还是先通过国内运营商,上到国际出口;
* 只是**直接的目标变成了一台特定的“中转服务器”**(这台机器所在的网络已对接了国外运营商,并且为了到达这台中转服务器还需要绕很多圈);
* 真正到处访问各个网站的是那台中转机,不是你在国内这端直接发起来的连接;
* 出口设备能看到的是「你 ↔ 那台中转服务器」的加密流量,而不是你 ↔ 每个网站的明文细节。
五、那为什么会有好梯子?垃圾梯子?
距离和道路。
你在华南,连香港、日本这种本来就近的地方,电信/联通/移动本身就有比较直的线路过去,光速摆在那里,延迟自然就低;但如果你连的是欧洲、美国中部,有可能绕半个地球,途中还经过一堆拥挤的运营商和海缆,延迟和抖动都会上来。
再加上同样是“日本节点”“美国节点”,背后的运营商和出口质量可能完全不一样。有的机房掏钱买了比较好的国际带宽,上游是大运营商;有的就是最便宜那档“能用就行”的线路,高峰期所有人都在挤,你这边看视频就成 PPT 了。
还有一个问题:分配的带宽。
比如一台服务器后面只有 100M 的实际可用带宽,如果只给十几个人用,大家都挺爽;如果硬塞几百人,且每个人都在开视频、下大文件,体验肯定就雪崩。很多所谓“垃圾节点”,其实不是技术多烂,就是在线认太多了。
再加上有些线路、某些国家/协议在跨境的时候,可能被“特别关照”——容易被限速、排队靠后。于是你会看到一样写着“美国节点”,一个 200ms 稳到离谱,另一个一会儿 200ms、一会儿 2000ms,像心电图一样抖,那就是走的路完全不同。
六、绕线路
前面我提到了绕很多圈这种说法,其实就是:不直接走默认那条跨境路线,而是先拐个弯,找一条更好走、或者更不容易被折腾的路。
最典型的做法是多跳中转。 比如本来是:你 → 国内运营商 → 直接跨境 → 日本节点。 “绕一下”就变成:你 → 国内某个中转机 → 通过一条质量更好的跨境线路 → 日本出口机 → 目标网站。
看着是多了一跳,实际上把最关键的那一下“出国门”的路权,交给了一条更靠谱的高速公路,而不是随缘走默认国道。
但其实“绕路”不是为了更快,而是为了更稳定、更不显眼:原来的流量长得太像“某种特征”,容易被单独挑出来做限速或干扰,于是就想办法把它塞进某种看起来更普通的流量里去。这就已经涉及协议混淆、伪装之类的东西了,我就不往下细说了,