文章
时政

路由黑洞有什么存在的必要吗?

solids  ·  2020年10月7日 Ñøñë

目前观测到部分地区对 GitHub 的 IP 进行 RST,无论以什么 servername (或者 无 servername)试图建立 加密连接都会收到 reset。

那么,为什么不大规模部署这种检测方式(基于检测 IP 的 reset) 呢?却对 Google FB 的 IP 进行昂贵的路由黑洞?(CDN 的 IP 不在讨论范围内)

菜单
  1. Wizard   /dev/null

    RST 在 Transport layer 上屏蔽,路由黑洞在 Network layer 屏蔽。路由黑洞屏蔽效果更彻底(UDP 也会被屏蔽)

  2. solids   Ñøñë

    @Wizard #102159 确实。

    google.com 网页 是可以通过 QUIC 传送的。

    您还能举出几例这样的吗?路由黑洞可以屏蔽而 RST 无法做到的。

  3. Wizard   /dev/null

    @solids #102160 Google Voice, Skype 应该都会用 UDP

    而且 RST 仅在 GFW 判断 TCP 状态是 ESTABLISHED 才会发送,所以如果能 desync GFW 检测到的 TCP State,也可以绕过 RST。

  4. solids   Ñøñë
  5. Wizard   /dev/null

    @solids #102179 不是,仅客户端忽略 RST 没用的,GFW 的 RST 是双向的,服务端收到 RST 之后一样断连接,然后客户端会显示超时。

    *desync 是指 让 client -> server 实际的 TCP 状态和 GFW 判断的 TCP 状态不同。*比如 GFW 以为连接断了,就不会发 RST 了。但实际上连接并没有断。

    INTANG 就是 Your state is not mine 里提到的 desync 方法的实现。

  6. solids   Ñøñë
  7. solids   Ñøñë
  8. Wizard   /dev/null

    @solids #102184 如果是 Windows 端,可以试试 TCPioneer

    通过 desync GFW 的 TCP 状态的方式翻墙,效果可能并不理想。性能较差,且在不同地区的效果也不同。但是优点在于,如果能找到可用 ip,可以不经过代理使用 Google。(Google 服务器不接受无 SNI TLS 连接)

  9. solids   Ñøñë

    @Wizard #102189 正在用 phantomsocks(README 里的 其他平台 的链接) ,效果很好。

    看起来检测 SNI 屏蔽方式的 pixiv, steamcommunity,pornhub 也可以这样绕过。 (测试了 ttl 和 w-seq)

    扫描 Google IP gscan_quic 很好用...好久没用 phuslu 的 goproxy 了

  10. Wizard   /dev/null

    @solids #102201 其实所有基于 TCP RST 的屏蔽都可以这样绕过,例如 DNS over TCP(or DoT/DoH), VPN 等等,针对 HTTP 的敏感词审查也可以绕过。

    当然,这样虽然可以绕过 GFW 很大一部分的屏蔽,但是考虑到速度和安全性,代理 + Tor 还是最好的选择。

  11. solids   Ñøñë

    @Wizard #102189

    Google 服务器不接受无 SNI TLS 连接

    确实,但是不会像 Cloudflare 验证 Host 和 SNI 是否相同。

    google.cn 或者任何没屏蔽的作 SNI, Host 填 www.google.com.hk 就可以 Domain Fronting 了


    e.g.

    curl -v https://dl.google.com --connect-to ::142.250.98.90 -H "Host: www.google.com.hk"