本文基于Dynv6, 搭配ddns-go实现动态dns域名解析. 现在很多动态IP的VPS或NAT不提供ddns域名了, 所以需要自己搭建.
Dynv6 是国外动态DNS服务商(DDNS), 提供免费服务, 支持IPv4/IPv6, 有多个域名可供选择. 需要邮箱注册, 并验证使用.
官网: https://dynv6.com/
Dynv6 使用介绍
注册完账号, 在My Zones
- Create new Zone
可以创建自己的二级域名.Name
填写想用的二级域名, 比如 ddns-test
, 域名后缀 比如选 dynv6.net
.IPv4 Address
填写当前VPS服务的IP地址
然后就得到了一个二级域名 ddns-test.dynv6.net
, 在 instructions
面板.Update-URL
为更新域名IP的API.Benutzername
为 下面用到的 <username>
秘钥.
基于ddns-go 配置自动更新DDNS
安装ddns-go可参考 ddns-go 安装.
安装ddns-go后, 浏览器打开 ddns-test.dynv6.net:9876
, 即可配置.
Ps: 如果是搭建在NAT机器, 需要开一个端口映射到9876端口, 然后通过这个端口访问.
ddns-go 配置
DNS服务商 选
Callback
,URL
类似这样:
http://dynv6.com/api/update?hostname=#{domain}&token=<username>&ipv4=#{ip}
#{domain}
为变量, ddns-go会自动输出 Domains配置的域名.<username>
改为上面Benutzername
位置的 秘钥令牌.#{ip}
为变量, ddns-go会自动输出 VPS当前的IP地址.
- IPv4 Domains 添加一行
ddns-test.dynv6.net
所以最终的Callback URL, 大概是这样:
如果是IPv4: http://dynv6.com/api/update?hostname=#{domain}&token=XXX&ipv4=#{ip}
如果是IPv6: http://dynv6.com/api/update?hostname=#{domain}&token=XXX&ipv6=#{ip}
然后就可以不用管ip变动了, ddns-test.dynv6.net
会自动更新DNS的IP记录.
以后, 只需要使用 ddns-test.dynv6.net
访问VPS即可.
ddns-go 配置文件 例子
# /root/ddns-go.yaml, 比如: ddns-test.dynv6.net (这里使用ipv6为例)
ipv4:
enable: false # 是否启用ipv4 ddns
gettype: url
url: http://ipv4.icanhazip.com, https://myip4.ipip.net, http://api-ipv4.ip.sb/ip, https://ip.3322.net
netinterface: ""
domains:
- ddns-test.dynv6.net
ipv6:
enable: true # 是否启用ipv6 ddns
gettype: url
url: http://ipv6.icanhazip.com, https://myip6.ipip.net, http://api-ipv6.ip.sb/ip, https://v6.ident.me
netinterface: ""
domains:
- ddns-test.dynv6.net
dns:
name: callback
# id: http://dynv6.com/api/update?hostname=#{domain}&token=YOUR_TOKEN&ipv4=#{ip}&ipv6=auto # 启用ipv4时
id: http://dynv6.com/api/update?hostname=#{domain}&token=YOUR_TOKEN&ipv4=auto&ipv6=#{ip} # 启用ipv6时
secret: ""
user:
# 通过 ddns-test.dynv6.net:9876 访问时 管理员的用户名/密码
username: YOUR_USER_NAME
password: YOUR_PASSWORD
# webhook:
# webhookurl: https://api.telegram.org/XXX:XXX/sendMessage
# webhookrequestbody: '{"chat_id": "","text": "IP Changed: #{ipv4Addr},#{ipv4Result}, #{ipv4Domains}"}, #{ipv6Addr},#{ipv6Result}, #{ipv6Domains}"}'
notallowwanaccess: false # 是否禁止外网通过:9876访问面板
ttl: ""
其他说明
- 为什么使用 ddns-go
Dynv6 官方文档, 提供脚本/ddclient 更新DNS的说明, 但配置比较繁琐, 还需要写Crontab定时任务.
而 ddns-go 简单方便, 定时更新/通知/配置 等常用功能都满足了, 而且不限于Dynv6 一个平台, 推荐使用. - Dynv6 的优势
比用自己的域名安全, 如果用自己域名, 配置Alidns/Dnspod/Cloudflare等平台的秘钥, 万一秘钥被泄露就危险了. 其他的 免费动态dns服务