3.2 DNSPod 解析:A 记录、CNAME 与生效验证

域名买回来,为什么还不能访问

域名注册成功后,朋友直接在浏览器里敲域名,页面打不开。他以为是服务器坏了,其实域名只是一个名字,要靠 DNS 解析把它和服务器 IP 对上——就像公司注册了名字,还得在通讯录里登记座机号,别人才能找到你。

在腾讯云买的域名默认就能用 DNSPod 的解析服务;如果域名是在别处注册的,需要把域名的 NS 记录改成 DNSPod 分配的域名服务器,解析才能在 DNSPod 这边统一管理。这个接管动作只需做一次,但改完要耐心等一会儿,NS 变更全球生效需要时间。

NS 改完后先别急着加业务记录。去解析控制台确认域名已经在列表里、状态正常,再往下走。操作细节见轻量应用服务器文档里关于域名与备案的章节,新手跟着页面指引点就不会错。

这里插一句解释下 NS 到底是什么:每条解析记录都存在某台域名服务器上,NS 记录就是告诉全世界“这个域名的解析归谁管”。你把 NS 指向 DNSPod,所有人查询你的域名时都会跑到 DNSPod 的服务器上拿答案。所以 NS 接管是所有后续操作的地基,地基没铺好,后面加再多记录都是别人的嫁衣。

记录类型:先认全这四种

DNS 控制台里记录类型的下拉框有十几个,企业官网只用关心四种,剩下的高级人生后期再说。朋友看着下拉框问我是不是少点什么,我说不少:一个企业官网的 DNS 记录,撑死七八条,比通讯录还短。先认全下面这张表,加记录的时候就不会发懵,配完之后心里也就踏实了。

记录类型 指向什么 什么时候用
A 一个 IPv4 地址 域名直接指向轻量服务器公网 IP
CNAME 另一个域名 接 CDN、企业邮箱等第三方服务时用
MX 邮件服务器 域名要收发邮件时,优先级数字越小权限越大
TXT 一段文本 常用来做域名所有权验证、SPF 防伪造

最常见的动作就一句:给 www 加一条 A 记录,值填轻量服务器的公网 IP。这一步做完,域名到服务器的路就通了。另外建议同时给 @ 加一条 A 记录,让不加 www 的裸域名也能访问,两种输入习惯都照顾到——我朋友后来发现名片上印的是裸域名,客户手机里输的也大多是裸域名。这两条记录加完,域名的基本功就算齐了,接下来第四篇接 CDN 时再回来改。

加记录时主机记录那栏容易填错:www 是带 www 的子域名,@ 是裸域名本身,* 是泛解析(匹配所有未定义的子域名,一般不用)。朋友第一次把主机记录填成了完整域名,解析自然不生效,盯着屏幕找了半天原因。

补充一点关于 CNAME 的常见疑惑:什么时候该用 A、什么时候该用 CNAME?规则很简单——目标是一个 IP 就用 A,目标是另一个域名就用 CNAME。第四篇接 CDN 时,CDN 会给我们一个加速域名,那时候解析就要从 A 记录改成 CNAME 指向它,相当于把流量先交给 CDN 的节点。另外注意 CNAME 不能和同名的 A 记录共存,切换的时候要先删再建,顺序反了控制台会报冲突。

解析线路和 TTL

加记录时还有两个选项会让人愣一下:解析线路和 TTL。

设置 含义 我的习惯
默认线路 所有访问者的兜底线路 必填,先把它配好
分运营商线路 电信、联通、移动分别指到不同 IP 单台服务器时用不上
境外线路 海外用户的解析 等接 CDN 时再管
TTL 600 记录缓存时间,单位秒 调试期间填 600(10 分钟),稳定后填 3600

解析线路说白了就是“按来访者身份给不同答案”。我们只有一台服务器,分线路没有意义,默认线路一条就够了。等以后上了多台服务器、或者想给某个地区单独加速,再回头研究分线路和智能 DNS。

TTL 越短,改记录后生效越快,但会牺牲一点解析效率。我在上线调试那几天全用 600,正式稳定后再调回 3600——这个值真心建议调试期调小,否则改一次解析要干等一小时,能把人急死。

域名解析是典型的“平时不管它,出事就是大事”的配置。日常维护我只做三件事:第一,改服务器 IP 的时候(比如换实例、迁移)记得同步改 A 记录,并在改之前把 TTL 临时调小,改完确认生效再调回去;第二,不上陌生人发来的“解析异常”邮件的当,所有解析操作只在自己的控制台里做,从来不去邮件里的链接填账号;第三,控制台的解析记录表截图存档,哪天手滑删错记录还能照着恢复。

解析权限也要注意。朋友的域名注册账号是公司老板的,我让他把解析权限单独开给需要的人,别全公司共享主账号。DNS 记录被恶意篡改是真实存在的风险,一旦 A 记录被改到别人的 IP,你的域名就给别人做了嫁衣。

用命令验证到底生效没有

控制台显示已启用,不代表用户那边真的生效。验证域名解析的标准工具是 dig 和 nslookup:macOS 和 Linux 自带 dig,Windows 用 nslookup,装了完整 Git 环境的 Windows 一般也有 dig。

# 查 A 记录,返回服务器 IP 就说明解析生效
dig www.example.com A +short

# nslookup 的等价写法,Windows 直接用
nslookup www.example.com

# 查域名当前用的 NS 服务器,确认 DNSPod 已接管
dig example.com NS +short

# 追踪整个解析链路,排查到底卡在哪一跳
dig www.example.com +trace

线上排查我最常用第一条:眼睛看到返回的是自己服务器的 IP,心里才踏实。注意返回的 IP 要和控制台里填的一致,如果返回的是别的 IP,多半是解析还没生效,或者本地 DNS 缓存了旧记录。dig +short 只给 IP,想看详细解析过程和各跳耗时,把 +short 去掉,输出里会带 TTL 值,能看到这条记录还能缓存多久——这个数字对判断“还要等多久”特别有用。

给完全没接触过命令行的朋友补一句:这些命令不需要登录服务器也能跑。在你自己电脑的终端里敲就行,dig 查的是全球 DNS 的状态,你在哪台电脑上查结果都一样。我朋友第一次看到终端里跳出自己服务器 IP 的时候,兴奋得跟看到孩子出生似的——这套东西从此不再是黑盒了。

新解析不生效的排查清单

“解析加了为什么打不开”是建站最高频的问题之一,朋友那一周问我三遍。我给自己列了一张排查清单,按顺序往下查:

排查项 怎么查 常见原因
记录是否生效 dig 或 nslookup 查一下 TTL 没过,等一会儿
服务器防火墙 控制台看 80 和 443 是否放行 默认只开了 22
服务起来没有 服务器上 curl 本机 IP Web 服务没启动
备案状态 工信部查询页核对 未通过,线路被拦截
本地 DNS 缓存 换网络或用手机流量对比 公司网络缓存了旧记录

九成的不生效都是 TTL 没到或者本地缓存,先 dig 一下再说话。这里的思路是逐层缩小范围:DNS 层没问题,就查网络层(防火墙、端口),再查服务层(进程、端口监听),最后查合规层(备案)。每一层都有对应工具,别跳着查。如果怀疑自己电脑的 DNS 缓存,刷一下再试:

# Windows 刷 DNS 缓存
ipconfig /flushdns

# macOS 清缓存
sudo dscacheutil -flushcache

更多建站故障的排查思路,可以翻 服务器常见问题。

域名解析是典型的配一次管一年,但一旦出问题就是整站打不开。我习惯把最终的记录表截图存一份,迁移服务器改 A 记录时对着改,比在控制台里一条条翻快得多,这块在第五篇整站迁移还会用到。如果以后站点规模变大、需要多服务器负载,解析的玩法还有很多,可以继续看 腾讯云实战手记。动手配之前如果你还在纠结服务器是不是该升级了,也可以顺手复习 1.2 节的套餐思路,解析只是路,路再宽也救不了窄门。

延伸阅读