DNS 托管¶
在这篇文章中
在域名注册商侧配置 DNS¶
DNS 1 设置可以通过您的域名注册商完成。要完成此任务,请导航到您的域名设置,选择您注册商的 NS 服务器,并为您的域名输入以下用于 IPv4 的 A 记录 或用于 IPv6 的 AAAA 记录。
| 记录 | 子域名 | IP 地址/数据 |
|---|---|---|
| A | @ | 服务器 IP |
| A | www | 服务器 IP |
或者
| 记录 | 子域名 | IP 地址/数据 |
|---|---|---|
| A | @ | 服务器 IP |
| CNAME | www | 服务器 IP |

警告
域名的所有其他记录更改必须在注册商的域名设置中进行。
在控制面板中使用 HOSTKEY 名称服务器配置 DNS¶
确保注册商侧的域名设置中包含指向 HOSTKEY DNS 服务器的链接。如果没有链接,请添加它。
要指定您域名的 DNS 服务器列表,请进入域名注册商个人主页中的 DNS 服务器设置,并设置以下值:ns1.hostkey.com 和 ns2.hostkey.com。

警告
对 DNS 区域进行的任何更改,包括对名称服务器或 DNS 记录的修改,可能需要长达 24 小时才能生效。
备注
如果在注册商或 HOSTKEY 侧未设置 NS 服务器,将导致您的域名未被委派。
要导航至 Invapi 中的 DNS 管理,请使用带有用户名的子菜单并选择 DNS zones management:

添加 DNS 区域¶
DNS 分为多个 DNS 区域 2,这些区域明确定义了 DNS 命名空间内的管理区域。
DNS 区域是通过 DNS zones management 部分中的 Add DNS zone 对话框添加的。

- Name — DNS 区域名称。这必须是一个完全限定域名 FQDN)。
- SOA 记录 (TTL、Mname 以及 SOA 记录部分中的其他项) — 详细信息请参阅 SOA 记录;
- 两个 NS 记录 — 详细信息请参阅 NS 记录。

备注
除 Name 字段外的所有字段都已预填充推荐值,因此您只需添加您的域名并点击 Add new DNS zone 按钮即可。
删除 DNS 区域¶
要删除 DNS 区域,请从 DNS Zone 旁边的下拉列表中选择它,然后点击 Delete DNS Zone。

修改 DNS 记录¶
要配置 DNS 记录:
- 通过点击用户名从下拉菜单中选择 DNS Hosting 子菜单,打开 DNS Zone Management 部分;
- 要添加或修改 DNS 记录,请从 DNS zone 旁边的下拉列表中选择所需的区域。
- 如果您想 添加新记录,请点击
Add a new DNS record按钮并从下拉列表中选择记录类型。 - 如果您想 修改或删除现有记录,请点击您要更新或删除的 DNS 记录。
- 在打开的对话框中填写字段或进行更改。
- 点击
Add record以添加新记录,或点击Save record以修改现有记录。

您可以为域名和子域名配置以下记录:
SOA 记录¶
在对话框中指定 SOA 记录字段:
- TTL — 生存时间。这是 DNS 记录中的一个字段,决定了每条记录的有效时间,因此也决定了记录更新到达最终用户所需的时间。较长的 TTL 通过增加缓存结果的可能性来加快 DNS 查找,但较长的 TTL 也意味着记录更新需要更长时间才能生效。
- Mname — 此 DNS 区域的主主名称服务器。
UPDATE请求必须重定向到主服务器。NOTIFY请求从主主服务器向外传播。
- Rname — 负责此 DNS 区域的管理员的电子邮件地址。通常,电子邮件地址被编码为名称。电子邮件地址中 @ 之前的部分成为名称的第一个标签;@ 之后的域名成为名称的其余部分。在区域文件格式中,标签中的点用反斜杠转义,因此电子邮件地址
[email protected]在区域文件中表示为john\.doe.example.com。 - Serial — 此 DNS 区域的序列号。如果此服务器的辅助名称服务器注意到此数字增加,辅助服务器将假设区域已更新并启动区域传输:
- Refresh — 辅助名称服务器必须向主 SOA 服务器请求记录以检测 DNS 区域更改的秒数。推荐用于小型且稳定的 DNS 区域:86400 秒(24 小时)。
- Retry — 如果主服务器无响应,辅助名称服务器应重试向主服务器请求序列号的秒数。这应小于 Refresh。推荐用于小型且稳定的 DNS 区域:7200 秒(2 小时)。
- Expire — 如果主服务器无响应,辅助名称服务器应停止响应此 DNS 区域查询的秒数。此值应大于更新和重试的总和。推荐用于小型且稳定的 DNS 区域:3600000 秒(1000 小时)。
- Minimum — 用于计算负缓存的生存时间。权威名称服务器接受 SOA TTL 和 SOA 最小值中较低的一个,作为负响应的 SOA TTL 发送。解析器使用生成的 SOA TTL 来确定允许缓存负响应的时间。对于小型且稳定的 DNS 区域,建议值为 172800 秒(2 天)。此字段最初具有该 DNS 区域中资源记录的最小 TTL 值;其当前值在 RFC 2308 中进行了更改。

警告
仅当您确定值正确时才更改 SOA 记录值。不正确的值会导致通过域名解析访问您的服务器时出现问题。
NS 记录¶
在对话框中指定 NS 记录字段:
- Name — 记录名称,对于 DNS 区域本身为空;
- TTL — 记录的生存时间(缓存),以秒为单位。这是其他 DNS 服务器可以缓存此记录的时间。通常设置为 3600;
- Data — 一个或多个由空格分隔的 FQDN。例如:
ns1.example.com ns2.example.com。

A 记录¶
在对话框中指定 A 记录字段:
以下是记录的 A 字段:
- Name — 子域名的记录名称,对于 DNS 区域本身为空 (@);
- TTL — 生存时间。通常取值为 3600;
- Data — 一个或多个由空格分隔的 IPv4 地址。例如:
104.17.210.9 104.17.210.20。这通常是您服务器的地址。
备注
您可以在 Invapi 中服务器控制面板的 Network 选项卡中找到您服务器的 IP 地址。

AAAA 记录¶
在对话框中指定 AAAA 记录字段:
- Name — 记录名称,对于 DNS 区域本身为空;
- TTL — 生存时间,通常取值为 3600;
- Data — 一个或多个由空格分隔的 IPv6 地址。例如:
2606:4700:4700::11112606:4700:4700::1001。

CNAME 记录¶
在对话框中指定 CNAME 记录字段:
- Name — 记录名称,对于 DNS 区域本身为空;
- TTL — 生存时间,通常取值为 3600;
- Data — 一个 FQDN。例如:
example.com。

MX 记录¶
在对话框中指定 MX 记录字段:
- Name — 记录名称,对于 DNS 区域本身为空;
- TTL — 生存时间,通常取值为 3600;
- Priority — 指定应首选哪个邮件服务器。较低的“优先级”值,如 10 或 20,更受青睐;
- Data — 一个或多个邮件服务器 FQDN,IPv4 和 IPv6。例如
mail.example.com 2606:4700:4700::1001 104.17.210.20:

TXT 记录¶
在对话框中指定 TXT 记录字段:
- Name — 记录名称,对于 DNS 区域本身为空;
- TTL — 生存时间,通常取值为 3600;
- Data — 文本(不带引号):

备注
例如,使用 TXT 记录创建 DKIM 记录
DKIM 记录¶
在对话框中指定 DKIM 记录字段:
- Name — 记录名称,对于 DNS 区域本身为空;
- TTL — 生存时间,通常取值为 3600;
- Data —
v=DKIM1; p=[公钥]

SPF 记录¶
在对话框中指定 SPF 记录字段:
- TTL - 生存时间,通常取值为 3600;
- Data —
v=spf1 ip4=192.0.2.0 ip4=192.0.2.1 include:examplesender.email [-//+]all

SRV 记录¶
在对话框中指定 SRV 记录字段:
- Service — 所需服务的符号名称;
- Protocol — 您要使用的服务的传输协议,通常是 TCP 或 UDP;
- TTL — 生存时间,通常取值为 3600;
- Priority — 目标主机的优先级;值越低表示越受青睐;
- Weight — 具有相同优先级的条目的相对权重,值越高表示被选中的几率越大;
- Port — 应找到服务的 TCP 或 UDP 端口;
- Target — 提供服务的机器的规范主机名:

验证 DNS 记录的添加¶
要确认域名的 DNS 区域和记录的添加和分配,请使用控制台中的 dig 实用程序,或通过在线工具如 Google 的 DNS 查找 服务或 DNS Checker 进行检查。
使用 API 管理 DNS¶
API 调用 可用于添加、修改或删除 DNS 区域和记录,以及检索其当前值。
DNS 记录类型¶
DNS 记录是存储在权威 DNS 服务器上的指令。它们提供有关区域的信息,包括关联的 IP 地址以及如何处理查询。记录使用 DNS 语法,这是一串命令 DNS 服务器的字符。DNS 记录具有 TTL,即生存时间。这表明 DNS 服务器更新记录的频率。
每个 DNS 区域都应具有一组最小的 DNS 记录,以使用户能够通过域名访问其网站。其他记录可能服务于其他目的。
主要的 DNS 记录类型:
-
SOA 记录
“起始授权” (SOA) DNS 记录包含有关 DNS 区域的基本信息,包括管理员的电子邮件地址、区域上次更新的时间以及服务器在更新之间等待的间隔。
为了符合 IETF 标准,所有 DNS 区域都需要起始授权 (SOA) 记录。此记录对于区域传输也至关重要,将在创建 DNS 区域时自动添加。
-
NS 记录
NS是nameserver(名称服务器)的缩写。NS 记录指定对 DNS 区域具有权威性的 DNS 服务器,即包含实际 DNS 记录的服务器。NS 记录告知互联网在哪里找到 DNS 区域的 IP 地址。DNS 区域通常有多个 NS 记录,指示该区域的主名称服务器和辅助名称服务器。正确配置的 NS 记录对于用户访问网站或应用程序至关重要。 -
A 记录
“A” 代表地址记录,这是最基本的 DNS 记录类型。它指定特定 DNS 区域的 IP 地址。
A 记录仅限于 IPv4 地址,而 AAAA 记录用于具有 IPv6 地址的网站。
-
AAAA 记录
AAAA 记录将域名映射到 IPv6 地址。它们类似于 A 记录,但存储 IPv6 地址而不是 IPv4 地址。
-
CNAME 记录
“规范名称” (CNAME) 记录从域别名指向“规范”域。当域或子域名是另一个域的别名时,使用 CNAME 记录而不是 A 记录。所有 CNAME 记录必须指向域,而不是 IP 地址。
假设
blog.example.com有一个值为example.com(不带blog)的 CNAME 记录。这意味着当 DNS 服务器遇到blog.example.com的 DNS 记录时,它实际上会对example.com执行另一次 DNS 查找,并通过其 A 记录返回example.com的 IP 地址。在这种情况下,我们会说example.com是blog.example.com的规范(或真实)名称。 -
MX 记录
“邮件交换” (MX) DNS 记录将电子邮件定向到邮件服务器。MX 记录指定电子邮件消息应如何根据 SMTP(所有电子邮件的标准协议)进行路由。与 CNAME 记录一样,MX 记录必须始终指向不同的域。
-
TXT 记录
文本 (TXT) 记录允许域管理员将文本输入域名系统 (DNS)。TXT 记录最初设计用于存储人类可读的注释。然而,TXT 记录现在也可以包含一些机器可读的数据。单个域可以有多个 TXT 记录。
-
DKIM 记录
DomainKeys Identified Mail (DKIM) 是一种电子邮件身份验证方法,有助于防止垃圾邮件发送者和其他攻击者冒充合法域。
所有电子邮件地址都有一个域——即 @ 符号后面的地址部分。垃圾邮件发送者和攻击者在发送电子邮件时可能会尝试冒充域,以进行网络钓鱼攻击或其他类型的欺诈。
-
SPF 记录
“发件人策略框架” (SPF) 记录是一种 TXT 记录,列出了所有有权从特定域发送电子邮件的服务器。
SPF 记录最初是因为用于电子邮件的标准协议简单邮件传输协议 (SMTP) 本身并不对电子邮件中的
from地址进行身份验证而创建的。这意味着如果没有 SPF 或其他身份验证记录,攻击者可以轻松冒充发件人,诱骗收件人采取他们否则不会采取的操作或共享信息。 -
SRV 记录
“服务” (SRV) 记录指定特定服务(如 IP 语音 (VoIP)、即时消息等)的主机和端口。大多数其他 DNS 记录仅指定服务器或 IP 地址,但 SRV 记录还包括该 IP 地址上的端口。某些互联网协议需要 SRV 记录才能正常运行。
添加域名示例¶
添加 DNS 区域和记录¶
要在 Invapi 上设置域名,请按照以下步骤操作。
-
登录您的 Invapi 账户。
- 在您的账户菜单中导航到 DNS Hosting 部分。
- 点击
Add DNS zone按钮。 - 在 Add DNS zone 表单中,在 Name 字段中输入您的域名 (
myowndomain.com)。 - 点击
Add a new DNS zone按钮以创建新的 DNS 区域。
-
为域添加 A 记录。
- 在 Invapi 的 DNS 设置中,点击
Add new DNS record按钮并选择 A。 - 在出现的表单中,在 Name 字段中输入
@,在 Data 字段中输入您的服务器 IP 地址。 - 点击
Add Record按钮。
- 在 Invapi 的 DNS 设置中,点击
-
为
www.子域添加 CNAME 记录。- 在 Invapi 的 DNS 设置中,点击
Add new DNS record按钮并选择 CNAME。 - 在出现的表单中,在 Name 字段中输入
www,在 Data 字段中输入您的域名 (myowndomain.com)。 - 点击
Add Record按钮。
- 在 Invapi 的 DNS 设置中,点击
Note
或者,您可以添加第二个 A 记录,其值为 Name = www 和 Data = 服务器 IP 地址。
如果一切正确,您应该看到类似以下参数的 DNS 区域设置:
| 名称 | 类型 | 数据 |
|---|---|---|
| @ | SOA | ns1.hostkey.com. johnhostkey@example.net. 2024050803 14400 3600 604800 3600 |
| @ | NS | ns1.hostkey.com ns2.hostkey.com |
| @ | A | 176.222.34.23 |
| www | CNAME | myowndomain.com |
验证 DNS 记录传播¶
等待 DNS 记录在整个互联网上传播(这可能需要 2 到 24 小时)。 使用命令 dig 或 nslookup 验证您的 DNS 记录是否由 HOSTKEY 的 NS 服务器提供:
用于自动获取 SSL 证书的标准 NGINX-Certbot¶
HOSTKEY 基础设施使用基于 NGINX 和 Certbot 的标准解决方案来管理 SSL 证书。此解决方案利用官方 docker-nginx-certbot 镜像,并自动管理所有客户端控制面板的 SSL 证书。
部署 nginx-certbot 容器后,docker-compose 文件位于 /root/data/nginx 目录中,默认配置位于同一目录的 user_conf.d 子目录中。此结构允许配置其他参数,例如:
- 更改 Let's Encrypt 的电子邮件地址;
- 自定义 Nginx 配置;
- 添加自定义域。
为确保服务功能,需要满足以下先决条件:
- 域名的 DNS 记录配置正确;
- 开放端口 80 以进行 Let's Encrypt 验证;
- 开放端口 443 以进行 HTTPS 连接。