Mist Network

域名解析到VPS服务器教程:A记录、www与SSL配置

几分钟就能把域名指向你的服务器:需要添加哪些DNS记录、示例值怎么填、如何验证解析是否生效,以及流量到达后VPS上该怎么配置。

更新于: 阅读约 5 分钟
使用A记录和AAAA记录将域名解析到VPS服务器的教程示意图

要把域名解析到VPS,只需为根域名(@)添加一条A记录,记录值填写服务器的IPv4地址;如果VPS有IPv6,再添加一条AAAA记录;然后用CNAME或第二条A记录让www指向同一台服务器。DNS生效后,在VPS上配置Web服务器响应该域名即可。

核心思路就是这些。本文接下来会具体说明要创建哪些记录、如何在终端里验证解析,以及服务器端需要做什么,才能让访客看到你的网站而不是错误页面。

开始之前需要准备什么

  • 一个已注册的域名,并且能进入它的DNS管理位置。在mistREG注册的域名,就是mistREG面板里的DNS管理页面。
  • 一台有公网IP的VPS。在mistREG购买KVM VPS,付款后约60秒内,IP地址和root密码就会显示在面板中。
  • SSH访问权限,以便在服务器上安装和配置Web服务器。
  • 十分钟时间。添加记录只要几秒钟,剩下的时间是在等待各地DNS缓存更新。

还没有服务器?你可以注册账户、充值,然后在套餐页面订购一台位于斯洛文尼亚(欧盟)、采用NVMe SSD和AMD EPYC硬件的KVM VPS。

A记录还是修改DNS服务器:绑定域名的两种方式

把域名绑定到VPS有两种方式,把它们混为一谈是最常见的困惑来源。

方式修改的内容适用场景
DNS解析记录(A / AAAA / CNAME)现有DNS区域中的记录绝大多数用户;邮件等其他记录仍集中在一处管理
自定义DNS服务器(NS)整个域名的NS委派自建DNS服务器或使用独立的DNS服务商

如果只是一台VPS上运行一个网站,用解析记录就够了。在mistREG,你的DNS区域已经托管在Cloudflare的权威DNS网络上,只要添加一条A记录就完成了。改用自定义DNS服务器会让域名脱离这个区域,所有记录都必须在新的DNS服务商那里重新创建。

要点:把域名解析到VPS并不需要修改DNS服务器。为@添加一条A记录、为www添加一条记录就足够了。

分步教程:把域名解析到VPS

  1. 复制服务器IP — 在面板中打开你的VPS,复制它的IPv4地址(如分配了IPv6,也一并复制)。
  2. 打开DNS区域 — 在mistREG面板中进入你的域名,打开DNS管理。
  3. 删除冲突的记录 — 删除@和www下指向停放页面或旧主机的A、AAAA或CNAME记录。MX和TXT记录不要动。
  4. 添加A记录 — 类型选A,主机记录填@,记录值填IPv4地址。测试期间TTL建议设为300秒这样的较短值。
  5. 添加www记录 — 可以添加一条从www指向根域名的CNAME,也可以为www再添加一条相同IP的A记录。
  6. 有IPv6时添加AAAA记录 — 仅在服务器确实监听IPv6时添加。一条错误的AAAA记录比没有更糟。
  7. 验证并配置服务器 — 用dig检查记录,然后按下文配置Web服务器和HTTPS。

DNS解析记录示例

下面是一台VPS上运行一个网站时典型的区域配置。示例中的IP地址是文档专用地址,请替换为你自己的。

类型主机记录记录值TTL
A@203.0.113.10300
AAAA@2001:db8::10300
CNAMEwwwexample.com300
CAA@0 issue letsencrypt.org3600

CAA记录是可选的,它告诉证书颁发机构哪些机构可以为你的域名签发证书。mistREG面板支持20种记录类型,以上全部包含在内;每种记录的作用可以参考我们的DNS记录类型详解。

TTL小贴士:搭建或迁移期间请保持较低的TTL(60到300秒)。一切正常后,再调高到一小时或更长,或者选择自动。mistREG允许设置60到86400秒之间的任意值。

如何检查域名是否已解析到VPS

不要依赖浏览器,它的缓存非常顽固。直接在终端里查询DNS:

dig +short example.com A
dig +short www.example.com
dig +short example.com AAAA
nslookup example.com 1.1.1.1

如果dig返回的是你的服务器IP,说明记录已经生效。如果返回旧IP,说明递归解析器还在使用缓存的结果,旧TTL到期后就会更新。这需要多长时间、为什么不同网络看到变化的时间不同,可以参考我们关于DNS生效时间的文章。

在mistREG创建的记录是仅DNS模式(DNS only),也就是说dig显示的是服务器的真实IP而不是代理地址。这让排查变得简单:你看到的地址就是流量真正去往的地方。

配置VPS响应该域名

DNS只负责把访客送到正确的机器上,服务器还需要知道该返回哪个网站。在一台全新的Linux VPS上,通常的步骤是:

  1. 安装Web服务器,例如Nginx、Apache或Caddy。
  2. 创建站点配置,把你的域名和www设置为服务器名称。在Nginx中是server_name这一行;在Apache中是ServerName和ServerAlias。
  3. 在防火墙中放行80和443端口。
  4. 在DNS解析到VPS之后申请SSL证书。Certbot等工具通过80端口进行验证,所以A记录必须已经指向该服务器。
  5. 把HTTP重定向到HTTPS,并选定一个规范主机名:带www或不带www。

在DNS完全更新之前,有个快速测试服务器的方法:通过IP访问网站并带上正确的Host头,例如curl -I -H Host:example.com http://203.0.113.10。如果返回了你网站的响应头,说明服务器端已就绪,剩下的只是DNS缓存问题。

如果是迁移现有网站,先把文件和数据库复制到新VPS,用上面的方法测试通过,然后再修改A记录。在切换之前访客仍然访问旧服务器,因此不会出现停机窗口。

如果你更喜欢用控制面板而不是命令行,mistREG的Plesk主机搭配LiteSpeed Web Server会替你处理虚拟主机和证书,同样约60秒即可开通。

不要破坏邮件和其他记录

把域名解析到VPS改变的是网站所在的位置,而不是邮件的投递位置。请注意以下几点:

  • MX记录继续指向你的邮件服务商,除非你在VPS上自建邮件服务器。
  • SPF、DKIM和DMARC都是TXT记录。清理旧A记录时不要误删它们。
  • 子域名(如api或app)如果也要访问VPS,每个都需要单独的A或CNAME记录。
  • 反向解析(PTR)在VPS需要发送邮件时很重要;它是针对IP配置的,而不是在域名的区域里设置。

问题排查:域名解析不生效

现象可能原因解决方法
dig显示旧IP记录被缓存,旧TTL较长等待旧TTL到期
根域名能访问,www不能缺少www记录为www添加CNAME或A记录
IP正确,但连接被拒绝Web服务器未运行或防火墙未放行启动服务,开放80/443端口
出现默认欢迎页没有该域名的站点配置添加server_name / ServerName
记录完全不起作用域名使用了自定义DNS服务器在当前生效的DNS服务商处修改记录

仍然无法解决?可以在Telegram上联系客服@mistnetwork,或在面板中提交工单,团队7×24小时在线。域名解析的工作原理可以参考维基百科的域名系统条目,账户相关问题的答案在常见问题中。

常见问题

怎么把域名解析到VPS的IP地址?
创建一条主机记录为@、记录值为VPS IPv4地址的A记录,再为www添加一条CNAME或A记录。如果服务器使用IPv6,再添加一条AAAA记录。
应该用A记录还是修改DNS服务器?
一台VPS上一个网站,用A记录即可。只有当你希望由另一家DNS服务商管理整个区域时才修改DNS服务器,因为届时所有记录都必须在那里重新创建。
域名解析到新VPS需要多长时间?
新记录通常几分钟内就能生效。如果旧记录以较长的TTL被缓存,部分网络可能会继续显示旧IP,直到该TTL到期。
www一定要用CNAME吗?
www必须有某种记录。指向根域名的CNAME最省事,因为它会自动跟随根域名的A记录;添加一条相同IP的A记录也可以。
域名解析到VPS后为什么显示的是别的网站?
说明DNS已经生效,但Web服务器没有你域名的站点配置,所以返回了默认站点。添加以你的域名为服务器名称的虚拟主机,然后重新加载Web服务器即可。

相关文章

Mist NetworkMist Network