cloudflare ipv6 ddns

  • cloudflare ipv6 ddns

  • 资料来源:

    <>

  • 更新

    1
    20.09.27 初始化

导语

最近有连回住处的需要,但是 nat 穿透的几款都用过效果都欠佳..最后还是走了 ipv6 ddns 的路.

ddns 还是最熟悉的老朋友 cloudflare ,但是 cloudflare 最近不支持 一系列免费域名使用 ddns 了,又一笔费用…

废话不多说,进入正题.

cloudflare ipv6 ddns

说道脚本自然右转 -> github,找到一个 cloudflare-ddns-script 但是似乎因为 api 变动导致失效了.

fork 修正以后在 这里.使用与原版相同.

使用

前提是,你已经创建了子域名,有了 Globel ID.

需要修改 cloudflare-ddns.sh

1
2
3
4
auth_email="[email protected]"  #你的CloudFlare注册账户邮箱
auth_key="*****************" #你的cloudflare账户Globel ID
zone_name="Your main Domain" #你的域名
record_name="Your Full Domain" #完整域名

先执行一下测试

1
bash /home/username/cloudflare-ddns.sh

正常会提示 IP changed to: xxxxx 或者 IP has not changed.

输入 crontab -e 添加 */5 * * * * /home/username/cloudflare-ddns.sh >/dev/null 2>&1 让系统每 5 分钟运行一次脚本.

脚本获取到的授权会存放在用户根目录 cloudflare.ids,ip 存放在 ip.txt,log 存放在 cloudflare.log 中.(严格来说不应该在根目录下创建文件的,不过懒得改了)

如果遇到错误,需要删除用户根目录下 cloudflare.idsip.txt 重新执行脚本.

fix 的地方

80 行少了一个 \ 导致拼接字符串错误.

81 行,api 变动导致返回一坨字符串,需要提取第一个 "id:xxx" 的内容.

95 行,执行成功后返回的消息没有了 success 字段,直接获取设置成功的 ip 与现在的 ip 比较,一致则算成功.