新手建站,卡得最多的往往不是写代码,而是“域名怎么才能打开我的网站”。输入一串域名,浏览器凭什么知道去哪台服务器找内容?中间靠的就是DNS解析。这篇把它从头到尾讲明白,照着配基本不会错。
一、DNS是干啥的
DNS(域名系统)像个电话簿。人记不住 192.0.2.1 这种IP,但记得住 example.com。DNS干的事,就是把易记的域名翻译成机器认的IP地址。你输入网址回车,背后发生的是:浏览器问DNS“example.com在哪”,DNS回一个IP,浏览器才去连那台服务器。
二、一次解析的完整流程
- 浏览器先查自己的缓存,命中就直接用。
- 没有就问操作系统的本地DNS(比如114.114.114.114或8.8.8.8)。
- 本地DNS从根服务器问到顶级域(.com)服务器,再问到 example.com 的权威服务器,拿到具体IP。
- 结果返回,同时按TTL缓存一段时间,下次不用再问。
这个过程正常几十毫秒就完了,用户基本无感。
三、最常用的几种记录
| 记录类型 | 指向 | 典型用途 |
|---|---|---|
| A记录 | 一个IPv4地址 | 把 www 或 @ 指向服务器IP |
| AAAA记录 | 一个IPv6地址 | 服务器支持IPv6时用 |
| CNAME | 另一个域名 | 把 cdn 指向CDN厂商给的域名 |
| MX记录 | 邮件服务器 | 企业邮箱收发 |
| TXT记录 | 一段文本 | 域名验证、SPF反垃圾邮件 |
个人建站,最常用的就是A记录和CNAME,其余按需再加。
四、A记录怎么配
场景:你有一台服务器,公网IP是 1.2.3.4,要让 example.com 和 www.example.com 都能打开。
- 主机记录填
@,类型选A,记录值填1.2.3.4,这是主域名。 - 主机记录填
www,类型选A,记录值同样填1.2.3.4。 - TTL一般默认10分钟或1小时就行。
保存后等生效,快的几分钟,慢的按TTL来,最长可能要一阵子。
五、CNAME什么时候用
当你的目标不是固定IP,而是另一个域名(通常是第三方服务动态管理的)时,用CNAME。最典型的就是套CDN:
- 主机记录填
cdn或www,类型选CNAME。 - 记录值填CDN厂商给你的那个域名,比如
example.cdnprovider.com。
这样你不用管对方IP怎么变,域名始终跟过去。注意:同一个主机名下,CNAME不能和A记录等其他类型共存,这是新手常踩的坑。
六、TTL设多少有讲究
TTL是这条记录在DNS服务器上能缓存多久,单位是秒。两个倾向:
- 长TTL(比如86400秒=24小时):查询快、省DNS请求,但改了记录要等很久才全网生效。
- 短TTL(比如300秒=5分钟):改IP能快速生效,但查询次数多。
平时稳定用长TTL;打算迁移服务器前,先提前把TTL调短,切完IP再调回去,能最大限度减少中断。
七、改完不生效怎么办
- 先清本地缓存:Windows用
ipconfig /flushdns,Mac用sudo dscacheutil -flushcache。 - 确认你改的是“真正负责解析的那家”后台,很多人域名在A家、解析在B家,改错了地方。
- 用 whatsmydns.net 这种全球查询工具看各地生效情况,别只信本地ping。
- 确认NS记录指向一致:改了DNS服务商,得在域名注册商那改NS,不然新平台的解析不生效。
常见问题
@ 和 www 都要解析吗?
建议都配。用户可能直接输 example.com,也可能输 www.example.com,两个都指到服务器,谁访问都打得开,体验才完整。
泛解析(*)能随便开吗?
不建议。泛解析会把所有没定义的子域名都指向一个地方,开发测试方便,但生产环境容易被拿去做钓鱼子域名。按需创建最稳妥。
域名用了CDN,A记录还要指向源站吗?
CDN模式下,你的A记录指向的是CDN的节点IP(或Cname到CDN域名),源站真实IP要藏好别暴露,否则CDN的防护意义就打了折扣。像极跃IP(jiyueip.com)这类站点,前面套一层CDN做解析和加速,源站IP不对外,安全水位高很多。
配置DNS是建站的正当基础操作,用来把域名指向自己的服务器、做加速都合规。提醒一句:别用DNS做域名劫持、钓鱼解析这类事,那既是违规也违法,技术本身没问题,用歪了才有麻烦。






