RouterOS DDNS

为 MikroTik RouterOS 路由器提供的免费脚本与接口,适用于 RouterOS v7 最新的 stable 与 long-term 版本。

让路由器在公网 IP 变化时,自动更新你的域名解析。支持 IPv4 与 IPv6,无需在路由器上处理 API 签名。

阿里云 DNS 阿里云 ESA 腾讯云 DNSPod

工作原理

路由器上的脚本每次运行时,在路由器本地取得当前的公网 IP,并与域名的解析结果比较。只有两者不一致时,才会把这个 IP 连同域名和 API 密钥一起提交到本服务,由本服务调用 DNS 服务商的接口更新解析记录。

要写入的 IP 由脚本明确提交,而不是由服务端根据请求来源推断,所以多 WAN 或有策略路由时也不会写错线路。

请求通过 HTTPS 发送,脚本会校验服务器证书。本服务不保存你的 Access Secret。

脚本下载

IPv4 DDNS 读取 WAN 接口上的地址。如果是内网地址或运营商级 NAT 地址(光猫拨号等情况),会通过外部服务获取真实的公网 IP。
下载 ddns.rsc
IPv6 DDNS(路由器) 把 WAN 接口上的公网 IPv6 地址更新到域名,自动跳过 ULA 地址和已弃用的地址。
下载 ddnsv6.rsc
IPv6 DDNS(局域网设备) 按 MAC 地址在 LAN 接口(通常是 bridge)上找到某台电脑的公网 IPv6 地址,并更新到域名。只要当前解析仍是这台电脑的地址之一就不更新,避免在稳定地址和临时地址之间来回切换。
下载 ddnsv6-for-pc.rsc

使用方法

  1. 在 DNS 服务商处先手动添加一条 A(IPv4)或 AAAA(IPv6)记录,值可以随便填。
  2. 创建 API 密钥(Access ID / Access Secret)。
  3. 打开下载的脚本,填写顶部的域名、service 和密钥,以及 WAN 接口名(局域网设备版填电脑的 MAC 地址和 LAN 接口名)。
  4. 在 RouterOS 的 System → Scripts 中新建脚本,粘贴内容。
  5. 在 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 Mesh 同步 登记本机信息,并更新同一 Mesh 内其他节点的 endpoint 地址与端口。
下载 mesh.rsc

使用方法

  1. 在每台路由器上创建 WireGuard 接口,并手动把其他节点添加为 peer(公钥、Allowed Address 等)。脚本只更新已有 peer 的 endpoint,不会新增或删除 peer。
  2. 为每台路由器设置不同的系统名称(System → Identity),只能包含字母、数字、_ 和 -,不能是默认的 MikroTik。
  3. 打开下载的脚本,填写 Mesh ID 和 WireGuard 接口名。同一 Mesh 内的所有节点使用相同的 Mesh ID。如果用 IPv6 地址组网,把服务器改为 ddns6.vsean.net。
  4. 在每台路由器上添加脚本和定时任务。运行结果会写入日志,以 Mesh: 开头。

安全建议

Mesh ID 长度为 8~32 位,只能包含小写字母、数字、_ 和 -。知道 Mesh ID 就能加入这个 Mesh,所以它相当于密码,请使用足够长的随机字符串。