中文

通过 DNS 记录将域名指向你的 Linux VPS

1 min
VPS/VDS 主机

只有当 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 验证

先查询你自己的解析器,再查询公共解析器进行对比:

Bash
dig +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 做同样的检查:

Bash
nslookup example.com nslookup -type=AAAA example.com nslookup www.example.com 1.1.1.1

返回结果必须等于 VPS_IP。然后测试到服务器的链路:

Bash
ping -c 3 example.com curl -I http://example.com

🔁 反向 DNS(PTR)

正向 DNS 把名称转换为 IP,反向 DNS(PTR 记录)则相反:把 VPS_IP 映射回主机名。它不在你的域名区域中管理,而是由 IP 段的持有者管理,因此请联系服务商为你设置。邮件服务器非常依赖它,所以请设置为你发信所用的名称,例如 mail.example.com,并确保该名称有对应的 A 记录。

Bash
dig -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 查询权威服务器,确认区域配置正确,然后耐心等待。必要时清除本地缓存:

Bash
sudo resolvectl flush-caches

NXDOMAIN 或无应答。 记录加在了错误的区域,主机名拼写有误,或域名使用的 NS 服务器与你编辑的不同。请将 dig NS example.com 的结果与注册商处设置的 NS 服务器进行对比。

域名能解析但网站打不开。 DNS 没问题,问题出在服务上。检查是否有 Web 服务器监听该端口,以及防火墙是否放行:

Bash
sudo ss -tlnp | grep -E ':80|:443'

🎉 你的域名现在已指向 VPS:接下来可以安装 Web 服务器并申请证书。

及时了解最新的优惠、折扣和特别促销活动。

查看促销

我们使用Cookie

我们使用分析性Cookie来改善您在我们网站上的体验。数据不会出售给第三方。了解更多请查看我们的 隐私政策.