一文搞懂域名、子域名与 DNS 解析
买了一个域名后,还需要为
blog、api单独买域名吗?主站服务器挂了,子域名还能访问吗?这篇文章以lookstar.asia为例,把域名、子域名和 DNS 的基本关系讲清楚。
一、主域名和子域名是什么
假设我购买了域名:
lookstar.asia日常会把它叫作主域名。这里严格来说,.asia 是顶级域名,lookstar.asia 是注册域名(也常叫根域名)。
在这个域名下面,我还可以使用:
www.lookstar.asia
blog.lookstar.asia
api.lookstar.asia
test.lookstar.asia这些都是 lookstar.asia 的子域名,可以分别用于主页、博客、接口服务和测试环境。
子域名不需要单独购买。 只要拥有 lookstar.asia 的 DNS 管理权限,就可以按照需要创建子域名。子域名本身通常不收费,但服务器、CDN、DNS 增值服务或付费证书可能产生费用。
子域名还能继续嵌套吗?
可以,例如:
lookstar.asia
blog.lookstar.asia
dev.blog.lookstar.asia如果使用 DNSPod 管理 lookstar.asia,要创建 dev.blog.lookstar.asia,通常填写:
主机记录:dev.blog实际工作中,直接说“子域名”更不容易混淆;二级域名、三级域名的叫法有时会因统计层级不同而引起误解。
二、DNS 是做什么的?
DNS(Domain Name System,域名系统)可以简单理解成:把域名转换成 IP 地址的查询系统。
例如:
blog.lookstar.asia → 123.123.123.123人容易记住域名,而浏览器需要借助 DNS 查询出目标服务器的 IP 地址,才能尝试建立连接。
注意:DNS 只负责解析,不负责把 HTTP 请求转发给后端服务。 DNS 返回地址后,请求由浏览器直接发往目标 IP(这里说的是没有额外代理等特殊情况的普通访问)。
三、如何创建子域名
以腾讯云 DNSPod 为例,要让 blog.lookstar.asia 指向自己的服务器,可以添加一条 A 记录:
常见主机记录:
添加后,DNS 记录生效时,访问 blog.lookstar.asia 就能解析到配置的 IP。解析成功不代表网站一定能打开,还要看服务器、端口、Web 服务等是否正常。
四、DNS 解析记录:A 记录与 CNAME 记录
DNS 解析记录用于指定域名如何找到对应的服务。其中,A 记录和 CNAME 记录是日常部署网站时最常用的两种类型。
1. A 记录
A 记录(Address Record,地址记录)用于将域名指向一个 IPv4 地址。
IPv4 是服务器在网络中使用的一种 IP 地址格式,例如 123.123.123.123。假设博客部署在这台服务器上,就可以配置:
blog.lookstar.asia → 123.123.123.123在 DNSPod 中填写:
作用: 让访问 blog.lookstar.asia 的客户端通过 DNS 找到服务器的 IPv4 地址。适合个人博客、Spring Boot 接口等直接部署在云服务器上的场景。
2. CNAME 记录
CNAME 记录(Canonical Name Record,规范名称记录)用于将一个域名指向另一个域名。 它不是直接填写 IP,而是指定目标域名,由 DNS 再继续查询该目标的 IP 地址。
假设 server.example.com 已经解析到 123.123.123.123,可以配置:
blog.lookstar.asia
↓ CNAME
server.example.com
↓ A
123.123.123.123在 DNSPod 中填写:
作用: 让自己的子域名使用另一个域名对应的服务地址。常用于 CDN、对象存储网站托管,以及要求绑定指定域名的第三方平台。
例如,第三方服务商调整了 server.example.com 对应的 IP,只要 CNAME 目标域名不变,通常就不需要修改 blog.lookstar.asia 的记录。
需要注意:CNAME 是 DNS 层面的别名,不是网页重定向。 浏览器地址栏仍然显示 blog.lookstar.asia,不会因为 CNAME 自动跳转到 server.example.com。目标服务器还必须正确配置接收该域名的 HTTP 请求,并为 HTTPS 配置匹配的证书。
3. 使用场景对比
如果博客直接部署在自己的腾讯云服务器上,使用 A 记录就足够了;如果接入 CDN,服务商一般会提供一个 CNAME 地址,按其要求配置即可。
注意:同一个 DNS 名称配置 CNAME 后,不能再同时配置 A 等普通记录。IPv6 地址对应的则是 AAAA 记录,不是 A 记录。
五、浏览器访问子域名时发生了什么
假设:
lookstar.asia → 服务器 A
blog.lookstar.asia → 服务器 B当用户输入 blog.lookstar.asia 时,简化流程为:
浏览器访问 blog.lookstar.asia
↓
查询 DNS(可能命中本地缓存)
↓
得到服务器 B 的公网 IP
↓
浏览器连接服务器 B
↓
服务器 B 的 Web 服务处理请求并返回响应这里有个重要结论:浏览器不会因为 blog.lookstar.asia 属于 lookstar.asia,就先访问主域名对应的服务器 A。
子域名和主域名可以指向完全不同的服务器。
六、主站服务器挂了,子域名还能用吗?
继续使用前面的例子:
lookstar.asia → 服务器 A
blog.lookstar.asia → 服务器 B如果服务器 A 宕机,服务器 B 仍然正常运行,那么:
lookstar.asia → 可能无法访问
blog.lookstar.asia → 仍可正常访问前提是子域名访问不依赖服务器 A,并且 DNS、服务器 B、网络与对应 Web 服务正常。
但如果实际架构是:
blog.lookstar.asia → 服务器 A(Nginx 转发)→ 服务器 B服务器 A 就是请求链路的一环,它宕机时,博客也可能无法访问。
所以,是否互不影响,关键看 DNS 指向哪里、实际流量经过哪里,而不在于域名名字之间有没有父子关系。
七、两个常用排查命令
1. nslookup:检查 DNS 解析
nslookup blog.lookstar.asia作用: 查询域名解析出的 IP 地址,判断 DNS 是否能正常解析,以及解析结果是否为预期的服务器 IP。
2. curl.exe -I:检查 HTTP 响应
curl.exe -I http://blog.lookstar.asia作用: 向网站发送 HTTP HEAD 请求,查看返回的 HTTP 状态码和响应头,初步判断网站的 HTTP 服务是否能够响应。也可以将 http 改为 https 检查 HTTPS。
nslookup正常只能说明 DNS 查询成功,不能证明网站正常;curl.exe -I也可能因网站不支持 HEAD 请求而返回错误。在 Windows PowerShell 中明确使用curl.exe,可避免curl别名引起混淆。
八、总结
买了
lookstar.asia,通常无需再购买blog.lookstar.asia、api.lookstar.asia等子域名。A 记录指向 IPv4;CNAME 指向另一个域名,不是网页重定向。
DNS 负责查询地址,不负责处理网站请求。
主域名和子域名可以部署在不同服务器,不必先经过主站。
主站服务器故障是否影响子域名,取决于实际流量是否依赖它。
DNS 解析正常 ≠ 网站一定能访问。
