标签 阿里云 下的文章

前言:
RouterOS 路由器单纯的使用脚本无法实现阿里云动态域名功能(无法给请求数据加签),需要借助其它代码写的转发代理。以前是在一个 Windows 版的工具里增加了相关功能代码,后来服务器要关掉,准备找个能部署到网站上的版本。网上找了一圈发现很多代码都是基于阿里云 SDK 的,需要在服务器上安装,而我用的那个网站空间只能上传文件不支持安装。于是自己写了一个基于阿里云 OpenAPI V3 版签名机制的 PHP 版本,只有一个 PHP 文件和一个 RouterOS 脚本,实测使用正常。顺带感慨:AI 辅助编程真的很方便。

RouterOSv7 For Aliyun DDNS
支持阿里云域名动态解析的 RouterOS V7 脚本及对应的转发代理。

说明:

  • 需要 RouterOS 脚本搭配一个转发代理程序使用。转发代理使用阿里云的 V3 版签名方案,只有一个 PHP 文件,不需要安装 SDK,可部署到各种 PHP 网站空间。
  • 只支持 RouterOS V7 以上版本。转发代理功能经过简化,只支持以 GET 方式进行域名查询和修改两个功能。
  • RouterOS 的开头部分为用户变量,需要自行修改,详见注释。
  • 域名的 DNS 服务器要指向阿里云。需要在阿里云上自行配置一个支持 DNS 解析权限的 AccessKey。
  • 为防止转发代理被滥用,使用了安全令牌(securityToken)和白名单,安全令牌需要 RouterOS 脚本和 PHP 代码中保持一致,白名单在 PHP 代码中添加。详见代码中的注释。
  • RouterOS 脚本中增加了一个通过钉钉机器人发送消息通知功能,若不需要可自行屏蔽。
  • RouterOS 脚本目前的设置是 IPV4,如要支持 IPV6,需要将 recordType 的值由 A 改为 AAAA,同时修改获取公网 IP 的方式:如从支持 IPV6 的路由器接口获取 IP,或者由 https://6.ipw.cn 之类的网站返回 IP。
  • 转发代理目前只有一个 PHP 版本,以后可能会增加其它语言版本。
  • PHP 端有日志功能,并可自行关闭,详见代码中用户配置部分。日志中不会记录用户的 AccessKeySecret。
  • RouterOS 脚本建议由 PPPOE 拨号 的 Profiles 配置中的 On Up 脚本中调用。最好是先用 delay 3s 命令延时几秒。
  • RouterDDNS.txt 为 RouterOS 脚本文件。
  • aliyun-ddns.php 为 PHP 转发代理。

下载:RouterOSv7-Aliyun-DDNS.zip

https://github.com/SilenceCCF/RouterOSv7-Aliyun-DDNS