Cloudflare DDNS 脚本 包含 Merlin 梅林支持
如果家里有可以一直开机的主机设备(比如树莓派),通过拨号网络为自己或者外网提供一些有限的服务,还是蛮有意思的。 Cloudflare 提供免费且功能强大的 DNS 及 CDN 服务,甚至提供非常方便的共享 SSL 证书。通过它,可以一定程度上保护家里提供服务的主机。在网络通畅、服务接口正常的前提下,还可以起到加速及分流的效果。但 Cloudflare 没有直接支持 DDNS 功能,虽然理论上梅林内置的 DDNS 功能中可以通过 DNS-O-Matic 的第三方服务支持 Cloudflare,但貌似不好用。所以找了一些相关的文章,通过脚本的方式实现动态 DNS 更新。 在开始以前需要注意的是: 用来更新 DDNS 的主机或者路由器需要能够 获取到公网 IP ; Cloudflare 的 CDN 功能仅支持 http/https 请求,且只能支持 部分端口 ; Cloudflare 虽然有不少国内 CDN 节点,但国内节点只支持 80/443 端口; 大部分省份的 ISP 都封锁了 80/443 端口,所以以上两条是死循环。 第一步:Cloudflare后台设置 在 Cloudflare 中选择主域名,并在 DNS 功能中添加需要设定 DDNS 的子域名 A 记录,初始记录可以写 127.0.0.1 或者其它任何 IP。 第二步:获得 Cloudflare API 中的相关信息 在本地 Shell 里面执行以下命令: curl https://www.cloudflare.com/api_json.html \ -d 'a=rec_load_all' \ -d 'tkn= Cloudflare_API_Key ' \ -d 'email= Cloudflare_Email ' \ -d 'z= Cloudflare_Domain ' 如果参数输入都正确的话,会返回一段 JSON 格式的代码,选择 需要动态更新 DNS 记录的子域名,并记录对应的 rec_id 和 name 。(找一个 JSON 格式化工具看会更方便点。) 第三步:建立从主机更新 Cloudflare DNS 记录的脚本 登录需要运行 DDNS 的主机(梅林路由器或Linux服务器),新建脚本 ddns_cloudfl...