Repolode
DNSControl

DNSControl/dnscontrol

面向 DNS 的基础设施即代码工具,用 JavaScript 配置文件统一管理记录并同步到多家服务商。

Star
3,979
Fork
550
未关闭 Issue
32
最近提交
昨天

这是什么?

DNSControl 将 DNS 记录作为代码来管理。你在兼容 JavaScript 的配置文件中描述域名和记录,工具会把期望状态与各服务商当前的记录进行比对,先预览差异,再通过服务商 API 应用变更。

它内置约 77 家 DNS 服务商和域名注册商的插件,包括 Amazon Route 53、Cloudflare、Gandi、Google Cloud DNS,以及 ISC BIND、PowerDNS 等可自建的方案。同一份配置可以同时把记录推送到多个服务商,便于迁移或在切换前先行测试。工具支持 Linux、macOS 和 Windows,新服务商可以以插件形式加入。

项目使用 Go 编写,通常通过命令行、Docker 容器或 GitHub Action 运行,因此 DNS 变更可以走 Pull Request 审核,再由 CI 自动发布。

核心功能

  • 01使用兼容 JavaScript 的配置文件描述域名和 DNS 记录。
  • 02在正式推送前,先与线上服务商比对并预览变更。
  • 03通过一份配置把同一组记录同步到多个 DNS 服务商。
  • 04借助插件支持约 77 家 DNS 服务商和域名注册商。
  • 05提供变量和宏,便于在多个域名间复用 IP、SPF、MX 等配置。
  • 06支持 Linux、macOS 和 Windows,并提供 Docker 镜像。

适用场景

  • 通过 Git 和 Pull Request 审核管理多个域名的 DNS 记录。
  • 在不同 DNS 服务商之间迁移域名,并在测试期间保持记录同步。
  • 借助官方 GitHub Action 在 CI/CD 流水线中自动化 DNS 变更。
  • 将自建 BIND 或 PowerDNS 服务器的记录纳入版本控制。

快速上手

  1. 1

    按照官方说明通过安装包或源码安装 DNSControl

  2. 2

    运行交互式向导,生成 creds.json 和 dnsconfig.js

    dnscontrol init
  3. 3

    或者无需安装,直接使用 Docker 容器运行

    docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview

使用前须知

  • v5.0 发布后,REV() 将从 RFC2317 切换到 RFC4183,这是一个破坏性变更。
  • NAMEDOTCOM、OPENSRS 和 SOFTLAYER 这三个提供商目前没有维护者。

标签

常见问题

dnscontrol 是什么?
面向 DNS 的基础设施即代码工具,用 JavaScript 配置文件统一管理记录并同步到多家服务商。 DNSControl 将 DNS 记录作为代码来管理。你在兼容 JavaScript 的配置文件中描述域名和记录,工具会把期望状态与各服务商当前的记录进行比对,先预览差异,再通过服务商 API 应用变更。
dnscontrol 可以免费使用吗?用的什么许可证?
dnscontrol 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
dnscontrol 还在维护吗?
活跃维护中。dnscontrol 最近一次提交是在 2026年10月21日。
dnscontrol 适合用来做什么?
通过 Git 和 Pull Request 审核管理多个域名的 DNS 记录。 在不同 DNS 服务商之间迁移域名,并在测试期间保持记录同步。 借助官方 GitHub Action 在 CI/CD 流水线中自动化 DNS 变更。 将自建 BIND 或 PowerDNS 服务器的记录纳入版本控制。
dnscontrol 怎么安装和运行?
按照官方说明通过安装包或源码安装 DNSControl 运行交互式向导,生成 creds.json 和 dnsconfig.js: dnscontrol init 或者无需安装,直接使用 Docker 容器运行: docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
在哪里获取 dnscontrol?
源代码和安装说明在 GitHub 上:https://github.com/DNSControl/dnscontrol

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目