RickIndependent developer

Available for work Local time

中
← All posts

网站做好了,国内到底能不能打开?

网站上线后,我在自己电脑上打开一切正常。但我的电脑开着代理,这个「正常」说明不了国内客户能不能打开。

怎么测

要模拟一个没有代理的国内访客,需要做到两件事:

  • 域名解析用国内 DNS。我用的是阿里的 223.5.5.5。被屏蔽的域名在这一步就会解析到错误的地址。
  • 网络请求绕开代理,直接走物理网卡。在 macOS 上给 socket 设置 IP_BOUND_IF,绑定到 en0。

然后对每个地址做一次完整的 HTTPS 请求,记录能不能打开、花了多久。

结果

托管方式国内直连
Cloudflare Pages(*.pages.dev)能打开,首次连接 0.3–0.8 秒
GitHub Pages(*.github.io)能打开,首次连接约 0.4 秒;1.7MB 的视频 2.7 秒下完
Cloudflare 上绑的自有域名能打开
Vercel(*.vercel.app)打不开,DNS 被污染,连接超时

我原本以为海外托管都不行,实际上被挡住的只有 Vercel 的默认域名。

域名能打开,不等于页面能完整加载

这是更容易忽略的一层。页面里如果引用了 Google 字体或者海外的 CDN,域名本身能打开,页面却会卡在加载字体上,或者样式整个丢掉。

所以我给国内客户做站,有两条硬规矩:不用 vercel.app 这类默认域名;字体、脚本、图片、视频全部放在自己的站里,不引用任何海外资源。

局限

这只是在我所在的网络上,某一天的一次测试。不同地区、不同运营商的结果可能不一样,把链接发给外地客户之前,最好请对方打开确认一下。