长城封锁的方法
- dns劫持, 早期手段, 修改hosts就可以绕过.
- ip封锁(黑名单, 主动封锁), 目前主流手段. 解决方法是架设第三方翻墙服务器中转流量. vpn, ss, ssr, v2ray都是如此.
- 启发性流量封锁(白名单制, 被动封锁) , 2021年的新手段, 通过建立几个白名单规则放行, 其余的全部被阻止. 绕过的手段是伪装符合白名单的流量.
- 以上三种并不单一部署, 往往是综合上述三种. 白名单的新手段部署了越26%的流量.
攻防简史
翻墙就是混淆真实的流量, 欺骗长城的审查机制. 攻防双方都在不停的进步, 这里用猫表示审查者, 鼠表示翻墙者, 一个猫鼠游戏.
- dns劫持的方式由于太好绕过, 猫很快就进行了ip封锁, 这让猫鼠游戏变得越来越依赖技术.
- 开始猫的防御机制是阻止一些通讯通道, 而放行另一部分, 这不完全算ip封锁. 老鼠很快找到了这些可以放行的通道, 以此来实施翻墙.
- 很快, 猫在所有的通道上部署了审查机制. 老鼠开始混淆自己的数据, 让自己的流量看上去像随机数据, 让审查规则失效.
- 然而真实的流量并不是完全随机的, 所以猫利用了这个特性, 通过对随机数据的头部包分析判断可疑流量, 并主动访问发包服务器试探, 如果服务器总是返回无规则的随机数据包, 猫就判断这大概率是翻墙服务器, 进而封锁它. 老鼠因此改变了自己的数据混淆模式, 伪装了稳定一致的反馈.
- 直到最近, 猫索性使用更加激进的方式, 利用一些粗暴简单的规则, 将确定是正常流量的数据放行, 而其他的全部封锁. 老鼠也很快找到了这些规则, 并再次将自己伪装成符合规则的流量.
总的来说, 加密数据是翻墙的基础, 伪装是翻墙能以实施的关键. 前者技术相对成熟, 而后者依赖于一些研究人员的成果, 如果没有他们去摸索长城规则, 则没有办法进行翻墙. 而选择好的翻墙工具, 其实本质就是选择那些能很快应对猫规则的工具.
厘清概念
接下来会有不少概念, 但其实万变不离其宗, 目前所有的翻墙方式都是需要一个第三方服务器中转流量, 这个服务器可以是任何形式可以访问的网络的计算机(包括虚拟计算机vps). 翻墙要求一方面这个服务器本身可以无障碍查看长城外风景, 另一方面, 它要部署一个可以绕过审查的通讯协议和老鼠通讯.
vpn: 一个加密通讯的技术. 但它不具备混淆功能. 在猫还不能识别随机数据的时候, 曾经是翻墙的主力, 但现在猫已经对绝大多数的vpn协议进行了识别, 其本身已经无法用于翻墙. 然而, 现在很多新的翻墙工具也自称是vpn, 主要还是利用了vpn的名气. 但他们本质并不是vpn工具, 而是打包了有混淆功能的通讯协议的翻墙服务器而已. 这个需要做好区别.
proxy: 是一种广泛使用的通讯技术, 有非加密和加密的方式. 非加密方式不能用于翻墙. 但其加密方式中的https方式却是非常好的翻墙工具. 因为它和平时浏览网站的流量一样, 猫的审查机制非常难以识别, 所以这样的proxy也更加稳定. 但https的缺点是配置复杂, 且只能转发tcp流量, 对udp无能为力.
Trojan, 是专门将流量伪装成普通https的工具.
shadowsocks (shadowsocksr), 是专为翻墙而生的代理服务器. 以匿名性著称. 优势是配置简单, 且社区活跃.
v2ray, 可以理解它是一系列网络协议和工具的打包, 算是一个网络调试工具. 但由于其包含了多个混淆和伪装的协议, 所以也被用于翻墙. 好处是定制性强, 劣势是配置复杂, 需要高一些的技术背景.
蓝灯(lantern), 曾经火过一段, 可能是一个带有混淆技术的代理. 但如今对新的审查机制缺乏部署, 不推荐使用了.
Jigsow Outline. 是有google背景的团队开发的 自部署的翻墙工具. 对新技术的部署很快. 目前在俄罗斯区很多人使用.
总结, 形而上的说, 所有的翻墙本质都是一个代理(proxy), 而所有的关键都是如何让这个代理和老鼠之间的通讯可以通畅稳定. 通过对概念的梳理, 最好的翻墙工具就是伪装https, 或者是部署了对抗白名单模式(猫的最新招数) 的任何其他的工具.