域名解析、备案与 HTTPS 前置条件

域名是用户唯一记得住的东西,解析是它通向服务器的唯一通道。国内做站还有一道额外关卡——ICP 备案:没备案,大陆节点的 80/443 端口在域名访问时会被拦下。本章把 DNS 记录、解析生效规律、备案流程和 HTTPS 的前置条件一次说清。

常见 DNS 记录类型

类型作用典型填写备注
A域名 → IPv4 地址@47.98.x.x最常用,指向服务器公网 IP
AAAA域名 → IPv6 地址@2408:xxxx::1服务器有 IPv6 才配,配错会导致部分用户超时
CNAME域名 → 另一个域名wwwexample.com常用于 CDN、对象存储、SaaS 域名;根域名一般不允
MX邮件投递目标@mx1.qiye.aliyun.com优先级数字越小越优先
TXT文本校验值@v=spf1 include:...用于域名所有权验证、SPF、DKIM
NS该域名由哪个 DNS 服务商解析@ns1.alidns.com换 DNS 服务商时修改

一次最小可用的解析配置

主机记录类型记录值TTL说明
@A服务器公网 IP600主域名 example.com
wwwA服务器公网 IP600习惯入口,建议直接解析而不是 CNAME
apiA服务器公网 IP600接口子域名,便于将来拆分
@TXT备案/校验用的字符串600按云厂商要求填写
staticCNAMEbucket.oss-cn-hangzhou.aliyuncs.com600静态资源走对象存储

解析生效与 TTL

  • 修改记录后不是立刻全网生效,旧记录会按原 TTL 继续被缓存,最长可能几小时。
  • 换 IP 前先把 TTL 降到 60 秒,等旧 TTL 全部过期(大约 10~60 分钟)再改记录值,用户就不会一半打新机一半打旧机。
  • 迁移完成、稳定之后,再把 TTL 调回 600 或 3600,减少 DNS 查询压力。
  • dig 走的是本机网络出口,返回结果可能与某些地区用户不同,要判断“是否已生效”,用公共 DNS 多问几次更准。

国内外解析的差异

场景解析方式说明
用户主要在国内阿里云 DNS / DNSPod国内节点多、延迟低,与备案流程打通
用户海外为主Cloudflare / Route 53全球 Anycast,CNAME 支持根域名(CNAME Flattening)
国内外都要快智能解析 / 分线路解析国内线路解析到国内 IP,海外线路解析到海外 IP
服务器在海外直接 A 记录即可不需要备案,但国内访问延迟普遍 150ms 以上
国内服务器 + 海外域名注册商需要把 NS 改到国内解析商备案要求域名注册商与解析服务均在国内可管

关键点:大陆节点的 80/443 对域名访问做了备案校验,未备案的域名解析到国内 IP,用 IP 直连能开、用域名访问会被重置。所以“服务器买了、域名解析了、页面打不开”的现象里,绝大多数就是没备案。

ICP 备案

备案不是给自己看的,是给监管看的:把“谁在用这个域名、内容是什么、主体是谁”登记在案。

问题答案
为什么必须备案大陆机房出口对 80/443 域名访问做校验,未备案域名会被拦截
谁能备案备案主体(个人或企业)必须是服务器所在账号的实名主体
大概耗时云厂商初审 13 个工作日,管局审核一般 720 个工作日
备案期间能用吗大陆节点上只能通过 IP 访问,域名会被拦;或临时用海外节点
换服务器要重备吗同接入商内换机器通常只需变更接入,跨厂商需要新增接入
备案号要展示吗要在网站底部展示备案号并链接到工信部备案系统

备案流程概要:

1. 域名实名认证(注册后通常需 3~5 天生效才能提交备案)
2. 在云厂商备案系统填写主体信息、域名、服务器实例(需有 3 个月以上时长的实例)
3. 上传证件、完成人脸核验,云厂商初审
4. 初审通过后提交至省通信管理局,等待审核(可查进度)
5. 通过后下发备案号,形如「X ICP 备 2024XXXXXX 号-1」
6. 网站底部展示备案号,公安联网备案按需另行办理

备案与 HTTPS 的关系

  • 备案解决的是“能不能用域名访问”,HTTPS 解决的是“传输是否加密”,两件事互不替代。
  • 证书签发机构不会校验备案,Let's Encrypt 等免费证书也能给未备案域名签发,但没有备案,域名在大陆节点上根本连不上,证书再好也没用
  • 顺序建议:买服务器 → 提交备案 → 备案期间用 IP 或海外节点调试 → 备案通过后配置解析与 443。

域名邮箱与 SPF、DKIM 简介

发验证邮件、通知邮件时,如果 DNS 里没有邮件相关记录,很容易被判为垃圾邮件。

记录作用示例值
MX指定收信服务器10 mx1.qiye.aliyun.com
SPF(TXT)声明哪些服务器有权代你发信v=spf1 include:spf.qiye.aliyun.com -all
DKIM(TXT)用公私钥签名邮件,防篡改default._domainkeyv=DKIM1; k=rsa; p=MIGf...
DMARC(TXT)告诉收件方验证失败怎么处理v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com

-all 表示“不在列表里的服务器一律拒绝”,比 ~all(标记但不拒收)更严格;正式对外发信前先确认所有发信出口都写进了 SPF,否则自己的邮件会被退。

验证方法

# 解析是否指向预期 IP
dig +short A example.com
dig +short A www.example.com

# 指定公共 DNS 查询,排除本地缓存干扰
dig @223.5.5.5 +short A example.com
dig @8.8.8.8  +short A example.com

# 邮件相关记录
dig +short MX example.com
dig +short TXT example.com

# 域名能否真正访问(香港/海外节点可用,大陆节点未备案会被拦)
curl -I http://example.com
curl -I https://example.com

dig 返回的 IP 与服务器公网 IP 一致,curl 返回 200 或 301,说明解析这一层已经通了。

常见坑

现象做法
根域名配 CNAME部分解析商不允许,权威应答异常根域名用 A 记录,或选支持 CNAME 拉平的解析商
备案主体与服务器主体不一致备案被驳回用服务器所属账号的实名主体提交
未备案就等域名生效一直以为解析没生效,反复改记录先用 IP 访问确认服务正常,再查备案状态
TTL 没提前调低切 IP 后一部分用户仍访问旧机切换前 24 小时就把 TTL 降到 60
只解析 @ 忘了 wwwwww 打不开两个都配,或做一个 301 跳转
IPv6 AAAA 记录写错部分用户白屏、超时没启用 IPv6 就不要配 AAAA
备案号不展示被巡查要求整改底部展示并链接工信部网站

小结:解析先把 A 记录指向服务器,多子域按用途分开;换 IP 前先降 TTL;国内节点务必先备案,备案只决定“能不能用域名访问”,不决定 HTTPS;邮件域名顺手把 MX、SPF、DKIM 配全,免验证邮件进垃圾箱。每改一次记录,都用 dig 从公共 DNS 复核一次。

笔记加载中…