结论

客户说网站打不开,而你这边一切正常——这不是客户看错了,是你们看的不是同一个互联网。

同一分钟、同一个域名,在不同地区解析出不同 IP、命中不同 CDN 节点、被不同防火墙规则拦下,都是常态。你的电脑只代表你所在的那个位置,不代表全世界。

现象:那句「我这边是好的」

一个南美的客户发消息过来:网站打不开。

你点开链接,秒开,一切正常。刷新两次,还是正常。这时候绝大多数人的第一反应是回一句:

我这边是好的。

这句话看着只是在陈述事实,实际做了两件事:一是否定了客户(潜台词是"是不是你看错了"),二是把自己从排查里摘出去了(我这没问题,那问题就在你那儿)。

客户通常不会跟你争。他会回一句"好的,我再试试",然后这件事就沉下去了——要么他自己放弃了,要么他去找了另一家。

代价:损失的不是时间,是信任

这个坑最贵的地方在于,它不会当场爆。

客户不会说"你不专业",他只是在心里给你记一笔。外贸生意的复购和转介绍,很大程度上靠"这个人靠不靠谱"这一个判断,而"我这边是好的"是最快消耗这个判断的一句话。

还有一个更隐蔽的损失:你以为问题不存在,其实它真的存在,只是不在你这儿。

如果那次真的是 DNS 没生效,那么接下来几天,所有访问这个站点的海外客户都打不开。你因为"我这边正常"而没去查,问题就一直挂着,直到某天你发现询盘变少了——而询盘变少这件事,你永远不会归因到一个已经"确认没问题"的网站上。

根因:三种,全是地域依赖

真实原因通常落在三种里,共同点是都只在特定地区可见:

原因表现为什么你看不见
DNS 改了但未全球生效部分地区解析到旧 IP,直接打不开或打开旧站你本地解析器已经缓存了新记录
CDN 缓存了旧证书部分地区提示证书不安全、或直接拒绝连接国内节点已更新,海外节点还挂着旧的
防火墙 / WAF 按地区拦截境外 IP 直接连不上,或返回拦截页你的 IP 在白名单/允许区域里

这三条的共性是:你的测试环境永远在"对的地区",所以永远测不出来。

再往深一层看,还有一个共同的时间因素——DNS 有 TTL,CDN 有缓存过期时间,证书有生效时间。你改完那一刻,全世界不是同时更新的。“我改好了"和"全世界都好了"之间,隔着几个小时的传播窗口。

怎么自查(三步,按顺序别跳)

第一步:先要截图,不是要描述。

客户说"打不开”,这句话覆盖了至少四种完全不同的故障:证书警告、502/503、连接超时、被拦截页。四种对应四条完全不同的排查路径。

让客户截个图(或者手机拍屏),你能一次拿到三个信息:错误类型、错误码、以及他用的是什么网络。这一步能省掉一半来回。

第二步:多地解析,看结果一不一致。

用几个不同地区的公共 DNS 分别查询这个域名,看返回的 IP 是否相同。不一致,说明解析还在传播,或者被分区解析了——问题在 DNS 层,跟服务器无关。

第三步:查 CDN 与地区规则。

看证书在所有节点上是否一致、有没有节点还挂着旧证书;再看 WAF / 防火墙有没有按国家或地区做拦截。很多"境外打不开"最后查出来是安全策略里一条"仅允许中国大陆访问"。

三步做完,基本能定性:是传播、是缓存、还是策略。

可以直接抄走的三条

  1. 永远不要回「我这边是好的」。 换成"我这边能打开,说明可能跟地区有关,我查一下"。同样一句事实,前者否定客户,后者把两个人放在同一边。
  2. 把"异地视角"变成固定动作。 每次改 DNS、换证书、动 CDN 之后,不只在自己电脑上验证,还要从境外节点、多个解析器各看一次。这个动作应该写进上线清单,而不是等客户来报。
  3. 客户截图要存档。 同样是"打不开",四种错误对应四条路。攒几次之后你会有自己的故障图谱,下次客户一说,你就能猜个八九不离十。

边界

有时候确实是客户那边的问题:本地网络策略、公司防火墙、浏览器缓存、甚至他打错了域名。

但判断依据不是"我能不能打开",而是"多地结果是否一致"。多地都正常,才轮到怀疑客户本地;多地不一致,问题一定在你这边。

这个顺序不能反。反了,就会变成用你自己的一个点,去否定全世界的可能性。


这一类坑跟前面几篇不太一样:前面几篇错在数据,这一篇错在一句话。

下一篇讲一个更让人难堪的场景:部署脚本告诉你"部署完成",其实一行代码都没上去。