这是一篇真实的运维故障处理记录,场景熟悉到几乎每个后端开发、运维工程师、甚至客服都经历过。
事情的起因很简单:客户报障,说网站打不开了。但查了一圈,服务器没崩,代码没改,CDN没挂,最后却是一行命令解决了问题。
如果你也遇到过“明明什么都正常,就是有人打不开”的怪事,那这篇文章或许能给你一点排查思路。
一、故障现场:只有 QQ 浏览器不行
客户的消息来得很急:
「你好,我们网站在 QQ 浏览器打不开,赶紧处理!」
客服照例先做分流:
「您好,请问其他浏览器能打开吗?」
客户很快回复:
「Chrome 能打开,就 QQ 浏览器不行!」
这句话一出来,懂行的人心里大概就有数了——大概率不是服务器挂了。因为如果源站真的宕机,不会只针对一个浏览器。
但客户显然不这么想,他的潜台词是:“别的都能打开,就你们合作的这个打不开,肯定是你们网站兼容性问题。”
二、常规排查:一切正常,反而最不正常
客服这边用测试环境复现了一下,发现网站访问流畅,页面秒开。
于是客服尝试把问题推向用户侧:
「我这边测试网站访问正常哦,可能您电脑网络或 DNS 有问题。」
客户立刻反驳:
「不可能!我打开其他网页都好好的!」
这个反驳其实非常有力。从用户视角看:其他网站能打开 = 我的网络没问题 = 问题一定在你们那边。
逻辑听起来没毛病,但网络世界里,事情往往没那么简单。
客服无奈,把问题升级给了后端程序员。
三、程序员介入:查了个寂寞
程序员接手后,按标准流程走了一遍:
检查服务器状态:负载正常,带宽正常,进程存活。
检查应用日志:没有异常报错,访问记录正常。
检查 CDN:节点响应正常,命中率稳定。
检查域名解析:用公共 DNS 解析了一下,IP 正确。
所有指标都绿得发亮,结论只有一个:服务端没有任何问题。
程序员想了一下,让客服转达:
「您 ping 一下我们的域名,把结果截图发我。」
客户操作后很快回复:
「ping 不通啊!你们网站就是有问题!」
这句话在运维眼里其实很有信息量,但在用户眼里,ping 不通 = 服务器死了,这是个非常自然的等价关系。
问题在于——ping 不通,不代表服务不可用。
很多生产环境的服务器或 CDN 节点,出于安全考虑,会直接在防火墙层面禁用 ICMP 协议,也就是禁 ping。这是完全合规的常规操作。
但普通用户不会知道这层逻辑。
四、真相大白:DNS 才是幕后黑手
程序员没有继续纠结 ping 的结果,而是换了一个思路:
“Chrome 能开,QQ 浏览器开不了,而且 ping 域名不通……会不会是 DNS 解析被污染了?”
于是他让客服最后试一步:
「您把电脑 DNS 改成 114.114.114.114 试试。」
几分钟后,客户回复:
「好了!!!能打开了!!」
紧接着跟了一句:
「原来是 DNS 问题,网站根本没坏啊。」
至此,故障闭环。
五、为什么会出现这种情况?
这个案例之所以典型,是因为它同时踩中了几个容易忽略的技术细节:
1. QQ 浏览器的“加速”机制
QQ 浏览器默认开启云端加速,用户的请求会先经过腾讯的代理服务器,再由代理去抓取源站内容。
如果代理服务器所在机房的本地 DNS 解析出了旧 IP(比如 CDN 节点已下线),就会导致请求被丢到黑洞里,而用户自己的电脑 DNS 其实是正常的。
Chrome 不走这个代理,所以能打开。
2. 本地 DNS 缓存污染
用户的电脑或路由器,可能缓存了一个错误的域名解析记录。这个错误记录在 Ping 的时候被直接调用了,所以 ping 不通。
3. 改 DNS 为什么有效
114.114.114.114 是国内通用的公共 DNS,它绕过了运营商(如电信、联通)自带 DNS 的缓存滞后或劫持问题,去根服务器重新获取了最新的解析结果。
一旦拿到正确的 IP,QQ 浏览器的代理请求也就跟着通了。
六、一个小建议
以后再遇到类似“部分浏览器打不开、部分正常”的报障,不用急着翻服务器日志,可以先让用户做两个动作,成本极低,但命中率极高:
清空 QQ 浏览器的 DNS 缓存
地址栏输入:qqbrowser://netclean/
点击“立即清除”。
刷新本地 DNS 缓存
按Win + R,输入cmd,执行:ipconfig /flushdns
如果上面两步都不行,再教用户把 DNS 改成本地运营商 DNS 或公共 DNS(如 114.114.114.114 或 223.5.5.5)。
很多时候,用户以为的“网站挂了”,其实是“指路牌(DNS)坏了”。
服务器没崩,代码没改,CDN 没挂,一切如常——只是那条通往你服务器的路,被带偏了而已。
七、写在最后
互联网运维这行,做得越久,就越明白一个道理:
大部分故障都不是“崩”出来的,而是“错位”出来的。
服务正常,但用户访问路径上的某一环出了问题;
代码没动,但下游依赖或基础设施发生了微妙变化;
工具显示一切正常,但就是有用户反馈异常。
这种时候,保持耐心,换个视角去排查,往往比急着“重启大法”更有效。
毕竟,用户眼里的“崩了”,和程序员眼里的“崩了”,从来都不是同一件事。
如果你也有类似的“DNS 玄学”经历,欢迎在评论区分享你的故事。
特殊说明,本文版权归 ning个人博客 所有带原创标签请勿转载,转载请注明出处.
本文标题: 一个QQ浏览器打不开的“灵异事件”,揭开DNS背后那点破事