基于 Dynv6 免费域名给VPS搭建DDNS

vps.dance 2022-03-27 2023-11-06 3882℃

本文基于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: ""

其他说明

标签: VPS, DDNS

非特殊说明, 所有文章均为原创.