Router OS 阿里云DDNS设置

发布于 2020-09-20  2 次阅读


1、前提

你需要有公网IP。你的家庭宽带运营商需要给你提供公网IP,可以是动态(废话,现在基本都是动态IP。。。),如果没有或者是大内网那只能通过内网穿透来现实咯,后续也会有相关教程;能否得到公网IP,除了地区原因外,剩下就得靠你的“手腕”了哈哈,总之想尽一切办法“夺”回属于我们的公网IP,非常有必要哦。

你需要有一个域名。域名服务商太多太多了,大家可以根据自己的喜好选择,我本人常年使用的是阿里云的域名,普通域名价格也不算贵,控制台也还算OK,总之还不错,也推荐大家使用。

2、本次教程以阿里云的域名作为操作演示,在Ros端的配置是一样的,区别在于其他域名服务商的入口及名称叫法不同,但是配置方法都大同小异,所以希望大家能举一反三。

教程开始

1、阿里云DDNS配置

首先我们先进入阿里云官网,点击控制台,输入账号密码后进入:

Router OS 阿里云DDNS设置

进入控制台后我们点击左上角三条杠,找到产品与服务,在右侧搜索“访问控制”

Router OS 阿里云DDNS设置

进入访问控制界面,我们点击用户,然后点击右侧创建用户

Router OS 阿里云DDNS设置

接着在登录名称这里填入你想写的名称,这里随意,但是要记住哦,我这里统一填写aliyun,右边的显示名称也填上,同样aliyun,下面的编程访问勾选,最后点确定:

Router OS 阿里云DDNS设置

紧着这回到我们左边栏,点击权限策略管理,然后点击创建权限策略

Router OS 阿里云DDNS设置

在策略名称填入aliyun,这个名称要记住,后面需要用到,所以建议大家所有需要填写的名称都统一一下,这样方便记忆,在下面的配置模式勾选脚本配置,然后粘贴我给大家提供的代码,代码如下:

{

"Version": "1",

"Statement": [

{

"Action": [

"alidns:AddDomainRecord",

"alidns:DescribeDomainRecords",

"alidns:UpdateDomainRecord"

],

"Resource": "acs:alidns:*:*:domain/gxvivo.cn",

"Effect": "Allow"

}

]

}

将上述代码中加粗的内容“gxvivo.cn修改成你自己的域名,然后在策略内容里粘贴进去:

Router OS 阿里云DDNS设置

接着回到左边栏。点击授权,然后点击右侧新增授权

Router OS 阿里云DDNS设置

在弹出来的页面中,被授权主体输入刚才我们设置的统一名称aliyun,输入后它会自动检索到刚刚我们建立的策略,点选它,紧接着点击第二步的下三角,选择自定义策略,然后在下面点选权限策略名称aliyun,接着在右边会出来已选择项目,确定选好了,我们点击下面的确定:

Router OS 阿里云DDNS设置

点击确定后,回到授权主界面就能看到我们刚才授权的条目,接着我们点击被授权主体内容

Router OS 阿里云DDNS设置

我们首先先删除系统自动帮我们生成的AccessKey:

Router OS 阿里云DDNS设置

删除后,我们点击创建新的AccessKey,重新创建一条新的,点击后系统会自动弹出新建的AccessKey,大家千万注意,别手快点击确定,已经要把里面的ID与Secret给复制粘贴到自己的记事本,保存后,因为密码只能看一遍,所以,切记切记切记!这个设定真的有点滑稽,特许为了安全性吧,咱不管了,保存好就行:

Router OS 阿里云DDNS设置

到这里,阿里云上的配置结束,我们回到Ros进行设置。

2、Ros相应设置

用我们之前篇章中提供的winbox软件进入Ros后台:

Router OS 阿里云DDNS设置

点选System-Scripts

Router OS 阿里云DDNS设置

紧接着点选Scripts选项卡,然后点击加号,在弹出来的界面中,首先填入name这里的名称随意填,但是需要记住,后面同样需要用到,我这里还是统一用aliyun,然后在下面的代码编辑框把我提供给大家的代码粘贴进去:

#aliyun Access Key

:local id "LTAI4G4iwG3Uwi4BkkKb9pnY"

:local secret "FOrrT2HVWtkM3IPApm413CdR1qxv8c"

#domain

:local domain "gxvivo.cn"

: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://u.myxzy.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";

}

}

}

代码中,加粗的地方修改成你自己的信息,一共5个地方local idlocal secret就是我们刚才创建AccessKey的ID与secret,local domain这里填入改成自己的域名,local record这里填写自己的二级地址,这里可以按需随意填写,但是你填什么将来用域名访问你的地址就是什么,比如,我的域名是gxvivo.cn,我在local record填写www,我完整的域名地址就是www.gxvivo.cn,如果我填写ttt,那么同理我完整的域名地址就是ttt.gxvivo.cn,这么说明白了吧,友仔们,最后local pppoe就是填写你创建Ros拨号时自己命名的名称,如果不记得或者不清楚,可以看一下我篇二,看完你就清楚啦:

Router OS 阿里云DDNS设置

我们脚本文件设置好后,接着我们创建一个定时任务,让它定时去执行我们绑定阿里云域名的策略脚本,点选System-Ccheduler

Router OS 阿里云DDNS设置

点击加号,在弹出来的界面name设置自己想要的名称,这里随意,这次真的可以随意了,也不用记,随便写,然后在下面的Start Time选项卡中选项startup,就是立即执行的意思,接着在下面的Interval中修改下时间,这里我改成3分钟,意思就是每隔三分钟执行一次,然后在下面的代码框输入我给大家提供的代码,最后所以设置的总体意思就是每隔三分钟,立即执行下面这段代码,这段代码就是去执行刚刚我们设置Script,这么说,能明白吧?代码如下:

/system script run aliyun

加粗的内容修改成你刚才设置Script的名称,也就是我让大家记住的那个名称,我这里统一的名称都是aliyun,全部设置完整,点击OK:

Router OS 阿里云DDNS设置

到这里,Ros之DDNS阿里云设置全部完成啦,友仔们可以挺愉快的去耍啦,噜噜噜噜噜噜噜!!!。

总结

1、效果

通过域名外网刚问我的win10虚拟机:

Router OS 阿里云DDNS设置

同样也可以访问我们的NAS:

Router OS 阿里云DDNS设置

看没木有,是不是贼方便,贼舒服?无论你IP怎么变,我们都能通过域名正常访问哦。


粉色的花瓣,美丽地缠绕在身上。依在风里。