域名解析是建站的必备技能,很多新手搞不清楚A记录、CNAME、NS记录到底有什么区别。这篇文章用最通俗的语言帮你搞懂DNS解析的所有基础知识。
一、什么是域名解析
域名解析(DNS解析)就是把域名翻译成IP地址的过程。用户在浏览器输入域名,DNS服务器告诉浏览器这个域名对应哪台服务器的IP,浏览器才能连接到服务器获取网页内容。
简单比喻:域名是人名,IP是电话号码,DNS解析就是通讯录,你输入人名,通讯录告诉你对应的电话号码。
二、常见DNS记录类型
| 记录类型 | 作用 | 示例 |
|---|---|---|
| A记录 | 将域名指向IPv4地址 | example.com → 1.2.3.4 |
| AAAA记录 | 将域名指向IPv6地址 | example.com → 2001:db8::1 |
| CNAME | 将域名指向另一个域名 | www.example.com → example.com |
| MX记录 | 邮件交换记录,指向邮件服务器 | example.com → mx.qq.com |
| TXT记录 | 文本记录,用于验证、SPF等 | example.com → "v=spf1 ..." |
| NS记录 | 域名服务器记录,指定DNS服务器 | example.com → ns1.cloudflare.com |
| SRV记录 | 服务定位记录,指定服务端口 | 用于SIP、XMPP等 |
| URL转发 | 将域名跳转到另一个URL | example.com → https://www.example.com |
三、A记录与CNAME的区别
这是新手最常混淆的两个记录类型:
| A记录 | CNAME记录 | |
|---|---|---|
| 指向 | IP地址(如1.2.3.4) | 另一个域名(如example.com) |
| 用途 | 服务器IP固定时用 | 指向CDN、托管平台、另一个域名 |
| 根域名 | 可以用@做A记录 | 根域名(@)不能用CNAME(RFC规定) |
| 子域名 | 可以用A记录 | 可以用CNAME |
| 解析速度 | 直接返回IP,快 | 需要再解析目标域名,稍慢 |
根域名(example.com):用A记录指向服务器IP
www子域名(www.example.com):用CNAME指向example.com,这样改IP时只改A记录
使用CDN时:用CNAME指向CDN提供的域名(如xxx.cloudflare.net)
四、TTL是什么
TTL(Time To Live,生存时间)是DNS记录的缓存时间,单位是秒。它决定了DNS解析结果在各级DNS服务器中缓存多久。
| TTL值 | 缓存时间 | 适用场景 |
|---|---|---|
| 60 | 1分钟 | 频繁更换IP、测试时 |
| 300 | 5分钟 | 可能近期会改解析 |
| 600 | 10分钟 | 默认值,大多数情况 |
| 3600 | 1小时 | IP固定、稳定运行 |
| 86400 | 24小时 | 非常稳定、极少改动 |
修改解析前,先把TTL改小(如60秒),等旧缓存过期后再改解析记录,这样解析切换更快。稳定后再把TTL改大(如3600),减少DNS查询。
五、解析设置步骤
- 登录域名注册商或DNS服务商的控制台
- 找到域名解析/DNS管理页面
- 点击"添加记录"或"新增解析"
- 选择记录类型(A/CNAME/MX/TXT等)
- 填写主机记录(@表示根域名,www表示www子域名,*表示泛解析)
- 填写记录值(IP地址或目标域名)
- 设置TTL(默认600即可)
- 点击保存,等待解析生效
Windows打开CMD,输入:nslookup example.com 或 ping example.com
Mac/Linux打开终端,输入:dig example.com 或 nslookup example.com
如果返回的IP地址和你设置的一致,说明解析已生效。
六、常见问题FAQ
Q:解析设置后多久生效?
A:本地DNS缓存刷新通常需要几分钟到几小时,全球DNS完全生效最多需要48小时。一般情况下10-30分钟内生效。
Q:根域名可以用CNAME吗?
A:根据DNS规范,根域名(@)不能使用CNAME记录,因为CNAME会覆盖该域名的所有其他记录(包括MX、NS等)。根域名应该用A记录。部分DNS服务商(如Cloudflare)支持CNAME Flattening,可以在根域名用类CNAME功能。
Q:www和@都要设置吗?
A:建议都设置。@(根域名)用A记录指向IP,www用CNAME指向@或直接A记录。这样用户输入example.com和www.example.com都能访问。
Q:解析不生效怎么办?
A:①检查记录是否正确;②清除本地DNS缓存(Windows: ipconfig /flushdns);③换个网络测试(如手机流量);④等待更长时间(最多48小时);⑤联系DNS服务商客服。
Q:可以同时设置多个A记录吗?
A:可以,多个A记录可以实现简单的负载均衡,DNS会轮询返回不同的IP。但这不是真正的负载均衡,无法检测服务器健康状态。