返回首页 King0fLight

文章

域名没错,是网络记错了

目录
  1. 现象
  2. 先排除掉的可能性
  3. 关键的一条命令
  4. 为什么只有部分设备中招
  5. 处理
  6. 一条判断口诀

建站记录 · 本文有 AI 参与整理,文中的操作与环境对应写作当时的版本。

#现象

手机访问 king0flight.com,看到的是 GitHub Pages 的 404:

There isn't a GitHub Pages site here.

同一台手机、同一个网络,访问 www.king0flight.com 却是新站。电脑上也正常。

第一反应是"域名解析还没生效"。但域名迁移已经过去一段时间了。

#先排除掉的可能性

按顺序查了一遍:

  • Cloudflare 的 DNS 记录:@ 和 www 都正确 CNAME 到 king0flight.pages.dev,开了代理
  • 自定义域状态:两个域名都是 active,证书已签发
  • 页面内容:直接用 IP 和 pages.dev 地址取,都是新站
  • 移动端 UA:服务端没有做任何 UA 判断
  • HTTP 到 HTTPS 跳转:正常

服务端看起来没有问题。那就说明,手机拿到的地址就不对。

#关键的一条命令

正常查解析是这样:

nslookup king0flight.com 223.5.5.5

返回的是 Cloudflare 的地址,正确。

但真正说明问题的是这一条——直接去问华为云的域名服务器:

nslookup king0flight.com ns1.huaweicloud-dns.com

返回的是:

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

这是 GitHub Pages 的四个 IP。

也就是说:域名已经托管到 Cloudflare,但华为云那边还有一个没删掉的旧解析区域,依然在对外回答,而且回答的是迁移之前的内容。谁问它,它就给旧地址。

#为什么只有部分设备中招

两层原因叠在一起:

  1. 旧区域还在(主因):华为云的云解析里那个 king0flight.com 没有删除
  2. NS 委派有缓存:改 NS 之后,各级解析器对委派关系的缓存最长 48 小时。这段时间里,一部分网络仍然会去问华为云

所以会出现"同一个域名,不同网络看到不同网站"这种看起来很不讲理的现象。

#处理

  • 在华为云删掉旧区域。删完再查 nslookup ... ns1.huaweicloud-dns.com,返回变成 Query refused,说明它不再乱答了
  • 本地或运营商 DNS 缓存:换 DNS(223.5.5.5 / 1.1.1.1)、换网络,或者等它过期
  • 清浏览器缓存、开无痕模式没有用——这是 DNS 层的问题,不是浏览器的问题

#一条判断口诀

用公共 DNS 查,返回 Cloudflare 的地址,就说明域名和服务端都没问题;这时候所有异常都出在"当前这条网络的缓存"上。

这句话后来省了我很多时间。以前遇到"网站打不开",我会从服务器一路查到代码;现在先分清是"服务端答错了"还是"有人替它答了"。

留言

评论区还没开。想聊两句的话,写封信给我,可以直接交流。