V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
joenlee
V2EX  ›  DNS

cloudflare ddns 遇到了奇怪的表现

  •  
  •   joenlee · Sep 14, 2024 · 3414 views
    This topic created in 593 days ago, the information mentioned may be changed or developed.

    在软路由跑了 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 修改时邮件通知的设置。

    Supplement 1  ·  Sep 18, 2024

    把API token删除重建后恢复正常,可能是泄漏了

    7 replies    2024-09-16 21:52:58 +08:00
    piero66
        1
    piero66  
       Sep 14, 2024 via Android
    用 ue ddns
    vonsy
        2
    vonsy  
       Sep 14, 2024
    和 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
    totoro625
        3
    totoro625  
       Sep 14, 2024
    是不是挂了美国的梯子,关了再观察一段时间试试
    COOOOOOde
        4
    COOOOOOde  
       Sep 15, 2024
    最近也是把我家里 nas ipv6 通过 cloudflare 解析, 用了 2 天第 3 天发现用不了了, 总是解析错误地址, 网上一看这个地址是 facebook 的什么边缘网关, 好嘛 给我域名墙了。真无语
    baobao1270
        5
    baobao1270  
       Sep 15, 2024
    重新生成 API Key 试试,别是 API Key 泄露了
    yinmin
        6
    yinmin  
       Sep 15, 2024 via iPhone
    @vonsy #2 代码中获取域名 ip 有问题,要把 ping 改成 dig ( dns 查询 server 设置成域名 ns server )
    elboble
        7
    elboble  
       Sep 16, 2024
    用官方 API 手搓了一个,为了减少查询 cloudflare 的次数,把每次更新的 IP 自己存了一把,每 5 分钟比对一次,不一样再去更新 cloudflare 的。

    脚本不到一百行,但是环境整了一天,arm 的板子发行版没更新了,高版本 python 只能自己编译,这个以前挺熟的,后来用 pyenv 就忘了,主要是 openssl 的依赖什么的。cpu 速度慢,configure 就 10 分钟,编译一次 1 小时。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   995 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 18:20 · PVG 02:20 · LAX 11:20 · JFK 14:20
    ♥ Do have faith in what you're doing.