只有当 DNS 记录告诉全世界你的服务器在哪里,域名才真正有用。本指南将带你把域名连接到 VPS Linux Infrawire,添加 IPv4、IPv6 和 www 记录,并检查一切是否解析正确。
📋 前提条件
- 一台拥有公网 IPv4 地址(可选 IPv6)的 VPS。在客户区中可以找到 VPS 的 IP 和 root 密码。
- 一个已注册的域名(
example.com),并能访问其 DNS 解析区域(在域名注册商或 DNS 服务商处)。 - 在本地电脑或 VPS 上安装
dig和nslookup:
Bash# Ubuntu 24.04 / Debian 12 sudo apt update && sudo apt install -y dnsutils # AlmaLinux 9 / Rocky 9 sudo dnf install -y bind-utils
🧭 了解记录类型
| 类型 | 用途 | 示例值 |
|---|---|---|
| A | 名称指向 IPv4 地址 | VPS_IP |
| AAAA | 名称指向 IPv6 地址 | VPS_IPV6 |
| CNAME | 指向另一个名称的别名 | example.com. |
CNAME 不能设置在裸域名(example.com,即根域)上,因为它会与区域内的其他记录冲突。根域请使用 A/AAAA,子域名(如 www)使用 CNAME。
✍️ 创建 A 和 AAAA 记录
在域名注册商的 DNS 解析编辑器中添加以下记录。主机字段 @ 代表裸域名。
TEXT类型 主机 值 TTL A @ VPS_IP 3600 AAAA @ VPS_IPV6 3600
有些界面要求填写完整名称(example.com.)而不是 @。只有编辑器要求完全限定域名时才保留末尾的点。如果你暂时不用 IPv6,就不要添加 AAAA 记录:错误的 AAAA 比没有更糟,因为许多客户端会优先尝试 IPv6。
🔗 用 CNAME 添加 www
让 www 跟随主域名,这样只需在一处修改 IP:
TEXT类型 主机 值 TTL CNAME www example.com. 3600
其他子域名同理。若某个子域名需要指向另一台服务器,请使用 A 记录(例如让 api 指向另一个 IP)。
⏱️ TTL 与生效时间
TTL(生存时间,单位为秒)告诉解析器可以将结果缓存多久。新记录通常几分钟内就能看到,但修改已有记录要等旧 TTL 过期后才会生效。
- 迁移前一天,先把 TTL 降到
300,再更改 IP。 - 变更稳定后,再调回
3600或更高。 - 全球生效从来不是瞬时的:通常需要几分钟到几小时。
✅ 使用 dig 和 nslookup 验证
先查询你自己的解析器,再查询公共解析器进行对比:
Bashdig +short example.com A dig +short example.com AAAA dig +short www.example.com CNAME # 查询指定的公共解析器 dig @1.1.1.1 +short example.com A dig @8.8.8.8 +short example.com A # 直接查询权威服务器(无缓存) dig +short NS example.com dig @NAMESERVER +short example.com A
使用 nslookup 做同样的检查:
Bashnslookup example.com nslookup -type=AAAA example.com nslookup www.example.com 1.1.1.1
返回结果必须等于 VPS_IP。然后测试到服务器的链路:
Bashping -c 3 example.com curl -I http://example.com
🔁 反向 DNS(PTR)
正向 DNS 把名称转换为 IP,反向 DNS(PTR 记录)则相反:把 VPS_IP 映射回主机名。它不在你的域名区域中管理,而是由 IP 段的持有者管理,因此请联系服务商为你设置。邮件服务器非常依赖它,所以请设置为你发信所用的名称,例如 mail.example.com,并确保该名称有对应的 A 记录。
Bashdig -x VPS_IP +short host VPS_IP
☁️ 特殊情况:Cloudflare 代理
当记录启用代理(橙色云朵)时,公共 DNS 返回的是 Cloudflare 的地址,而不是 VPS_IP。这是正常现象:dig 永远不会显示你的服务器 IP。
- Web 流量(80/443)经过 Cloudflare;SSH、邮件、游戏服务器等其他服务则不会。
- 对于非 HTTP(S) 的服务,请创建仅 DNS(灰色云朵)的记录,例如让
ssh.example.com指向VPS_IP。 - 邮件相关记录(
mail、MX 目标)必须始终为仅 DNS。 - 将 SSL 模式保持为 Full (strict),并在 VPS 上安装有效证书,否则会出现重定向循环或 525 错误。
🛠️ 故障排查
仍然显示旧 IP。 之前的 TTL 尚未过期。使用 dig @NAMESERVER 查询权威服务器,确认区域配置正确,然后耐心等待。必要时清除本地缓存:
Bashsudo resolvectl flush-caches
NXDOMAIN 或无应答。 记录加在了错误的区域,主机名拼写有误,或域名使用的 NS 服务器与你编辑的不同。请将 dig NS example.com 的结果与注册商处设置的 NS 服务器进行对比。
域名能解析但网站打不开。 DNS 没问题,问题出在服务上。检查是否有 Web 服务器监听该端口,以及防火墙是否放行:
Bashsudo ss -tlnp | grep -E ':80|:443'
🎉 你的域名现在已指向 VPS:接下来可以安装 Web 服务器并申请证书。