ddns-go

ddns-go

开源动态DNS解析工具支持多平台和多服务商

ddns-go是一个开源的动态DNS解析工具,可自动获取IPv4和IPv6地址并更新DNS记录。支持多种主流DNS服务商,兼容多种操作系统和硬件架构,可通过Docker部署。它提供Web界面进行配置,具备多域名解析、自定义TTL和Webhook通知等功能。ddns-go适用于需要动态DNS服务的各类场景,能确保域名始终解析到正确IP地址。

ddns-go动态域名解析DNS服务IPv4IPv6Github开源项目

ddns-go

GitHub发布版本 GitHub发布下载量 Go版本

中文 | English

自动获取你的公网IPv4或IPv6地址,并解析到对应的域名服务。

特性

  • 支持Mac、Windows、Linux系统,支持ARM、x86架构
  • 支持的域名服务商:阿里云 腾讯云 Dnspod Cloudflare 华为云 Callback 百度云 Porkbun GoDaddy Namecheap NameSilo Dynadot
  • 支持通过接口/网卡/命令获取IP
  • 支持以服务方式运行
  • 默认每5分钟同步一次
  • 支持同时配置多个DNS服务商
  • 支持多个域名同时解析
  • 支持多级域名
  • 通过网页配置,简单方便,默认勾选禁止从公网访问
  • 网页中可方便快速查看最近50条日志
  • 支持Webhook通知
  • 支持TTL
  • 支持部分DNS服务商传递自定义参数,实现地域解析/多IP等功能

[!注意] 建议在启用公网访问时,使用Nginx等反向代理软件启用HTTPS访问,以确保安全性。常见问题

在系统中使用

  • Releases下载并解压ddns-go

  • 安装服务

    • Mac/Linux: sudo ./ddns-go -s install
    • Windows(以管理员身份打开cmd): .\ddns-go.exe -s install
  • [可选] 卸载服务

    • Mac/Linux: sudo ./ddns-go -s uninstall
    • Windows(以管理员身份打开cmd): .\ddns-go.exe -s uninstall
  • [可选] 支持安装时附加参数

    • -l 监听地址
    • -f 同步间隔时间(秒)
    • -cacheTimes 间隔N次与服务商比对
    • -c 自定义配置文件路径
    • -noweb 不启动web服务
    • -skipVerify 跳过证书验证
    • -dns 自定义DNS服务器
    • -resetPassword 重置密码
  • [可选] 参考示例

    • 10分钟同步一次,并指定了配置文件地址
      ./ddns-go -s install -f 600 -c /Users/name/.ddns_go_config.yaml
    • 每10秒检查一次本地IP变化,每30分钟对比一下IP变化,实现IP变化即时触发更新且不会被服务商限流,如果使用接口获取IP,需要注意接口限流
      ./ddns-go -s install -f 10 -cacheTimes 180
    • 重置密码
      ./ddns-go -resetPassword 123456
  • [可选] 使用Homebrew安装ddns-go

    brew install ddns-go

在Docker中使用

  • 挂载主机目录,使用docker host模式。可将/opt/ddns-go替换为你主机上的任意目录,配置文件为隐藏文件

    docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go
  • 在浏览器中打开http://主机IP:9876,并修改你的配置

  • [可选] 使用ghcr.io镜像

    docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root ghcr.io/jeessy2/ddns-go
  • [可选] 支持启动时带参数 -l监听地址 -f间隔时间(秒)

    docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go -l :9877 -f 600
  • [可选] 不使用docker host模式

    docker run -d --name ddns-go --restart=always -p 9876:9876 -v /opt/ddns-go:/root jeessy/ddns-go
  • [可选] 重置密码

    docker exec ddns-go ./ddns-go -resetPassword 123456 docker restart ddns-go

使用IPv6

  • 前提:你的电脑或终端能正常获取IPv6,并能正常访问IPv6
  • Windows/Mac:推荐在系统中使用,Windows/Mac桌面版的docker不支持--net=host
  • 群晖:
    • 在套件中心下载docker并打开
    • 在注册表中搜索ddns-go并下载
    • 映像 -> 选择jeessy/ddns-go -> 启动 -> 高级设置 -> 网络中勾选使用与Docker Host相同的网络,高级设置中勾选启动自动重新启动
    • 在浏览器中打开http://群晖IP:9876,修改你的配置,完成
  • Linux的x86或arm架构,推荐使用Docker的--net=host模式。参考在Docker中使用
  • 在虚拟机中使用可能能正常获取IPv6,但不能正常访问IPv6

Webhook

  • 支持webhook,域名更新成功或不成功时,会回调填写的URL

  • 支持的变量

    变量名说明
    #{ipv4Addr}新的IPv4地址
    #{ipv4Result}IPv4地址更新结果:未改变 失败 成功
    #{ipv4Domains}IPv4的域名,多个以,分割
    #{ipv6Addr}新的IPv6地址
    #{ipv6Result}IPv6地址更新结果:未改变 失败 成功
    #{ipv6Domains}IPv6的域名,多个以,分割
  • 如RequestBody为空则为GET请求,否则为POST请求

  • <details><summary>Server酱</summary>
    https://sctapi.ftqq.com/[SendKey].send?title=你的公网IP变了&desp=主人IPv4变了#{ipv4Addr},域名更新结果:#{ipv4Result}
    
  • <details><summary>Bark</summary>
    https://api.day.app/[YOUR_KEY]/主人IPv4变了#{ipv4Addr},域名更新结果:#{ipv4Result}
    
    </details>
  • <details><summary>钉钉</summary>
  • 钉钉电脑端 -> 群设置 -> 智能群助手 -> 添加机器人 -> 自定义

    • 仅勾选"自定义关键词",输入的关键字必须包含在RequestBody的content中,例如:"你的公网IP变了"
    • 在URL中输入钉钉提供给你的"Webhook地址"
    • 在RequestBody中输入
      { "msgtype": "markdown", "markdown": { "title": "你的公网IP变了", "text": "#### 你的公网IP变了 \n - IPv4地址:#{ipv4Addr} \n - 域名更新结果:#{ipv4Result} \n" } }
    </details>
  • <details><summary>飞书</summary>
    • 飞书电脑端 -> 群设置 -> 添加机器人 -> 自定义机器人
    • 安全设置仅勾选"自定义关键词",输入的关键字必须包含在RequestBody的content中,例如:"你的公网IP变了"
    • 在URL中输入飞书提供给你的"Webhook地址"
    • 在RequestBody中输入
      { "msg_type": "post", "content": { "post": { "zh_cn": { "title": "你的公网IP变了", "content": [ [ { "tag": "text", "text": "IPv4地址:#{ipv4Addr}" } ], [ { "tag": "text", "text": "域名更新结果:#{ipv4Result}" } ] ] } } } }
    </details>
  • <details><summary>Telegram</summary>

    ddns-telegram-bot

    </details>
  • <details><summary>plusplus 推送加</summary>
    • 获取token
    • 在URL中输入 https://www.pushplus.plus/send
    • 在RequestBody中输入
      { "token": "你的token", "title": "你的公网IP变了", "content": "你的公网IP变了 \n - IPv4地址:#{ipv4Addr} \n - 域名更新结果:#{ipv4Result} \n" }
    </details>
  • <details><summary>Discord</summary>
    • Discord任意客户端 -> 服务器 -> 频道设置 -> 集成 -> 查看Webhook -> 新建Webhook -> 复制Webhook网址
    • 在URL中输入Discord复制的"Webhook网址"
    • 在RequestBody中输入
      { "content": "域名 #{ipv4Domains} 动态解析 #{ipv4Result}.", "embeds": [ { "description": "#{ipv4Domains} 的动态解析 #{ipv4Result}, IP: #{ipv4Addr}", "color": 15258703, "author": { "name": "DDNS" }, "footer": { "text": "DDNS #{ipv4Result}" } } ] }
    </details>
  • 查看更多Webhook配置参考

回调

  • 通过自定义回调可支持更多的第三方DNS服务商

  • 配置的域名有几行,就会回调几次

  • 支持的变量

    变量名说明
    #{ip}新的IPv4/IPv6地址
    #{domain}当前域名
    #{recordType}记录类型 AAAAA
    #{ttl}TTL
  • 如果RequestBody为空则为GET请求,否则为POST请求

  • 回调配置参考

界面

截图

开发与自行编译

  • 如果你喜欢从源代码编译自己的版本,可以使用本项目提供的Makefile进行构建
  • 使用 make build 生成本地编译后的 ddns-go 可执行文件
  • 使用 make build_docker_image 自行编译Docker镜像

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多