www 能访问而裸域不能
发布时间:2026-04-02 18:19       
更新时间:2026-04-03 11:32
www 域名能正常访问,去掉 www 的裸域却打不开,问题多半不在服务器,而在 DNS 里少配了一条记录。
## 两个域名是两条独立记录
不少站长以为配了 www.example.com 就等于配好了整个域名,实际 DNS 里 www 和裸域(@)是两条完全独立的记录。建站工具或一键部署常常只帮忙添加 www 的 CNAME,裸域没人管,于是出现"半个域名能访问"的局面。先验证这个判断:
dig example.com +short
dig www.example.com +short
第一条没有输出、第二条有结果,结论就坐实了。本机没装 dig 的用 nslookup example.com 代替,含义相同,看输出里有没有 Address 行。验证一律用命令说话,浏览器缓存会骗人。
## 给裸域补哪条记录
裸域不能配 CNAME(DNS 协议限制:CNAME 不能与其他记录共存,而裸域天然带着 SOA、NS 这类记录),常规做法是加一条 A 记录直接指向服务器 IP:
example.com. 600 IN A 203.0.113.10
(203.0.113.10 是文档专用的示例 IP,替换成自己的。)部分 DNS 服务商对裸域提供 ALIAS/ANAME 这类变通记录,可以把裸域指向另一个域名;IP 会频繁变化的场景优先考虑,纯云服务器固定 IP 用 A 记录最简单。
控制台里同名记录常分线路(默认、境外)各一条,只加了境外线路,国内用户照样打不开,补完记得核对线路参数。
## 服务器与 CDN 侧的绑定
解析补好后还有第二关:Web 服务器的 server_name 要包含裸域,Nginx 写法 server_name example.com www.example.com;。走了 CDN 的站点,控制台的域名绑定列表里也要把裸域加上,否则请求会被拒绝。任何一环漏掉,表现依然是打不开。
本地验证绑定是否生效:curl -H "Host: example.com" http://服务器IP,能绕过 DNS 直接测服务器侧配置,返回目标站点即为生效。补完记录等 TTL 过期后用 dig 复核,两类域名都通才算完成。顺手在服务器上把裸域 301 跳转到 www(或反过来统一),对搜索引擎收录也更友好。新增记录的 TTL 建议先设 600 秒这类较小值,稳定运行一段时间后再按需调大。两端都补齐后,把"裸域与 www 各自的解析、绑定"写进建站检查清单,同类问题不再重演。