RouterOS DDNS
为 MikroTik RouterOS 路由器提供的免费脚本与接口,适用于 RouterOS v7 最新的 stable 与 long-term 版本。
让路由器在公网 IP 变化时,自动更新你的域名解析。支持 IPv4 与 IPv6,无需在路由器上处理 API 签名。
工作原理
路由器上的脚本每次运行时,在路由器本地取得当前的公网 IP,并与域名的解析结果比较。只有两者不一致时,才会把这个 IP 连同域名和 API 密钥一起提交到本服务,由本服务调用 DNS 服务商的接口更新解析记录。
要写入的 IP 由脚本明确提交,而不是由服务端根据请求来源推断,所以多 WAN 或有策略路由时也不会写错线路。
请求通过 HTTPS 发送,脚本会校验服务器证书。本服务不保存你的 Access Secret。
脚本下载
使用方法
- 在 DNS 服务商处先手动添加一条 A(IPv4)或 AAAA(IPv6)记录,值可以随便填。
- 创建 API 密钥(Access ID / Access Secret)。
- 打开下载的脚本,填写顶部的域名、
service和密钥,以及 WAN 接口名(局域网设备版填电脑的 MAC 地址和 LAN 接口名)。 - 在 RouterOS 的
System → Scripts中新建脚本,粘贴内容。 - 在
System → Scheduler中添加定时任务运行该脚本,例如每 10 分钟一次。
运行结果会写入路由器日志,以 DDNS:(IPv4)或 DDNSv6:(IPv6)开头。更新成功时显示 IP update from … to …,解析已是最新时显示 IP not changed。
service 参数
| 取值 | 服务商 | 说明 |
|---|---|---|
alidns | 阿里云 云解析 DNS | 也可写作 aliyun |
aliesa | 阿里云 ESA | 站点需使用 NS 接入 |
dnspod | 腾讯云 DNSPod | 使用腾讯云 API 密钥(SecretId / SecretKey) |
安全建议
建议为 DDNS 单独创建 RAM 子账号(阿里云)或子用户(腾讯云),只授予 DNS 解析的管理权限,不要使用主账号密钥。
用 WireGuard 把多台 RouterOS 路由器组成网状网络时,每台路由器的公网 IP 都可能变化。Mesh 脚本让各节点定时到本服务“签到”,自动把其他节点的最新地址和端口写到本机的 WireGuard peer 里,不需要为每个节点单独配置 DDNS。
工作原理
每次运行时,脚本会把本机的系统名称、WireGuard 公钥和监听端口提交到本服务。本服务以这次请求的来源 IP 作为该节点的地址登记下来,并返回同一 Mesh 内其他节点的信息。
脚本按公钥找到对应的 peer,只在地址或端口有变化时才更新它的 endpoint。
脚本下载
使用方法
- 在每台路由器上创建 WireGuard 接口,并手动把其他节点添加为 peer(公钥、Allowed Address 等)。脚本只更新已有 peer 的 endpoint,不会新增或删除 peer。
- 为每台路由器设置不同的系统名称(
System → Identity),只能包含字母、数字、_和-,不能是默认的MikroTik。 - 打开下载的脚本,填写 Mesh ID 和 WireGuard 接口名。同一 Mesh 内的所有节点使用相同的 Mesh ID。如果用 IPv6 地址组网,把服务器改为
ddns6.vsean.net。 - 在每台路由器上添加脚本和定时任务。运行结果会写入日志,以
Mesh:开头。
安全建议
Mesh ID 长度为 8~32 位,只能包含小写字母、数字、_ 和 -。知道 Mesh ID 就能加入这个 Mesh,所以它相当于密码,请使用足够长的随机字符串。