小白建站实操:从服务器到网站收录 · 5/10

域名解析实操:A、AAAA、CNAME、TTL 一次讲清

把根域名和 www 正确指向第一台服务器,理解 A、AAAA、CNAME 与 TTL,用命令验证公网结果并排除冲突记录。

0 阅读

先确定两个要使用的名字

本文用 example.com 表示根域名,用 www.example.com 表示 www 子域名,实际操作要替换成你的域名。203.0.113.10 仍然只是文档示例 IPv4,绝不能原样填进真实 DNS。

第一个网站可以先用两条记录:根域名通过 A 记录指向服务器公网 IPv4;www 通过 CNAME 指向根域名。以后在 Web 服务器里选一个作为正式地址,再把另一个 301 跳转过去,避免两套网址分散访问和搜索信号。

四个概念分别做什么

A:把一个主机名指向 IPv4 地址。
AAAA:把一个主机名指向 IPv6 地址。
CNAME:让一个主机名成为另一个主机名的别名。
TTL:告诉递归 DNS 服务器,这条结果可以缓存多久再重新查询。

不要因为表单里有 AAAA 就随便填。只有服务器真的有公网 IPv6、防火墙已经放行、网站也在 IPv6 上监听时才添加。错误的 AAAA 可能让一部分用户优先走 IPv6,结果网站一直打不开。

按表格添加记录

进入实际提供 DNS 的控制台,新增下面两条。不同平台可能把根主机写成 @,也可能要求留空。

text
类型   主机记录   记录值          TTL
A      @          203.0.113.10    300 或自动
CNAME  www        example.com     300 或自动

把 IP 和域名替换成真实值。配置阶段可以使用 300 秒,方便调整,但这不代表全世界一定在五分钟内完成更新,服务商和本地缓存仍可能让结果出现得更慢。网站稳定后可以改成自动或更长 TTL。

保存前检查同一个主机名下是否还有指向旧服务器的 A、AAAA 或 CNAME。不要看见不认识的 MX、TXT 就删除,它们可能属于邮箱或站点验证。最稳妥的做法是先导出 DNS 区域,或者至少完整截图。

不要只相信控制台,要从公网查询

控制台显示“保存成功”,只能证明表单进了系统,不能证明公网正在返回新值。在自己的电脑执行查询,最好再用手机流量或另一条网络复查一次。

bash
dig +short A example.com
dig +short CNAME www.example.com
dig +short AAAA example.com
nslookup example.com

A 查询应返回你的真实公网 IPv4;www 应显示别名,或者最终解析到相同地址;如果明确不用 IPv6,AAAA 查询没有输出才符合预期。Windows 没装 dig 时,先用 nslookup,也可以通过 WSL 或可信 DNS 查询工具交叉验证。

最常见的三个故障

一直返回旧 IP:先用 dig NS example.com 看权威 Nameserver。你可能在注册商面板改记录,但域名实际使用另一家 DNS。只有某一条网络仍是旧值:大概率是缓存尚未过期。新旧两个 A 同时出现:删除过期记录,不要期待浏览器每次都随机选对。

还要记住,DNS 只负责“名字指向哪里”。A 记录正确,不等于 Caddy 已启动、80/443 已放行或 HTTPS 已签发。后面排错时要把每一层分开验证。

不同控制台的字段名称可能不同,操作时以当前 DNS 提供商说明为准;理解记录行为可参考 Cloudflare DNS 记录类型文档

我的踩坑体会

我第一次改 DNS 时,在一个看起来完全正确的面板里折腾了很久,却没有任何公网变化。最后才发现域名早已使用外部 Nameserver,我改的是没有生效权的区域。现在我先查 dig NS,保存旧记录,一次只改一项,再用命令验证,不再对着浏览器不停刷新。

完成标准

根域名和 www 都通过预期的 Nameserver 指向你的服务器,并且没有误配的 AAAA,这一篇就完成了。先不要往生产目录乱放文件,下一篇在本地写好 第一个 HTML 与 CSS 网站