GFW 的封锁方法
- 国内 DNS 服务器的缓存污染
- 发往国外的 DNS 解析请求的拦截或篡改
- IP 黑名单
- 端口封锁,针对 OpenVPN,SSH,shadowsocks 等,有用到 DPI,多次换端口后封 IP
- 关键字封锁,利用深度包检测(DPI),是主要方法。可用全站 https 应对,不过 GFW 因为无法识别 https,所以会针对所有 https 连接进行随机的中断
关于 GFW 的更多技术细节可以参见本文的参考链接
GFW 的设备
大量硬件设备来自 Cisco
- 入侵检测设备,在北京、上海、广州搭在总交换中心上做旁路监听
- 动态路由设备,放在 ISP 处
翻墙方式
- hosts,只能翻部分被 DNS 投毒的网站,而且随着 Google IP 被封禁得越来越多,已经很难翻了
- 第三方 DNS,作用同 hosts,有风险,可能被再劫持
- HTTP 代理,主要风险是明文传输(试过在海外 VPS 直接搭 HTTP 代理,用来上百度没问题,一打开 Google 马上被封)
- HTTPS 代理,比起 HTTP 代理,有了一层 SSL 加密,安全许多,但 SSL 其实并不适合用于翻墙,它并不是专用于混淆的协议,shadowsocks 作者 clowwindy 有一篇文章详细阐述了这个观点
- Tor,P2P 方式,安全性高。但 GFW 会钓鱼,伪造成 Tor 客户端进入 Tor 网络(obfsproxy 可以应对)。本身网络传输速度不快,不好用
- Latern 基本同上,就个人使用体验来说,速度太慢
- GoAgent,基于 GAE,不过 Google IP 被封得差不多了,所以基本不可用
- GoProxy,GoAgent 的继任者,用于自己部署在 VPS 上
- SSH,虽然传输安全,但握手阶段特征太明显,会被监控流量和连接数,所以基本只能用一小会儿,一般需要数小时重连一次。2012 年 GFW 加入 DPI 功能之后被封锁得更为严重了,一旦有 HTTP 流量传输就会被墙
- VPN,工作在数据链路层,流量特征非常明显,出于商业上的考虑(大量在华跨国公司需要用到)所以才还能存活。但是自建的话,L2TP/PP2P/OpenVPN 基本没办法存活多久,只有 Cisco AnyConnect (服务端用开源的 ocserv)还可以用,但是速度有 2M/s 的上限
- Shadowsocks,这个名气够大了,不详述
- ShadowVPN, GoHop, SoftEther VPN,都是具有较为强大加密/混淆功能的 VPN 实现,其中 ShadowVPN 因为作者 clowwindy 被请喝茶而删除项目代码,GoHop 功能强大但暂时只支持 Linux,SoftEther VPN 使用不是很方便(而且已经能被 GFW 探测到,见参考链接 13),所以目前都不是很流行
- V2Ray,新工具,暂不了解
- IPv6,据说 GFW 暂时还未能有效封禁 IPv6 地址,所以在教育网里还能通过 IPv6 访问 Google/Facebook 等。不过这个应该只是暂时的
自己搭建无缝无痛的翻墙服务
- 翻墙路由器,刷 OpenWrt
用于自己在家上网。 - 翻墙(HTTP)代理
在命令行终端里只能通过配置http_proxy
/https_proxy
变量来翻墙,所以需要一个翻墙代理。而且下述 PAC 文件、运营商描述文件都需要有一个代理作为基础。- HTTP 代理只能用国内服务器中转,直接部署在国外肯定被墙
- 建议在海外服务器部署 shadowsocks 服务端,国内服务器部署 shadowsocks 客户端
- shdaowsocks 代理转 http 代理可用 privoxy / polipo / cow / meow
- privoxy / polipo 生成的代理是纯 HTTP 代理,cow / meow 则会自动学习已翻墙/未翻墙网站并更新列表、生成 PAC 等。但是 cow 因为默认认为网站未被墙,所以很多网站会尝试多次连接才能使用代理,速度有一定影响;而 meow 是白名单模式,可能会影响部分国内网站的加载速度
- 提供远程 PAC 文件
Windows / Mac / Linux,以及 iOS / Android 5+ 在 WiFi 网络下都可以配置 PAC 代理,Android 4.x 可以用 SmartProxy 这款 App- 如果没什么特殊需求,最简单的是利用 gfwlist 生成,然后开个静态文件的 http 服务以便客户端访问
- 不过更优的方法是使用 cow 生成的 PAC
- 制作运营商描述文件
用于在 2G/3G/4G 下翻墙。不过不是太建议这个方法,根据个人经验,不论设置文件怎么写,总有些时候会出现莫名其妙的问题,到时候就只能删掉描述文件,在需要翻墙时再加回来,很是麻烦
而且对于使用了 HttpDNS 服务的各大 App 都无法兼容,包括但不仅限于微信朋友圈小视频、阿里旅行、滴滴出行地图、虾米、淘宝电影选座、网易云音乐等 - AnyConnect
未越狱 iOS 设备,除已下架的 Surge 以外,使用 AnyConnect 是最方便的 - Surge
iOS 翻墙首选,支持 shadowsocks 代理,支持类 PAC 的配置,支持路由表,支持根据 IP 地址分流。虽然配置麻烦,但是配置好之后可以说是一劳永逸。
但是既然已经下架就不多介绍了。 - 国际网络线路优化
- 如果有国内服务器,可以直接用前述 shadowsocks 转 http 代理的方法,也可以直接设置 haproxy 转发 shadowsocks 代理
- 如果不想买国内服务器的话,可以使用 微林的 vxTrans 服务 将代理进行端口转发,流量转发至电信 CN2 精品网,解决直连海外 VPS 太慢的问题。
但是这里有个坑:由于CN2线路是特殊线路,大部分国外ISP运营商由于没有与CN2直接互联,因此为了避免额外的网间结算费用会限制流量而断开链接(特别是国外VPS服务提供商,这种情况很普遍)。所以建议使用 AliCloud BGP 线路转发
- TCP 加速(防丢包)(不建议使用)
- net-speeder,开源,简单粗暴地通过两倍发包来防止丢包,对丢包严重的网络有一定改善作用,不过有一些缺点:
- 双倍发包会造成流量翻倍
- net-speeder 会造成 pptpd 等不支持双倍发包的网络软件无法正常使用
- 对小文件加速效果不明显
- 这种 TCP 优化机制一直存在争议,因为它实际实际上加剧了网络的拥堵,浪费掉了大量没必要的带宽
- 锐速,比较老牌的 TCP 加速服务,闭源,比 net-speeder 智能,但不支持所有 VPS,闭源还要求 root 权限也让人有点不放心。而且,仍然会增加流量消耗,仍然被认为是不道德的,参见 shadowsocks 作者 clowwindy 在 V2EX 上的评论
- net-speeder,开源,简单粗暴地通过两倍发包来防止丢包,对丢包严重的网络有一定改善作用,不过有一些缺点:
收费翻墙服务(不建议使用免费服务)
- HTTP 代理以及 AnyConnect
- 轻云
使用两年,换过两次域名,另外还挂过两次,不过恢复时间较快。如果发现网站上不去了可以发任意内容邮件到 theqingyun@gmail.com 获取最新地址 - 土行孙
使用半年,挂过两次。文档极为完善,对于不怎么翻墙、不熟悉翻墙工具的小白用户十分友好 - 熊猫翻滚
价格略贵,有微博客服,一般没什么问题,但小坑不断,典型的互联网服务。最近因不可抗力挂过一周
- 轻云
- VPN
- EurekaVPT
没用过,口碑不错,价格略贵,需要邀请
参考链接
- 阅后即焚:“GFW”
- GFW 技术研究和云梯产品故事
- 深入理解 GFW:总论
- 深入理解 GFW:路由扩散技术
- GFW 钓鱼计划
- 深入理解 GFW:内部结构
- 深入理解 GFW:结论
- GFW 研究与诊断工具
- GFW 的工作原理及突破技术
- GFW 的原理和绕过
- GFW 的详细分析及翻墙路由器(fqrouter)的原理和实现
- How governments have tried to block Tor
- Learning more about the GFW’s active probing system
- 道高一尺,牆高一丈:互聯網封鎖是如何升級的
- Empirical Analysis of Internet Filtering in China
- Golden Shield Project - Wikipedia, the free encyclopedia
- “墙”的文献综述
没有评论:
发表评论