网站做好了,国内到底能不能打开?
网站上线后,我在自己电脑上打开一切正常。但我的电脑开着代理,这个「正常」说明不了国内客户能不能打开。
怎么测
要模拟一个没有代理的国内访客,需要做到两件事:
- 域名解析用国内 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 这类默认域名;字体、脚本、图片、视频全部放在自己的站里,不引用任何海外资源。
局限
这只是在我所在的网络上,某一天的一次测试。不同地区、不同运营商的结果可能不一样,把链接发给外地客户之前,最好请对方打开确认一下。