跳到正文
发现
ddns-updater:多服务商 DDNS 自动更新
命令行工具效率工具

ddns-updater:多服务商 DDNS 自动更新

一个用 Go 编写的轻量 DDNS 更新程序,支持数十家 DNS 服务商,定时更新 A/AAAA 记录并自带 Web 界面。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
v2.10.0
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

ddns-updater 是一个用 Go 编写的轻量级 DDNS(动态域名解析)更新程序,可以定时把域名的 A / AAAA 记录更新为当前 IP,支持数十家 DNS 服务商。它以 Docker 镜像和零依赖二进制文件的形式发布,并自带桌面端与移动端都能使用的 Web 管理界面。

主要功能

  • 定时更新多家 DNS 服务商的 A/AAAA 记录,包括 Cloudflare、DuckDNS、Namecheap、NameSilo、GoDaddy、DNSPod、Route53、DigitalOcean、Vultr、OVH、Gandi、NoIP、Hetzner、Hetzner Cloud、Vercel、Scaleway、Spaceship、ipv64 等数十家(完整列表见仓库 README 与 docs 目录)。
  • 内置 Web 用户界面,桌面与手机上均可访问查看。
  • 通过 Shoutrrr 发送通知,使用 SHOUTRRR_ADDRESSES 配置。
  • 使用 updates.json 持久化每条记录的旧 IP 与变更时间。
  • 容器镜像基于 Scratch,体积约 12MB,支持 amd64、386、arm64、armv7、armv6、s390x、ppc64le、riscv64 架构,并带健康检查(验证域名的 DNS 解析)。
  • 除 Docker 外还提供 Linux / Windows / macOS 零依赖二进制,也可在 AUR 中获取 Arch 包。
  • 可通过环境变量或命令行 flag 自定义行为,例如 LOG_LEVEL 对应 --log-level。

安装与使用

使用二进制程序

  1. 从 releases 页面 下载对应平台的程序;也可以安装 Go 后执行 go install github.com/qdm12/ddns-updater/cmd/ddns-updater@latest 自行构建安装。
  2. 在 Linux 和 macOS 上赋予执行权限:chmod +x ddns-updater。
  3. 在程序所在目录创建 data 目录,并在其中写入 data/config.json,例如:
{
    "settings": [
        {
            "provider": "namecheap",
            "domain": "sub.example.com",
            "password": "e5322165c1d74692bfa6d807100c0310"
        }
    ]
}
  1. 运行 ./ddns-updater(Windows 为 ./ddns-updater.exe)。

使用容器

mkdir data
chown 1000 data
chmod u+r+w+x data
touch data/config.json
chmod u+r data/config.json
docker run -d -p 8000:8000/tcp -v "$(pwd)"/data:/updater/data ghcr.io/qdm12/ddns-updater

也可以使用仓库中的 docker-compose.yml 执行 docker-compose up -d;Kubernetes 用户可参考仓库的 k8s 目录,Home Assistant 用户可参考 ha-ddns-updater 的安装说明。

注意事项

  • 容器默认以用户 ID 1000 运行,挂载的 data 目录需要属于该用户并具备读、写、执行权限;如需其他用户 ID,可用 --build-arg UID=<your-uid> 自行构建镜像,或用 --user="0" 以 root 运行(出于安全考虑不推荐)。
  • 如果没有挂载 /updater/data 目录,就不会有持久化的 updates.json 数据库文件,但程序仍可正常工作。
  • 也可以把 JSON 配置写成单行环境变量 CONFIG,它的优先级高于 config.json。
  • 不同 DNS 服务商需要的参数各不相同,需按 docs/ 目录中对应的服务商文档填写。
  • README 与 docs/ 目录按版本维护,查阅时应选择与所用版本一致的文档。

本作品整理自 GitHub 开源项目 qdm12/ddns-updater,原作者 @qdm12,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v2.10.0当前版本

    新增 Scaleway、ipv64.net、Vercel、Hetzner Cloud、Spaceship 等 DNS 服务商支持,并修复 DNS 解析连续失败导致挂起、Route53 通配符被替换、Ionos 在 Windows 下的路径拼接、DonDominio 参数等问题。

评论