跳转至

DNS hosting

在这篇文章中

这篇文章中

开始之前

始终需要的条件

要使域名能够打开并指向您的服务器,仅有两个**必要**条件:

  1. 域名已在注册商处注册。 HOSTKEY 不提供域名注册服务 —— 您需要从任何经认证的注册商(例如 Namecheap、GoDaddy、Cloudflare)购买域名。在域名注册之前,它在互联网上并不存在,任何针对该域名的 DNS 查询都将返回 NXDOMAIN
  2. 在权威 DNS 中存在一条 A 记录“domain → 您的服务器 IP”(如果您的服务器使用 IPv6,则为 AAAA 记录)。

在 HOSTKEY 面板中创建 DNS zone 只是满足第 2 点的**方法之一**,并非**必须**。

HOSTKEY 测试域名

HOSTKEY 不会为您的服务器签发域名。只有当您从 Marketplace 订购现成的面板时,才会自动创建 HOSTKEY 测试域名。

第 2 点可以通过以下两种方式之一完成。其中任何一种即可:

  • 选项 A — 在注册商处配置 DNS(更简单,无需更改 NS)。 在您的注册商的 DNS 设置中,只需添加一条 A record @ → 您的服务器 IP(如果需要也可以添加 www)。注册商的 NS 服务器保持不变,**不需要**在 HOSTKEY 面板中创建 DNS zone。适用于简单的域名到服务器的绑定。

  • 选项 B — 使用 HOSTKEY 名称服务器配置 DNS(如果您想在 HOSTKEY 面板中管理该区域,则需要此操作)。 在您的注册商控制面板中,将域名的 NS servers 更改为 ns1.hostkey.comns2.hostkey.com(这被称为委派),然后在 HOSTKEY 面板中创建 DNS zone 和记录。仅在此选项下需要更改 NS —— 如果不进行此操作,面板中的 zone 将无法工作。

请勿混用这两个选项

最常见的错误是:在 HOSTKEY 面板中创建了 zone(选项 B),但仍保留注册商处的 NS servers。这样会导致域名无法通过 HOSTKEY 解析。要么完成选项 B —— 在注册商处更改 NS;要么使用选项 A —— 仅在注册商处添加一条 A record 而不更改 NS。

如何检查(命令)

域名的委派情况: dig NS your-domain +short (Windows: nslookup -type=NS your-domain)。

  • empty / NXDOMAIN — 域名未注册(见第 1 点);
  • 显示了注册商的 NS servers — 正在使用选项 A,或者对于选项 B,您尚未将 NS 切换到 HOSTKEY;
  • 显示 ns1.hostkey.com / ns2.hostkey.com — 已执行选项 B,已委派至 HOSTKEY。

域名是否解析到 IP: dig A your-domain +short (Windows: nslookup your-domain) —— 应返回您服务器的 IP 地址。

在注册商端进行任何更改后,请预留传播时间 —— 从 15 分钟到 24 小时不等

在域名注册商端配置 DNS

可以通过您的域名注册商完成 DNS 1 设置。要完成此任务,请导航至您的域名设置,选择您注册商的 NS servers,并为您的域名的 IPv4 输入以下 A-records

Record Subdomain IP-address/Data
A @ Server IP
A www Server IP

或者

Record Subdomain IP-address/Data
A @ Server IP
CNAME www Server IP

注意

所有针对域名的额外记录更改都必须在注册商处的域名设置中进行。

在控制面板中使用 HOSTKEY 名称服务器配置 DNS

确保注册商端的域名设置包含指向 HOSTKEY DNS servers 的链接。如果没有,请添加该链接。

要为您的域名指定 DNS-servers 列表,请前往您域名注册商个人中心的 DNS-servers 设置,并设置以下值:ns1.hostkey.comns2.hostkey.com

注意

对 DNS zone 所做的任何更改(包括修改名称服务器或 DNS records)可能需要长达 24 小时才能生效。

备注

未能在一侧(注册商或 HOSTKEY)设置 NS server 将导致您的域名无法完成委派。

接下来,您可以在 Invapi 中进行 DNS 管理。为此,请前往 DNS Management 菜单:

随后,您将被重定向到 Manage DNS Zones 部分。

添加 DNS Zone

DNS 被划分为多个 DNS zones 2,它们清晰地定义了 DNS 命名空间内的管理区域。

您可以通过 DNS zones management 部分中的 Add DNS zone 对话框来添加 DNS zone。

  • Name — DNS zone 名称。这必须是一个完全限定域名 FQDN
  • SOA record (TTL, Mname, 以及来自 SOA record 部分的其他字段) — 详情请参见 SOA record
  • 两条 NS records — 详情请参见 NS Entry

备注

除了 Name 字段外,所有字段都已预填了推荐值,因此您只需添加您的域名并点击 Add new DNS zone 按钮即可。

删除 DNS Zone

要删除 DNS zone,请从 DNS Zone 旁边的下拉列表中选择它,然后点击 Delete DNS Zone

修改 DNS records

配置 DNS record 的步骤如下:

  1. 通过点击用户名并从下拉菜单中选择 DNS Hosting 子菜单来打开 DNS Zone Management 部分;
  2. 若要添加或修改 DNS record,请从 DNS zone 旁边的下拉列表中选择所需的区域;
  3. 如果您想 add a new record,请点击 Add a new DNS record 按钮并从下拉列表中选择记录类型;
  4. 如果您想 modify or delete an existing record,请点击您想要更新或删除的 DNS record;
  5. 在打开的对话框中填写字段或进行更改。
  6. 点击 Add record 以添加新记录,或点击 Save record 以修改现有记录。

您可以为域名和子域名配置以下记录:

SOA record

在对话框中指定 SOA record 字段:

  • TTL — 有效期。这是 DNS records 中的一个字段,决定了每条记录的有效期,从而决定了记录更新到达终端用户所需的时间。较长的 TTL 通过增加缓存结果的可能性来加快 DNS 查询速度,但较长的 TTL 也意味着记录更新生效的时间更长。
  • Mname — 此 DNS zone 的主主名称服务器 (primary master name server)。
    • UPDATE 请求必须重定向到主服务器。
    • NOTIFY 请求从主服务器向外传播。
  • Rname — 负责此 DNS zone 的管理员的电子邮件地址。通常,电子邮件地址被编码为一个名称。@ 符号之前的电子邮件部分成为名称的第一个标签;@ 符号之后的域名成为名称的其余部分。在区域文件格式中,标签中的点使用反斜杠转义,因此电子邮件 [email protected] 在区域文件中表示为 john\.doe.example.com
  • Serial — 此 DNS zone 的序列号。如果作为此服务器从属 (slave) 的二级名称服务器注意到此数字增加,则从属服务器会认为该 zone 已更新并启动区域传输:
  • Refresh — 二级名称服务器必须向主 SOA 服务器请求记录以检测 DNS zone 更改的秒数。对于小型且稳定的 DNS zones,建议设置为:86400 秒 (24 小时)。
  • Retry — 如果主服务器未响应,二级名称服务器应重试请求主服务器序列号的秒数。这应该小于 Refresh。对于小型且稳定的 DNS zones,建议设置为:7200 秒 (2 小时)。 | - Expire — 如果主服务器未响应,二级名称服务器应停止响应对此 DNS zone 查询的秒数。该值应大于更新和重试的总和。对于小型且稳定的 DNS zones,建议设置为:3600000 秒 (1000 小时)。
  • Minimum — 用于计算负缓存 (negative caching) 的有效期。权威名称服务器接受 SOA TTL 和 SOA minimum 中的较小值,并将其作为发送给负面回复的 SOA TTL。解析器使用生成的 SOA TTL 来确定它们被允许缓存负面响应的时间长短。对于小型且稳定的 DNS zones,建议设置为 172800 秒 (2 天)。该字段最初的值是该 DNS zone 中资源记录的最小 TTL;其当前值已根据 RFC 2308 进行更改。

注意

仅在您确定正确时才修改 SOA record 值。错误的值会导致通过域名访问服务器时出现问题。

NS record

在对话框中指定 NS record 字段:

  • Name — 记录名称,对于 DNS zone 本身为空;
  • TTL — 记录的有效期(缓存)以秒为单位。这是其他 DNS 服务器可以缓存此记录的时间。通常设置为 3600;
  • Data — 一个或多个由空格分隔的 FQDN。例如:ns1.example.com ns2.example.com

A record

在对话框中指定 A record 字段:

以下是该记录的 A 字段:

  • Name — 子域名的记录名称,对于 DNS zone 本身为空 (@);
  • TTL — 有效期。通常取值为 3600;
  • Data — 一个或多个由空格分隔的 IPv4 地址。例如:104.17.210.9 104.17.210.20。这通常是您的服务器地址。

备注

您可以在 Invapi 中服务器控制面板的 Network 选项卡中找到您的服务器 IP 地址。

AAAA record

在对话框中,指定 AAAA record 字段:

  • Name — 记录名称,对于 DNS zone 本身为空;
  • TTL — 有效期,通常取值为 3600;
  • Data — 一个或多个由空格分隔的 IPv6 地址。例如:2606:4700:4700::1111 2606:4700:4700::1001

CNAME record

在对话框中指定 CNAME record 字段:

  • Name — 记录名称,对于 DNS zone 本身为空;
  • TTL — 有效期,通常取值为 3600;
  • Data — 一个 FQDN。例如:example.com

MX record

在对话框中指定 MX record 字段:

  • Name — 记录名称,对于 DNS zone 本身为空;
  • TTL — 有效期,通常取值为 3600;
  • Priority — 指定应优先使用哪个邮件服务器。较低的 "priority" 值(如 10 或 20)更受青睐;
  • Data — 一个或多个邮件服务器 FQDN、IPv4 和 IPv6。例如 mail.example.com 2606:4700:4700::1001 104.17.210.20:

TXT record

在对话框中指定 TXT record 字段:

  • Name — 记录名称,对于 DNS zone 本身为空;
  • TTL — 有效期,通常取值为 3600;
  • Data — 文本(不带引号):

备注

例如,使用 TXT record 创建 DKIM record

DKIM record

在对话框中指定 DKIM record 字段:

  • Name — 记录名称,对于 DNS zone 本身为空;
  • TTL — 有效期,通常取值为 3600;
  • Datav=DKIM1; p=[Public key]

SPF record

在对话框中指定 SPF record 字段:

  • TTL - 有效期,通常取值为 3600;
  • Datav=spf1 ip4=192.0.2.0 ip4=192.0.2.1 include:examplesender.email [-//+]all

SRV record

在对话框中指定 SRV record 字段:

  • Service — 所需服务的符号名称;
  • Protocol — 您想要使用的服务的传输协议,通常为 TCP 或 UDP;
  • TTL — 有效期,通常取值为 3600;
  • Priority — 目标主机的优先级;值越低表示越优先;
  • Weight —具有相同 priority 的条目的相对权重,值越高表示被选中的机会越大;
  • Port — 应查找该服务的 TCP 或 UDP 端口;
  • Target — 提供服务的机器的规范主机名:

验证新增的 DNS 记录

要确认域名是否成功添加并分配了 DNS zones 和 records,请使用控制台中的 dig 工具,或通过在线工具进行检查,例如 Google's DNS Lookup 服务或 DNS Checker

通过 API 管理 DNS

API calls 可用于添加、修改或删除 DNS zones 和 records,以及获取它们的当前值。

DNS 记录类型

DNS records 是存储在权威 DNS servers 上的指令。它们提供有关 zone 的信息,包括关联的 IP 地址以及如何处理查询。这些记录使用 DNS 语法(即一系列命令 DNS server 的字符字符串)。DNS records 具有 TTL,代表生存时间 (time to live)。这表示 DNS server 更新该记录的频率。

每个 DNS zone 都应具备一组最小的 DNS records,以便用户可以使用域名访问其网站。其他记录可能用于其他用途。

主要的 DNS record 类型包括:

  • SOA record

    “起始授权”(SOA) DNS 记录包含有关 DNS zone 的基本信息,包括管理员的电子邮件地址、zone 最后一次更新的时间以及服务器在更新之间等待的间隔时间。

    为了符合 IETF 标准,所有 DNS zones 都需要一个 Start of Authority (SOA) record。该记录对于区域传输也至关重要,并将在创建 DNS zone 时自动添加。

  • NS record

    NSnameserver 的缩写。NS record 指定对 DNS zone 具有权威性的 DNS server,即包含实际 DNS records 的服务器。NS records 通知互联网在哪里可以找到该 DNS zone 的 IP 地址。一个 DNS zone 通常有多个 NS records,指示该 zone 的主名称服务器和从名称服务器。正确配置的 NS records 对于用户访问网站或应用程序至关重要。

  • A record

    “A”代表地址记录 (address record),这是最基本的 DNS record 类型。它指定特定 DNS zone 的 IP 地址。

    A records 仅限于 IPv4 地址,而 AAAA records 用于具有 IPv6 地址的网站。

  • AAAA record

    AAAA records 将域名映射到 IPv6 地址。它们与 A records 类似,但存储的是 IPv6 地址而非 IPv4 地址。

  • CNAME record

    “规范名称”(CNAME) record 将域名别名指向一个“规范”域名。当域名或子域名是另一个域名的别名时,会使用 CNAME record 而不是 A record。所有 CNAME records 必须指向一个域名,而不是 IP 地址。

    假设 blog.example.com 有一个值为 example.com(不带 blog)的 CNAME record。这意味着当 DNS server 命中 blog.example.com 的 DNS record 时,它实际上会为 example.com 执行另一次 DNS 查询,并通过其 A record 返回 example.com 的 IP 地址。在这种情况下,我们会说 example.comblog.example.com 的规范(或真实)名称。

  • MX record

    “邮件交换”(MX) DNS record 将电子邮件重定向到邮件服务器。MX record 根据 SMTP(所有电子邮件的标准协议)指定应如何路由电子邮件消息。与 CNAME records 一样,MX record 必须始终指向另一个域名。

  • TXT record

    文本 (TXT) record 允许域名管理员在域名系统 (DNS) 中输入文本。TXT record 最初设计用于存储人类可读的备注。然而,现在的 TXT records 也可以包含一些机器可读的数据。一个域名可以拥有多个 TXT records。

  • DKIM record

    DomainKeys Identified Mail (DKIM) 是一种电子邮件身份验证方法,有助于防止垃圾邮件发送者和其他攻击者伪装成合法域名。

    所有电子邮件地址都有一个域名 —— 即 @ 符号之后的地址部分。垃圾邮件发送者和攻击者在发送电子邮件进行网络钓鱼攻击或其他类型的欺诈时,可能会尝试冒充该域名。

  • SPF record

    “发件人策略框架”(SPF) record 是 TXT record 的一种,它列出了所有有权从特定域名发送电子邮件的服务器。

    最初创建 SPF records 是因为电子邮件使用的标准协议——简单邮件传输协议 (SMTP) 本身并不对电子邮件中的 from 地址进行身份验证。这意味着如果没有 SPF 或其他身份验证记录,攻击者可以轻松冒充发件人,并诱导收件人采取行动或分享信息。

  • SRV record

    “服务”(SRV) record 指定特定服务(如 VoIP、即时通讯等)的主机和端口。大多数其他 DNS records 仅指定服务器或 IP 地址,但 SRV records 还包括该 IP 地址上的端口。某些互联网协议需要 SRV records 才能正常工作。

添加域名示例

添加 DNS Zone 和记录

要在 Invapi 上设置域名,请按照以下步骤操作。

  1. 登录您的 Invapi 账户。

    • 在您的账户菜单中导航至 DNS Hosting 部分。
    • 点击 Add DNS zone 按钮。
    • Add DNS zone 表单中,在 Name 字段中输入您的域名 (myowndomain.com)。
    • 点击 Add a new DNS zone 按钮以创建新的 DNS zone。
  2. 为该域名添加一条 A record。

    • 在 Invapi 的 DNS 设置中,点击 Add new DNS record 按钮并选择 A
    • 在出现的表单中,在 Name 字段中输入 @,并在 Data 字段中输入您的服务器 IP 地址。
    • 点击 Add Record 按钮。
  3. www. 子域名添加一条 CNAME record。

    • 在 Invapi 的 DNS 设置中,点击 Add new DNS record 按钮并选择 CNAME
    • 在出现的表单中,在 Name 字段中输入 www,并在 Data 字段中输入您的域名 (myowndomain.com)。
    • 点击 Add Record 按钮。

备注

或者,您可以添加第二条 A record,其值为 Name = wwwData = 服务器 IP 地址。

如果一切正确,您应该会看到您的 DNS zone 的类似参数设置:

Name Type Data
@ 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 records 在整个互联网中传播(这可能需要 2 到 24 小时不等)。 使用 dignslookup 命令来验证您的 DNS records 是否由 HOSTKEY 的 NS servers 提供服务:

dig myowndomain.com
dig www.myowndomain.com
nslookup myowndomain.com
nslookup www.myowndomain.com

标准 NGINX-Certbot 用于自动获取 SSL 证书

HOSTKEY 基础设施使用基于 NGINX 和 Certbot 的标准解决方案来管理 SSL 证书。该解决方案利用官方的 docker-nginx-certbot 镜像,并为所有客户端控制面板自动管理 SSL 证书。

部署 nginx-certbot 容器后,docker-compose 文件位于 /root/data/nginx 目录下,默认配置位于该目录下的 user_conf.d 子目录中。这种结构允许配置额外的参数,例如:

  • 更改 Let's Encrypt 的电子邮件地址;
  • 自定义 Nginx 配置;
  • 添加自定义域名。

为确保服务功能正常,需要满足以下前提条件:

  1. 为域名正确配置 DNS records;
  2. 为 Let's Encrypt 验证开放 80 端口;
  3. 为 HTTPS 连接开放 443 端口。

  1. 域名系统 (DNS) 是互联网的“电话簿”。当用户在浏览器中输入 google.comhostkey.com 等域名时,DNS 负责为这些网站找到正确的 IP 地址。随后,浏览器使用这些地址与源服务器或 CDN 边缘服务器通信以访问网站信息。这一切都是通过 DNS servers 实现的:即专门用于响应 DNS 查询的机器。 

  2. 这是处于特定组织或管理员管理下的 DNS 命名空间的一部分。它是一个管理空间,可以对 DNS 组件(如权威名称服务器)进行更细粒度的控制。域名空间是一个层次树,顶端是 DNS 根域。一个 DNS zone 从树中的一个域名开始,并可以扩展到子域名,允许单个实体管理多个子域名。 

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×