使用ddns-go实现自动配置IPv6的DDNS
使用ddns-go实现自动配置IPv6的DDNS
本文介绍如何使用开源工具ddns-go实现IPv6的DDNS自动配置,以解决PPPoE拨号获取的IPv6地址变化导致网络服务中断的问题。
背景说明
在使用PPPoE拨号获取IPv6地址时,可能会遇到地址变化导致网络服务中断的问题。例如,当路由器重新拨号后,获取到的IPv6地址可能发生变化,这将导致之前配置的GRE over IPv6隧道失效。
虽然可以通过配置DDNS来解决IPv4地址变化的问题,但目前主流的域名服务商对IPv6的DDNS支持并不完善。幸运的是,GitHub上的开源项目ddns-go提供了一个解决方案,支持多种主流域名服务商,包括阿里云、腾讯云、华为云等。
ddns-go工具介绍
ddns-go是一个功能强大的DDNS工具,支持ARM和x86架构,能够运行在macOS、Windows、Linux等主流操作系统上。它支持对接主流的域名服务商,包括:
- 阿里云
- 腾讯云
- 华为云
- 百度云
- Dnspod
- Cloudflare
- Callback
- Porkbun
- GoDaddy
- Namecheap
- NameSilo
- Dynadot
配置步骤
环境准备
首先,确保网卡的IPv6配置为Automatic自动获取模式。可以通过以下命令查看接口获取到的IPv6地址信息:
从命令行输出可以看到,系统获取了两个IPv6地址。其中,上面的IPv6地址是临时动态地址,地址有效期比另一个短一半。
下载安装
从GitHub下载适用于Ubuntu系统的ddns-go程序文件:
https://github.com/jeessy2/ddns-go/releases/download/v6.6.9/ddns-go_6.6.9_linux_x86_64.tar.gz
下载完成后解压得到ddns-go文件。
命令行参数说明
ddns-go的主要命令行参数包括:
-c
:自定义配置文件路径,默认为/root/.ddns_go_config.yaml
-cacheTimes
:间隔N次与服务商比对-dns
:自定义DNS服务器,比如8.8.8.8-f
:DDNS同步的间隔时间(秒)-l
:管理页面的监听地址,默认为9876-noweb
:不启动web服务-resetPassword
:重置密码-s
:配置ddns-go服务的安装、卸载与重启-skipVerify
:跳过证书验证-u
:更新ddns-go的版本至最新-v
:查看ddns-go的版本信息
安装配置
使用以下命令安装ddns-go,设置每60秒检查一次本地IPv6地址变化,且每30分钟对比一次IPv6变化:
./ddns-go -s install -f 60 -cacheTimes 30
安装完成后,访问http://192.168.1.85:9876
进行配置。
登录后,需要选择DNS服务商,并配置AccessKey ID和AccessKey Secret。如果没有AccessKey ID和AccessKey Secret,需要到阿里云官网的AccessKey控制台进行配置,点击创建即可一键生成。注意,AccessKey只在创建时提供Secret,后续不可再进行查询,所以请在展示页面及时保存或下载CSV文件,避免无法查询。
关闭掉IPv4功能,仅启用IPv6部分,获取IP方式选择“通过网卡获取”,并在Domains处配置要解析的域名。
最后点击页面底部的“保存”按钮。
验证配置
ddns-go开始执行任务,成功新增域名解析,解析值为接口的第一个IPv6地址,并开始执行定时任务。
在云解析DNS控制台,可以看到新增的AAAA记录。
测试通过域名进行访问,解析成功且能正常访问,测试成功。
总结
通过使用ddns-go工具,可以轻松实现IPv6的DDNS自动配置,有效解决了PPPoE拨号获取的IPv6地址变化导致网络服务中断的问题。该工具功能强大,支持多种主流域名服务商,兼容性好,配置简单,适合有一定技术基础的用户使用。