【ddns-go】推荐一个Go语言Docker部署的DDNS管理平台

一、背景 我历尽艰辛,终于搞定了IPv6访问。但是遗留了一个问题:一但家里的路由器重新拨号,公网IP会发生变化,需要自己登录到Cloudflare手动去修改解析的地址为新的公网ip,太不高效。 所以本节试图在主机内部署ddns-go Docker容器,来实时监控ip是否发生变化,倘若变化,则通过cl

一、背景

  • 我历尽艰辛,终于搞定了IPv6访问。但是遗留了一个问题:一但家里的路由器重新拨号,公网IP会发生变化,需要自己登录到Cloudflare手动去修改解析的地址为新的公网ip,太不高效。
  • 所以本节试图在主机内部署ddns-go Docker容器,来实时监控ip是否发生变化,倘若变化,则通过cloudflare API自动修改指定域名解析的地址为新IP。

二、操作

2.1、安装docker

  • Deepin社区提供了安装Docker的方法,这里就不赘述了,基本上跟docker官网的方式一致。
  • Docker部署好了之后,则可以使用Docker命令部署容器,这里使用ddns-go镜像及使用介绍。
  • 2.2安装命令

    docker run -d --name ddns-go --restart=always --net=host -v /home/改成自己的路径/ddns-go:/root jeessy/ddns-go
    

例如

docker run -d --name ddns-go --restart=always --net=host -v /home/Lemon/ddns-go:/root jeessy/ddns-go
  • 因为网络是host模式,所以容器会占用宿主机的9876端口,容器跑起来后,则可以通过浏览器访问管理页面(http:局域网ip:9876)做配置了。

docker服务

2.2、ddns-go DNS服务商配置

  • 选择,Cloudflare,然后点击蓝色的“创建令牌->编辑区域DNS(使用模板)”跳转到Cloudflare Token配置页面。

选择Cloudflare

创建dns令牌

选择自己的域名

  • 最终会得到一个Token,然后将Token填写到管理页面的Token输入框内。

2.3、ipv4配置

  • 选择启用,然后在Domains填写自己想更新IP的域名,也可以填多个。

IPv4

2.4、IPv6配置

  • 这里根据自己家网络能获取到IPv6,以及是否要开放IPv6访问来决定。

ipv6配置

2.5、安全配置

  • 这里最好禁用公网访问,只让通过局域网或者当前主机进行访问,来提高安全性
  • 用户名+密码也配上,增加安全性

安全配置

2.6、Webhook

  • 可以用来增加一些额外的自定义事件,比如钉钉、飞书的通知

webhook

2.7、保存

  • 保存后,DDNS就会发起一次CloudFlare接口请求,比较ip是否发生变化,页面右侧会有比较日志。
2023/12/08 19:01:20 监听 :9876 ...
2023/12/08 19:04:25 配置文件已保存在: /root/.ddns_go_config.yaml
2023/12/08 19:04:25 "Remote: 192.168.1.4:61620" 请求登陆!
2023/12/08 19:04:29 "Remote: 192.168.1.4:61617" 请求登陆!
2023/12/08 19:05:26 配置文件已保存在: /root/.ddns_go_config.yaml
2023/12/08 19:05:28 更新域名解析 bbs.ning0818.top 成功!IP: 2409:8a1b:140:64e0:9ed3:c801:3e6:b7c1
2023/12/08 19:06:20 IPv6未改变,将等待 5 次后与DNS服务商进行比对

原文链接:3、使用ddns-go配置DDNS,通过Cloudflare Api修改指定域名对应的动态IP - 知乎 (zhihu.com)

LICENSED UNDER CC BY-NC-SA 4.0
Comment