VPN技术 · 2023年11月10日 0

GFW的解释

GFW的解析

GFW(防火长城)设备安装在互联网骨干网的特定路由器上。它对不同类型的敏感信息有着多种反应。例如,简单的 DNS 查询 twitter.com 时,GFW 会返回错误的域名解析结果。反应的方式多种多样,涉及的协议包括 DNS、HTTP、SMTP 等。有时,GFW 甚至选择不作反应,例如封锁 IP 地址或端口,这种情况下会导致数据包丢失。

另一个显著特点是 GFW 的半流模式(half-stream)。这意味着 GFW 只关注单向的数据包。用户可以无需服务器的配合,自行发送数据。然而,尽管发送者可能不在意,GFW 却始终保持警觉。这表明,只要内容符合要求并且被 GFW 捕捉到,用户就可以向任何 IP 地址发送数据包,从而触发 GFW 的反应。

类似的工具早已有人开发,例如 mongol。

  • 不仅仅针对 HTTP 关键字,还包括所有可能触发 GFW 反应的内容。
  • 支持单向发送,无需服务器的配合,速度快,能够覆盖更广泛的目标,意味着能够发现更多的 GFW 设备。
  • 提供基于策略的目标选择功能(例如从国外向国内发包时,可以选择不同运营商的 IP,如联通、电信、移动等)。
  • 能够检测路由的特性(如 IP 包路径是否随源地址或端口变化)。

这些特性结合在一起,意味着无论是在国内还是国外,只需一台公网上的机器,经过一晚的运行,就可以找到全国范围内的 GFW 路由器。而且这台机器还可以识别哪些 IP 地址进行了 DNS 劫持、HTTP 关键字检测,以及哪些 IP 地址出现了 TCP 丢包等情况。获得 IP 地址、自治系统(AS)/运营商归属、是否应用了所有规则等基础信息后,或许能从整体上总结出一些部署模式。这是该工具目前能够实现的功能。

此外,此工具也可以用于探测 GFW 审查的内容。例如,可以利用 qiang 中高效的 HTTP 关键字检测探测器来识别被审查的关键字。长期定期执行还可以监测封锁与解封的时间。

使用该工具需要 Python、Scapy 以及一台公网上的机器。

项目地址:https://github.com/fqrouter/qiang

其中有两个脚本可以独立使用: