网吧VIP官方网站

    官方信息
    网站首页 > 牛逼信息 > 使用教程

    RouterOS利用aliyun的API接口实现DDNS动态解析

    2021-07-21 14:12:23 网吧VIP官方网站 阅读

    本文主要讲解如何借助阿里云aliyun的云解析API接口来实现RouterOS(以下简称ROS)的DDNS动态解析。


    一、创建访问控制RAM的AccessKey

    我这边简单的讲讲如何申请开通:

    1、阿里云网站 --> 产品 --> 安全 --> 应用身份服务,这个就是控制API ,用户管理,新建用户,填写用户名和勾上“为该用户自动生成AccessKey”,保存好这个accesskey。


    2、策略管理 --> 自定义授权策略,新建授权策略,选择空白模版,授权策略名称随便填(如alidns),策略内容为下面的内容(修改下面内容中的域名为你自己要做DDNS的域名)

    action是api的接口,只接受AddDomainRecord(增加域名解析),DescribeDomainRecords(输出域名解析列表)和UpdateDomainRecord(修改域名解析记录)

    Resource是指被授权的具体对象,这边domain/myxzy.com需要修改成你自己的域名domain/xxx.com。这样就是授权对象是该域名

    {
    "Version": "1",
    "Statement": [
    {
    "Action": [
    "alidns:AddDomainRecord",
    "alidns:DescribeDomainRecords",
    "alidns:UpdateDomainRecord"
    ],
    "Resource": "acs:alidns:*:*:domain/77bx.com",
    "Effect": "Allow"
    }
    ]
    }


    3、用户管理,对上面创建的用户,点击授权,选择刚才自定义创建的策略,确定。


    二、PHP制作aliyun API动态解析接口

    以下是我制作好的php解析接口

    接口地址:


    HTTP请求方式:

    • POST/GET


    请求参数:

    • id (必选) AccessKeyId

    • secret (必选)AccessKeySecret

    • record(必选)记录名(如:www)

    • domain(必选)域名(如:myxzy.com)

    • ip (可选,默认值为请求来源IPv4)DDNS的IP地址

    • type (可选,默认值为A,可选值为AAAA) IPv6支持


    示例:

    curl -X POST http://api.77bx.com/alidns -d 'id=id&secret=secret&domain=77bx.com&record=www&ip=1.1.1.1'

    返回参考:

    “0”代表解析修改成功或者是当前解析记录ip相同

    “1”代表AccessKey报错(这个阿里云我这边经常出现,刷新就可以正常)

    “2”代表没有设置参数


    安全说明:

    1、本接口未记录所有的解析AccessKey和解析记录,但是服务器的访问日志会有链接记录(按照政策要求需保存6个月的日志)。虽然有日志但是本接口不提供任何查询。

    2、强烈建议按照步骤一设置授权权限。

    3、由于使用本接口出现的任何安全问题,本人概不负责。这边只能保证本人不会去做任何后门行为。这边建议勤换AccessKey


    三、ROS脚本

    id、secret、domain、record、pppoe修改成自己的。定时1分钟运行就好。

    #aliyun Access Key
    :local id "AccessKeyId"
    :local secret "AccessKeySecret"
    
    #domain
    :local domain "77bx.com"
    :local record "www"
    
    #PPPoE-out
    :local pppoe "pppoe-out1"
    
    :local ipaddr [/ip address get [/ip address find interface=$pppoe] address]
    :set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]
    :global aliip
    :if ($ipaddr != $aliip) do={
    :local result [/tool fetch url="http://api.77bx.com/alidns/\?id=$id&secret=$secret&domain=$domain&record=$record&ip=$ipaddr" as-value output=user];
    :if ($result->"status" = "finished") do={
    :if ($result->"data" = "0") do={
    :set aliip $ipaddr
    :log info "alidns update ok";
    } else={
    :log info "alidns update error";
    }
    }
    }

    脚本说明:获取pppoe拨号ip,然后判断和记录解析ip是否相同,不同开始访问我的php解析脚本,解析脚本就判断参数执行,返回0或1或2,如果是0更新记录的alidns解析ip,其他的不记录。


    四、源码开源

    alidns-api-php Github:https://github.com/myxzy/alidns-api-php

    网吧VIP网吧金牌特权加速器|爱快路由器|Ros路由器|国内中转加速国外|国外中转加速国内|微信养号|天翼云10IP搭建PPTP、L2TP|华为云20IP搭建PPTP、L2TP|同时也支持油管(Youtube)|脸书(Facebook)|特推(twitter)|Google|INS|TikTok|Telegaram|国外网站和应用|对于海外留学生和海外人士访问回国加速支持!(本站软件版只支持WINDOWS系统加速,如果您需要安卓|苹果|手机|平板电脑|MAC系统|路由器加速|Google Chrome OS,请加微信:41064203)1626848213748038.zip


    Powered by MetInfo 5.3.19 ©2008-2021 www.wbvip.cn