cloudflare ddns 遇到了奇怪的表现

joenlee · 2024-9-14 16:51:08 · 69 次点击
在软路由跑了 ddns-go 解析到 cloudflare 一条 a 记录,改记录的 ip 地址会周期性的变成一个 50.114.xx.xx ,过几分钟又恢复正常 ip 。
检查了 ddns-go 的日志,均没有相关变更,尝试过一下操作:

1. 暂停 ddns-go 服务并删除 a 记录,观察一段时间后并未有新的 a 记录创建
2. 设置 ddns-go 的 ip 获取方式为 api 获取和接口获取,都会出现改问题

想查看 cloudflare 的 dns 修改日志,但是没找到,也没找到 dns 修改时邮件通知的设置。
举报· 69 次点击
登录 注册 站外分享
7 条回复  
elboble 小成 2024-9-16 21:52:58
用官方 API 手搓了一个,为了减少查询 cloudflare 的次数,把每次更新的 IP 自己存了一把,每 5 分钟比对一次,不一样再去更新 cloudflare 的。

脚本不到一百行,但是环境整了一天,arm 的板子发行版没更新了,高版本 python 只能自己编译,这个以前挺熟的,后来用 pyenv 就忘了,主要是 openssl 的依赖什么的。cpu 速度慢,configure 就 10 分钟,编译一次 1 小时。
yinmin 小成 2024-9-15 10:42:38
@vonsy #2 代码中获取域名 ip 有问题,要把 ping 改成 dig ( dns 查询 serfer 设置成域名 ns serfer )
baobao1270 小成 2024-9-15 08:09:21
重新生成 API Key 试试,别是 API Key 泄露了
COOOOOOde 小成 2024-9-15 01:06:09
最近也是把我家里 nas ipv6 通过 cloudflare 解析, 用了 2 天第 3 天发现用不了了, 总是解析错误地址, 网上一看这个地址是 facebook 的什么边缘网关, 好嘛 给我域名墙了。真无语
totoro625 小成 2024-9-14 19:51:41
是不是挂了美国的梯子,关了再观察一段时间试试
vonsy 小成 2024-9-14 19:48:46
和 shell 脚本更新, 写到 cron 中,5 分钟检查一次

#!/bin/sh

TOKEN=tokentokentokentokentokentokentoken
ZONE_ID=zoneidzoneidzoneidzoneidzoneidzoneidzoneid
IDENTIFIER_AAAA=identifieridentifieridentifieridentifieridentifieridentifier
TYPE=AAAA
NAME_AAAA=xxx.abc.com
PROXIED=false
TTL=1

IP=`ping -6 ${NAME_AAAA} -c 1 |awk 'NR==2 {print $4}'`
echo "IP of ${NAME_AAAA} is ${IP}"
CONTENT=`ip address show ens192 | awk '/inet6/ && /2408/ {print substr($2,0,length($2)-3)}'`
echo "Local IP is ${CONTENT}"

if [ "${CONTENT}" = "${IP}" ]; then
    echo "IP 相同,无需更新"
    exit
fi

echo "start ddns refresh"
if [ x"${CONTENT}" != x ]; then
    curl -X PUT "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$IDENTIFIER_AAAA" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" --data '{"type":"'$TYPE'","name":"'$NAME_AAAA'","content":"'$CONTENT'","proxied":'"$PROXIED"',"ttl":"'$TTL'"}'
    echo ${CONTENT} > /tmp/ddnsResult
fi
piero66 小成 2024-9-14 19:06:20
用 ue ddns
返回顶部