# curl checkip.dyndns.org -v

  • Trying 158.101.44.242:80...
  • Connected to checkip.dyndns.org (158.101.44.242) port 80 (#0)

    GET / HTTP/1.1
    Host: checkip.dyndns.org
    User-Agent: curl/7.81.0
    Accept: /
  • Recv failure: Connection reset by peer
  • Closing connection 0
    curl: (56) Recv failure: Connection reset by peer

搞得我几个基于 ddns 的网络服务都挂了,他们图啥呢?
别说我不知道换,这个是群晖内置的,排查不得花时间吗?

问题是:群晖 ddnsd 获取不到 v4 的 external ip ,是因为这个 url 无法访问,那么如何让群晖 ddnsd 这个命令能执行成功呢?

自己搭建一个

这是一种自信

可能解析了很多敏感域名吧,上黑名单了

国内的 ddns 都得实名了

蒸馍?你不服气吗?

封的是 dyndns.org ,子域名当然在连带范围内

这是一种自信

TPLink 、华硕,目前已经 2 家的 DDNS 被 Ban 了,发生什么都不奇怪了

自己注册个域名,用 github.com/favonia/cloudflare-ddns 更新解析就行了

我用阿里云函数自己部署了一个 checkip 。

ddns 需要实名,比如华硕就懒得费事直接取消掉,所以我换了 noip 。

分流做好,更新走代理就行

ddnsip.cn

任意跑在 Cloudflare 上的网址加上 /cdn-cgi/trace 就可以获取到来源 IP 地址了,比如 api.cloudflare.com/cdn-cgi/trace

前几周封 DoH 的时候,把 1.1.1.1 的 https 全阻断了,之前用的 ddns 脚本是从 1.1.1.1 获取的,得去把域名换了个能访问的才行

问题是:群晖 ddnsd 获取不到 v4 的 external ip ,是因为这个 url 无法访问,那么如何让群晖 ddnsd 这个命令能执行成功呢?

劫持这个域名解析到一个正常 IP

去群晖的网络设置里自己改一下 dns ,然后过段时间,它的 ddns 就能获取到外网 ip 了。月初就发现这个问题了。

我的群晖 DDNS 获取外网 IP 用的是这个地址
checkip.synology.com/

查了下版本是 DSM 6.2-23739

给个思路,尝试将 ddnsd 硬编码的 checkip url 替换为自己指定的,记得先备份原版二进制

root@debian-build:/tmp# strings ddnsd | grep checkip
checkipv6.synology.com
checkip.synology.com
checkip.dyndns.org
root@debian-build:/tmp# sed -i 's/checkip.dyndns.org/4.ipw.cn/g' ddnsd

看了一下 checkip.dydns.org/checkip.synology.com 返回的数据格式是一样的,你单纯的换域名可能不行

我在网关把 checkip.dydns.org 导到另一个 webserver 上,然后 webserver 负责返回和 checkip.dydns.org 相同格式的内容,ms 可以了。