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 修正以后在 这里.使用与原版相同.
25.02.05 小重构, 现在支持 v4 和 v6 同时更新, 单独配置 ip 地址来源
- 话说真的很难想象, 这个脚本已经连续无问题的运转了快 5 年了……
使用
前提是,你已经创建了子域名,有了 Globel ID.
需要修改 cloudflare-ddns.sh
1 | auth_email="[email protected]" #你的CloudFlare注册账户邮箱 |
先执行一下测试
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.ids
和 ip.txt
重新执行脚本.
Fix 的地方
80 行少了一个 \
导致拼接字符串错误.
81 行,api 变动导致返回一坨字符串,需要提取第一个 "id:xxx"
的内容.
95 行,执行成功后返回的消息没有了 success
字段,直接获取设置成功的 ip 与现在的 ip 比较,一致则算成功.