在RouterOS中使用Cloudflare的Worker接口更新DDNS
继《通过Cloudflare的Worker实现更新 DDNS 服务接口》实现了接口后,在RouterOS中通过接口调用实现动态更新DDNS
实现了Cloudflare的Worker接口后,就需要在RouterOS中进行调用来实现更新。
先说一下思路
- 在网络连接(更新IP地址后),触发更新任务
- 调用DDNS进行更新
创建更新脚本
更新脚本是修改自很早以前不知道哪里copy过来更新NoIP的一段脚本。实在是太久了,不知道具体的来源了。
在 System
> Scripts
下创建新脚本。并记住脚本名称(添加定时任务要用)
脚本如下,需要按需修改自己的内容(这里以阿里云为例,如果有多个则创建多个script)
1 | ##############Script Settings################## |
自动更新DDNS
方式一:定期更新
第一种方式是定期更新,即通过 Scheduler 定期调用script来实现更新。会造成浪费,即使IP没有更新,到了执行时间也会无脑调用脚本,虽然脚本中有判断ddns域名的值与当前的IP地址一致时不会调用接口。
在 System
> Scheduler
中添加一条定时任务
参数说明
name
:随便填,但建议填写方便识别的比如 ddns-aliyunInterval
: 间隔时间,比如每5分钟,则填写 00:05:00policy
: 按照实际勾选即可On Event
: 在输入框中,填入 scripts 中需要执行的脚本名称即可
填写完后点击OK保存即可。到了间隔时间就会触发脚本。也建议先点击一次 Run Script
按钮,试跑一次。
在scripts的脚本中添加了log,所以可以在Winbox左侧的Log中,可以看到具体的执行日志。
方式二:外网IP变更后更新
外网IP变更,一般都是由于PPPoE重新拨号才会触发变更。
先检查一下PPPoE拨号所使用的配置
这里我的配置是 default
。那么在 PPP
> Profile
> default
> On Up
中,填写对应脚本即可。
这里如果存在多个DDNS需要更新。则每行写一个scripts中的名称即可
这样,每次在PPPoE重新拨号后,都会触发一次脚本执行,动态更新DDNS。
需要注意的是,不同的域名服务商,允许设置的最小TTL值有差异,一般最小都是60,即1分钟。所以刚更新DDNS后,检查DDNS域名时查询到的IP地址,不一定是最新的,需要稍微等一下。因为最小1分钟,所以更新后也一般不会影响到正常的使用。
在RouterOS中使用Cloudflare的Worker接口更新DDNS
https://blog.bofoi.com/20221110/在routeros中使用cloudflare的worker接口更新ddns/