> For the complete documentation index, see [llms.txt](https://docs.verge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verge.io/knowledge-base/zh/networking/configure-authoritative-dns-vergeos.md).

# 在 VergeOS 中配置权威 DNS

## 概述

本指南将引导您使用内置的 BIND DNS 服务器在 VergeOS 中配置权威 DNS 服务。您将学习如何在网络上启用 DNS 服务、创建用于访问控制的 DNS 视图、为您的域配置 DNS 区域以及管理 DNS 记录。在本指南结束时，您将在 VergeOS 环境中运行一个完全可用的权威 DNS 服务器。

权威 DNS 允许您的 VergeOS 系统成为您所控制域中 DNS 记录的权威来源，在与现有网络基础设施集成的同时，为域名解析提供完整管理。

## 您将学到什么

完成本指南后，您将能够：

• **启用 BIND DNS 服务** 在 VergeOS 网络上，并了解配置选项 • **创建和配置 DNS 视图** 以控制访问并实现分离视图 DNS • **设置 DNS 区域** 用于您希望权威托管的域 • **管理 DNS 记录** 包括 A、CNAME、MX 以及其他记录类型 • **配置防火墙规则** 以允许 DNS 流量，同时保持安全性 • **设置区域传输** 用于冗余 DNS 配置 • **验证 DNS 功能** 并排查常见问题

**本指南回答的常见用户问题：**

* 如何在我的 VergeOS 网络上启用权威 DNS？
* LAN 和 WAN DNS 视图有什么区别，如何配置它们？
* 如何为我的域创建 DNS 区域？
* 面向公网的 DNS 服务需要哪些防火墙规则？
* 如何添加不同类型的 DNS 记录？
* 如何为冗余设置 DNS 区域传输？
* 为什么我的 DNS 服务器没有为内部客户端提供互联网解析？

## 要求

**VergeOS 版本**：v4.0 或更高版本\
**访问级别**：集群管理员或租户管理员权限\
**网络前提条件**：配置正确且具有外部连接的网络（用于公共 DNS）\
**域要求**：已注册的域，并可修改名称服务器设置（用于公共 DNS）

**背景知识**:

* 了解 DNS 基础知识（区域、记录、解析）
* 熟悉 VergeOS 网络配置
* 对防火墙规则有基本了解

## 时间估计

**完成时间**：20-45 分钟\
**设置前提条件**：10-15 分钟（防火墙规则、网络验证）

## 快速参考

| 操作          | 位置                                   | 用途                       |
| ----------- | ------------------------------------ | ------------------------ |
| 启用 BIND DNS | 网络 > 编辑网络 > DNS：Bind                 | 启用权威 DNS 服务              |
| 创建 DNS 视图   | 网络 > DNS 视图 > 新建                     | 配置客户端访问策略                |
| 创建 DNS 区域   | 网络 > DNS 视图 > \[视图] > DNS 区域 > 新建    | 添加用于权威托管的域               |
| 添加 DNS 记录   | 网络 > DNS 视图 > \[视图] > DNS 区域 > \[区域] | 管理域记录                    |
| 配置防火墙       | 网络 > 规则 > 新建                         | 允许 DNS 流量（53 端口 UDP/TCP） |
| 测试 DNS      | 网络 > 诊断 > DNS 查询                     | 验证 DNS 功能                |

## 分步配置

### 步骤 1：在网络上启用 BIND DNS

第一步是在将提供权威 DNS 的网络上启用 BIND DNS 服务。您可以在任何现有网络（内部或外部）上启用 DNS，不过外部网络通常用于面向公网的 DNS 服务。

1. **导航到目标网络**:
   * **网络** > **列表**
   * 选择要启用 DNS 服务的网络
   * 点击 **编辑** 从左侧菜单中
2. **配置 DNS 设置**:
   * 找到 **DNS** 下拉字段
   * 选择 **Bind** 从可用选项中：
     * ***Bind*** - 启用完整的权威 DNS 服务器功能
     * ***Simple*** - 基本 DNS 转发（非权威）
     * ***Disabled*** - 无 DNS 服务
     * ***Other Network*** - 转发到另一个网络的 DNS
3. **根据需要配置其他网络设置** ：
   * 确认 **IP 地址类型** 设置为 **静态** （DNS 服务所需）
   * 确保适当的 **DNS 服务器列表** 条目用于上游解析
   * 配置 **DHCP** 设置，如果客户端将自动接收 DNS 配置
4. **提交配置**:
   * 点击 **提交** 以保存网络配置
   * 需要重新启动网络才能应用 DNS 更改

{% hint style="warning" %}
**重要的网络行为更改**

当您在网络上启用 BIND 时，递归 **VergeOS 中默认禁用**。这意味着在您配置启用递归的 DNS 视图之前，内部系统将使用该网络的默认路由进行互联网 DNS 解析。
{% endhint %}

### 步骤 2：创建 DNS 视图

DNS 视图控制 DNS 服务器如何响应不同类型的客户端。本节说明如何创建内部（LAN）和外部（WAN）视图，以配置分离视图 DNS。

1. **访问 DNS 视图**:
   * 从您的启用 DNS 的网络仪表板
   * 点击 **DNS 视图** 从左侧菜单中
   * 您将看到一个空列表，准备进行视图配置
2. **创建 LAN（内部）视图**:
   * 点击 **新建** 从左侧菜单中
   * 配置 LAN 视图设置：
     * **网络**：从下拉列表中选择您的 DNS 网络
     * **名称**：输入 `LAN` （或其他具有描述性的内部名称）
     * **递归**：勾选 **启用递归**
     * **顺序 ID**：输入 `1` （视图按顺序处理）
3. **配置 LAN 视图客户端匹配**:
   * 在 **匹配客户端** 部分，点击 **+** 图标以添加客户端网络
   * 添加您的内部网络范围（这些客户端将获得递归 DNS）：
     * `10.0.0.0/8` （私有 A 类网络）
     * `192.168.0.0/16` （私有 C 类网络）
     * `172.16.0.0/12` （私有 B 类网络）
     * 添加您环境中使用的任何其他内部网络
   * **匹配目标**：对大多数配置留空
   * **最大缓存大小**：设置为 `32` MB（或根据需要调整）
4. **创建 WAN（外部）视图**:
   * 点击 **新建** 再次从左侧菜单
   * 配置 WAN 视图设置：
     * **网络**：从下拉列表中选择您的 DNS 网络
     * **名称**：输入 `WAN` （或其他具有描述性的外部名称）
     * **递归**：留空 **未勾选** （为安全起见禁用）
     * **顺序 ID**：输入 `2` （在 LAN 视图之后处理）
5. **配置 WAN 视图客户端匹配**:
   * **匹配客户端**：留空（匹配未被 LAN 视图捕获的所有其他客户端）
   * **匹配目标**：留空
   * **最大缓存大小**：设置为 `32` MB，或按适当值设置
6. **提交两个视图**:
   * 点击 **提交** 分别针对每个视图配置
   * 两个视图现在都应显示在您的 DNS 视图列表中

{% hint style="info" %}
**视图处理逻辑**

视图会根据顺序 ID 按顺序处理。第一个匹配客户端 IP 地址的视图将处理该请求。LAN 视图（顺序 ID 1）会捕获内部客户端并提供递归，而 WAN 视图（顺序 ID 2）会捕获所有其他客户端并仅提供权威响应。
{% endhint %}

### 步骤 3：配置 DNS 区域

DNS 区域定义了您的服务器作为权威的域。本节介绍创建区域及其基本设置的配置。

1. **访问区域配置**:
   * 从 **DNS 视图** 列表中，点击您的 **LAN** 视图
   * 点击 **DNS 区域** 从左侧菜单中
   * 点击 **新建** 以创建新区域
2. **配置基本区域设置**:
   * **类型**：选择 **Primary** （此服务器将是主服务器）
   * **域**：输入您的域名（例如， `company.com`)
   * **Name Server**：输入您的名称服务器的 FQDN
     * 对于外部名称服务器： `ns1.example.com.` （注意末尾的句点）
     * 对于域内名称服务器： `ns1.company.com.` （需要粘连记录）
   * **Email**：以 DNS 格式输入管理员电子邮件（例如， `admin.company.com`)
3. **配置区域时间设置**:
   * **默认 TTL**：设置为 `1h` （3600 秒）适用于大多数环境
   * **负缓存 TTL**：设置为 `10m` （600 秒）
   * **刷新间隔**：设置为 `3h` （10800 秒）用于区域传输
   * **重试间隔**：设置为 `30m` （1800 秒）用于失败的传输
   * **过期周期**：设置为 `3w` （1814400 秒）用于区域过期
4. **配置区域传输设置** （用于冗余）：
   * **Notify**：选择 **是** 以启用更改通知
   * **Also Notify**：输入次级 DNS 服务器的 IP 地址（以分号分隔）
     * 示例： `192.168.1.100;203.0.113.50`
   * **允许传输**：输入获授权进行区域传输的 IP 地址
     * 示例： `192.168.1.100;203.0.113.50`
   * **转发器**：对权威区域留空
5. **提交区域配置**:
   * 点击 **提交** 以创建区域
   * 该区域将显示在您的 DNS 区域列表中
6. **在 WAN 视图中创建区域** （用于公共访问）：
   * 返回到 **DNS 视图** 并选择您的 **WAN** 视图
   * 使用相同设置重复区域创建过程
   * 这可确保内部和外部客户端都能解析该域

{% hint style="success" %}
**名称服务器建议**

对于公共域，请使用您域外的名称服务器（例如， `ns1.dnsProvider.com`）以避免循环依赖。如果使用域内名称服务器（例如， `ns1.yourDomain.com`），您必须在域注册商处配置粘连记录。
{% endhint %}

### 步骤 4：添加 DNS 记录

创建区域后，您现在可以为您的域添加 DNS 记录。本节介绍创建常见记录类型。

1. **访问 DNS 记录**:
   * 导航到 **DNS 视图** > **\[您的视图]** > **DNS 区域**
   * 点击您的域区域以访问其记录
   * 您将看到自动创建的 NS（名称服务器）记录
2. **创建 A 记录** （IPv4 地址映射）：
   * 点击 **新建** 从左侧菜单中
   * 配置 A 记录：
     * **类型**：选择 **A**
     * **主机**：输入主机名（例如， `www` 用于 [www.company.com）](http://www.company.com）)
     * **值**：输入 IPv4 地址（例如， `192.168.1.100`)
     * **TTL**: 使用 `0` 使用默认值，或指定自定义 TTL
     * **顺序 ID**：使用递增数字（1、2、3 等）
3. **创建 CNAME 记录** （别名）：
   * 点击 **新建** 从左侧菜单中
   * 配置 CNAME 记录：
     * **类型**：选择 **CNAME**
     * **主机**：输入别名名称（例如， `mail`)
     * **值**：输入目标 FQDN，末尾带句点（例如， `smtp.company.com.`)
     * **TTL**: 使用 `0` 用于默认值
     * **顺序 ID**：继续按顺序编号
4. **创建 MX 记录** （邮件服务器）：
   * 点击 **新建** 从左侧菜单中
   * 配置 MX 记录：
     * **类型**：选择 **MX**
     * **主机**：域根留空，或输入子域
     * **值**：输入优先级和邮件服务器（例如， `10 mail.company.com.`)
     * **TTL**: 使用 `0` 用于默认值
     * **顺序 ID**：继续按顺序编号
5. **创建域根记录**:
   * 点击 **新建** 从左侧菜单中
   * 配置域根 A 记录：
     * **类型**：选择 **A**
     * **主机**：输入完整域名，末尾带句点（例如， `company.com.`)
     * **值**：输入裸域的 IPv4 地址
     * **TTL**: 使用 `0` 用于默认值
     * **顺序 ID**: 使用 `1` （通常是第一条记录）
6. **在两个视图中重复**:
   * 向 LAN 和 WAN 视图添加相同的记录
   * 这可确保内部和外部客户端解析一致
   * 对于分离视图配置，请考虑使用不同的 IP 地址

{% hint style="info" %}
**FQDN 格式要求**

在 Value 字段中始终使用完全限定域名（以句点结尾）以避免混淆。对于 Host 字段，您可以使用相对名称（例如， `www`）或 FQDN（例如， `www.company.com.`）。建议始终一致地使用 FQDN。
{% endhint %}

### 步骤 5：配置网络防火墙规则

DNS 服务需要特定的防火墙规则，以允许客户端查询和区域传输。本节介绍必要的规则配置。

1. **导航到网络规则**:
   * 从您的 DNS 网络仪表板
   * 点击 **规则** 从左侧菜单中
   * 检查现有规则以避免冲突
2. **创建 UDP DNS 规则** （用于标准查询）：
   * 点击 **新建** 从左侧菜单中
   * 配置 UDP 规则：
     * **名称**: `允许 DNS UDP`
     * **操作**：选择 **接受**
     * **方向**：选择 **入站**
     * **协议**：选择 **UDP**
     * **端口/端口范围**：输入 `53`
     * **源**：保持为 **任意** 用于公共 DNS，或为私有 DNS 指定网络
     * **接口**：选择 **任意** 或指定接口
3. **创建 TCP DNS 规则** （用于区域传输和大响应）：
   * 点击 **新建** 从左侧菜单中
   * 配置 TCP 规则：
     * **名称**: `允许 DNS TCP`
     * **操作**：选择 **接受**
     * **方向**：选择 **入站**
     * **协议**：选择 **TCP**
     * **端口/端口范围**：输入 `53`
     * **源**：出于安全考虑，仅指定授权的次级 DNS 服务器 IP
     * **接口**：选择 **任意** 或指定接口
4. **应用防火墙规则**:
   * 点击 **提交** 针对每条规则
   * 从网络仪表板中，点击 **应用规则** 从左侧菜单中
   * 确认规则应用以激活更改

{% hint style="warning" %}
**TCP 规则安全性**

对于面向公网的 DNS，只允许来自授权次级 DNS 服务器的 TCP 53 端口，以防止潜在的区域传输攻击。UDP 53 端口通常可以从任何地方允许，以便进行标准 DNS 查询。
{% endhint %}

### 步骤 6：验证 DNS 配置

配置完成后，测试您的 DNS 服务以确保其正常工作非常重要。

1. **从网络测试 DNS**:
   * 导航到您的 DNS 网络仪表板
   * 点击 **诊断** 从左侧菜单中
   * 选择 **DNS 查询** 从查询下拉菜单中
   * 配置测试：
     * **主机**：输入您配置的域（例如， `www.company.com`)
     * **查询类型**：选择 **A** 或适当的记录类型
     * **DNS 服务器**：留空以使用本地 DNS，或指定 `127.0.0.1`
   * 点击 **发送** 以执行查询
2. **测试递归解析** （内部客户端）：
   * 使用相同的诊断界面
   * 测试外部域解析（例如， `google.com`)
   * 应对 LAN 视图客户端有效，对 WAN 视图客户端失败
3. **从外部客户端测试**:
   * 使用外部 DNS 测试工具（例如， `nslookup`, `dig`)
   * 查询您的 DNS 服务器公网 IP 地址
   * 验证您的域的权威响应
4. **验证区域传输功能** （如果已配置）：
   * 从次级 DNS 服务器测试区域传输请求
   * 检查 DNS 日志，确认传输通知成功
   * 验证主服务器和次级服务器之间的记录同步

{% hint style="success" %}
**测试提示**

使用外部 DNS 测试网站，例如 `whatsmydns.net` 以验证全球 DNS 传播情况。测试权威响应（针对您的域）和递归解析（针对内部客户端），以确保功能完整。
{% endhint %}

## 高级配置

### 设置区域传输

区域传输通过将您的 DNS 区域复制到辅助服务器来提供冗余。

1. **配置主区域以进行传输**:
   * 在您的区域配置中，启用 **通知：是**
   * 将辅助服务器 IP 添加到 **Also Notify** 字段
   * 将相同的 IP 添加到 **允许传输** 字段
   * 确保 TCP 53 端口的防火墙规则允许这些 IP
2. **配置辅助服务器**:
   * 使用以下设置创建新区域 **类型：辅助**
   * 指定主服务器的 IP 地址
   * 无需手动创建记录（它们会自动传输）

### 分离视图 DNS 实现

向内部与外部客户端提供不同的应答：

1. **在 LAN 视图与 WAN 视图中创建不同的记录**:
   * LAN 视图：服务的内部 IP 地址
   * WAN 视图：相同服务的公网 IP 地址
   * 客户端会根据其位置获得合适的地址
2. **配置示例**:
   * LAN 视图： `mail.company.com` → `192.168.1.50` （内部邮件服务器）
   * WAN 视图： `mail.company.com` → `203.0.113.50` （公网邮件服务器 IP）

## 故障排查索引

| 问题/症状           | 可能原因                  | 解决方案                     |
| --------------- | --------------------- | ------------------------ |
| 内部客户端无法访问互联网网站  | LAN 视图中未启用递归          | 在 LAN DNS 视图中启用递归        |
| 外部客户端未收到 DNS 响应 | 防火墙阻止了 UDP 53 端口      | 添加允许 UDP 53 端口的防火墙规则     |
| 区域传输失败          | TCP 53 端口被阻止或 IP 未获授权 | 检查防火墙规则和“允许传输”设置         |
| DNS 查询超时        | 网络连接问题                | 验证网络路由和防火墙规则             |
| 记录无法解析          | FQDN 格式不正确            | 确保 Value 字段中的 FQDN 以句点结尾 |
| 辅助服务器未接收更新      | 通知设置不正确               | 验证 Also Notify IP 和通知设置  |

### 常见 DNS 解析问题

**问题**：客户端无法解析外部域名

* **勾选**：LAN 视图递归设置已启用
* **勾选**：网络中已配置上游 DNS 服务器
* **勾选**：已配置用于互联网访问的默认网关

**问题**：公共 DNS 查询无法工作

* **勾选**：防火墙允许来自互联网的 UDP 53 端口流量
* **勾选**：网络具有公网 IP 地址
* **勾选**：域名注册商的名称服务器设置正确

**问题**：区域传输无法工作

* **勾选**：允许来自辅助服务器的 TCP 53 端口流量
* **勾选**：辅助服务器 IP 位于“允许传输”列表中
* **勾选**：主服务器与辅助服务器之间的网络连接

## 下一步

在成功配置权威 DNS 后，请考虑以下附加实现：

**监控与维护**:

* 设置 DNS 查询日志记录和监控
* 实施自动化 DNS 记录管理
* 规划 DNS 服务器更新和维护

**高级功能**:

* 探索实施 DNSSEC 以增强安全性
* 考虑使用 DNS 负载均衡以实现高可用性
* 研究与动态 DNS 服务的集成

**相关文档**:

* [VergeOS 网络故障排除](/run-the-platform/networking/net-troubleshooting.md)
* [VergeOS 防火墙规则配置](/run-the-platform/networking/network-rules.md)
* [VergeOS 网络仪表板](/run-the-platform/networking/network-dashboards.md)

如需有关 DNS 配置的更多支持，请联系 VergeOS 支持，并提供您的实施需求详情以及遇到的任何错误信息。

***

{% hint style="info" %}
**文档信息**

* 文档类型：知识库配置指南
* 类别：网络服务
* 最后更新：2025-09-11
* VergeOS 版本：4.12 及更高版本
  {% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verge.io/knowledge-base/zh/networking/configure-authoritative-dns-vergeos.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
