一、事情是从老周的微信语音开始的
凌晨一点十七分,老周给我发来一条 58 秒的语音,声音压得很低,像怕吵醒他老婆。他说他那个做花艺的工作室官网打不开了,客户在群里问了三遍,他拿手机浏览器试了两次,转圈,白屏。他把域名发给我,让我帮他看看是不是「二级域名查询」这一步就能查出来问题出在哪。我当时正躺在床上刷手机,回了他一句「你等等」,然后爬起来开电脑——这个「等等」后来持续了将近两个小时。
我先在浏览器地址栏输了那串域名,回车,页面确实白着。接着我打开珍藏多年的一个 DNS 查询站点,把完整主机名贴进去,选了 A 记录和 CNAME 记录两个查询类型,点了查询按钮。结果出来得很快:CNAME 指向一个没见过的别名地址,A 记录那边挂着一个 47.101.32.88 的 IP,看着像国内某家云厂商的段。我又查了 NS 记录,ns1 和 ns2 分属两家完全不同的服务商,一个是老周买域名时送的免费解析,另一个不知道是谁加的。那一刻我心里已经骂了半句脏话。
二、工具没问题,是人的操作在打架
说句不客气的话,二级域名查询这类工具本身早就成熟到没什么可挑的了,输入框、记录类型、返回结果,三件套。问题是绝大多数人——包括我那会儿的自己——把它当成「看一眼就完事」的东西,压根不去想记录之间的对应关系。老周这个域名,CNAME 和 A 记录同时存在,理论上冲突;NS 又分两家,等于两条解析链路各说各的。他上周刚从 A 服务商换到 B 服务商,以为「改一下就行」,旧记录没删。工具如实返回了所有记录,但没有任何一行会跳出来告诉你「兄弟,这两条在打架」。
我给老周打电话,让他登录域名控制台。他那边传来翻找密码的声音,中间夹着一句对他老婆说的「没事没事你睡」。我们一项项核对:把顶域那条多余的 CNAME 删掉,把旧服务商的 NS 从域名注册商那边撤掉,TTL 从 86400 改成 600,然后等。等的时候我顺手查了几个常见的子域名前缀,www、mail、blog、shop,返回结果一个比一个干净,唯独 www 那条在两家 NS 上返回不同——缓存的锅,实锤了。老周在电话那头叹了口气,说早知道就不贪那个首年九块九的便宜。
三、我为什么对「一键检测」这几个字血压升高
顺着这事我得吐槽一句:现在很多查域名的站点喜欢在首页摆一个巨大的「一键检测全域健康」按钮,点下去给一串绿勾红叉,用户看完只会记住颜色,不记住原因。我自己也用过这类服务,红叉后面跟着一行「解析异常,建议联系服务商」——废话,我要是能联系上服务商我还用来查?真正有用的信息是:哪条记录、哪个 NS、哪家服务商、什么时候改的。这些细节被折叠进「展开详情」,折叠率大概和弹窗广告的关闭率一个水平。
我知道这话说出来会得罪人,但我还是想说:把复杂度藏起来的工具,迟早会被复杂度反噬。老周后来问我,为什么不干脆做个「自动修正」呢,我说自动修正意味着它得替你判断你想指向哪里,一旦判断错,你连错在哪都看不见。二级域名这个东西,说到底是一张对照表,人要的是把这张表看清楚,不是要一个替你按按钮的手。我甚至觉得,一个合格的二级域名查询页面,应该老老实实把 CNAME、A、AAAA、MX、TXT、NS、TTL 全部平铺出来,允许用户勾选自己要看哪几类,而不是替他决定「你只需要看这三个」。
四、顺手记几个今晚踩到的小坑
第一个坑,查询时别只输域名不带协议前缀,有时候复制粘贴会带一个 http:// 开头,某些老工具会把它当成主机名的一部分,返回永远查无此记录,我第一次就栽在这,白白多试了三遍。第二个坑,TTL 长的时候更改不会立刻生效,别以为工具返回旧值就是工具坏了,我当年就因为这个给某家服务商写过一封措辞相当不客气的邮件,现在想想挺丢人。第三个坑,像 小米相册官方网站入口 这种业务型子域名,很多时候真正对外服务的是 CDN 回源后的地址,而你从本地查到的 A 记录可能只是调度节点之一,换个网络环境再查一次结果就不一样,别急着下结论。
另外老周还闹了个笑话。他把 www 那条记录删掉之后,隔了十分钟又来问:「为啥我手机还是打不开,电脑能开了?」我说你手机连的是家里 WiFi,DNS 缓存还在,切到流量再试。他一试,好了。他说原来手机也会记仇。我说手机不记仇,是运营商递归服务器记仇,缓存没到时间它就不松嘴。他沉默了几秒,说这玩意儿比丈母娘还难哄。我笑出声,差点把水杯碰翻在键盘上。
五、收尾之前再念叨两句
两点四十分,老周发来一张截图,花艺工作室的首页正常显示了,绿色的大标题,一束绣球花。他打了四个字:「兄弟,睡了。」我回了个「嗯」,然后把刚才整理的那些记录截图归档到一个叫「查域名」的文件夹里,顺手翻到里面几篇旧笔记——有讲 每日黑瓜吃料 那类信息聚合站怎么配子域名的,也有讲 红桃高清素材 这类图站怎么做多级缓存的,还有一篇是从 疯狂的姑妈法国电影 那种老站迁移里总结出来的踩坑清单。看着看着我又想起另一篇更离谱的,写的是 日本人装病骗儿媳妇 那种社会新闻网站,域名一天换三回,查起来跟打地鼠似的。行吧,建站的人各有各的难处。
如果你问我今晚最大的收获是什么,我会说:查二级域名这件事,工具给你的是原始数据,脑子给你的是判断,而对方的解释往往什么都不给你。老周明早大概会发个红包,我大概率不会收,我会跟他说,下次换服务商之前先喊我一声,我给你把记录列成清单,你照着删。这活儿不体面,但比凌晨一点半盯着 NXDOMAIN 体面得多。