所在位置:
首页 >
营销资讯 >
建站知识 > 3、使用DDNS-GO配置DDNS,通过cloudflare api修改指定域名对应的动态ip
3、使用DDNS-GO配置DDNS,通过cloudflare api修改指定域名对应的动态ip
时间:2023-02-19 23:36:01 | 来源:建站知识
时间:2023-02-19 23:36:01 来源:建站知识
3、使用DDNS-GO配置DDNS,通过cloudflare api修改指定域名对应的动态ip:
一、背景
- 前边文章我们通过手动添加A记录将@记录解析到自己主机的公网ip,并且设置了边缘节点的回源端口为2000,来避开敏感端口。但是遗留了一个问题:一但家里的路由器重新拨号,公网ip会发生变化,需要自己登录到cloudflare手动去修改解析的地址为新的公网ip,太不高效。
- 所以本节试图在主机内部署DDNS-GO docker容器,来实时监控ip是否发生变化,倘若变化,则通过cloudflare api自动修改指定域名解析的地址为新ip。
二、操作
2.1、安装docker
- deepin社区提供了安装docker的方法,这里就不赘述了,基本上跟docker官网的方式一致。
- docker部署好了之后,则可以使用docker命令部署容器,这里使用ddns-go镜像及使用介绍。
docker run -d --name ddns-go --restart=always --net=host -v /home/改成自己的路径/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的域名,也可以填多个。
ipv42.4、ipv6配置
- 这里根据自己家网络能获取到ipv6,以及是否要开放ipv6访问来决定。
ipv6配置2.5、安全配置
- 这里最好禁用公网访问,只让通过局域网或者当前主机进行访问,来提高安全性
- 用户名+密码也配上,增加安全性
安全配置2.6、Webhook
- 可以用来增加一些额外的自定义事件,比如钉钉、飞书的通知
webhook2.7、保存
- 保存后,ddns就会发起一次cloudflare接口请求,比较ip是否发生变化,页面右侧会有比较日志。
保存后,请求日常检测- 至此,ddns的配置就完成了。
- 为了测试,此时可以把主机关机,然后再开机,让其进行一次自动拨号获取最新的公网ip,然后自动更新域名解析。因为docker服务是开机启动的,并且容器也配置了--restart=always参数,会随docker启动后自动启动,所以ddns-go检测到ip变化会及时更新。
2.8、cloudflare ddns翻车了【捂脸】
- 从cloudflare接口返回的错误来看:cloudflare不再支持.cf .ga .ml .tk 顶级域名(都是freenom提供的免费域名),通过调用api的方式进行配置了。只能登录cloudflare 控制面板手动配置。
cloudflare api报错- 所以,如果使用上述顶级域名,则无法使用cloudflare的ddns服务。
三、最后
- 虽然我们通过ddns-go工具完成了ddns的配置,但是cloudflare对免费域名不再支持api更新,导致ddns无法使用,所以,下一步则尝试修复这一问题,目前感觉可行的方案有:1、花点小钱买个域名;2、换一家dns厂商,但是换了之后可能cloudflare的免费cdn就得放弃了。