类别:ROS / 日期:2020-03-04 / 浏览:1182 / 评论:0
一、自带的ddns
新版ROS的IP菜单下有个Cloud,其实就是动态域名的,将此功能开启后,过一会儿Public Address和DNS Name中就会显示出内容,前者为你的外网IP地址,后者为自动创建域名,以后使用这个域名访问就行了。
二、其它ddns服务设置
如果要使用国内的DDNS服务,如花生壳(xxx.wicp.net)或pubyun(xxx.f3322.net),则需要使用脚本程序了。
创建脚本:System-->Scripts-->新建(就是那个+号),在对话框中的Name项输入:DDNS,把所有的复选框打上构,下面的文本框是用来输入脚本程序的。
以下是f3322.net更新IP的脚本程序(测试OK),根据自己的情况修改红色加粗的内容,uuu表示动态域名的用户名,ppp表示动态域名的密码,xxx表示主机名,pppoe-out表示拔号连接的名称(如果是拨号的一定要填pppoe虚拟链接 ,如果是自适应或静态的填wan口)。
-----------------------------------------------
:local ednsuser "uuu"
:local ednspass "ppp"
:local ednshost "xxx.f3322.net"
:local ednsinterface "pppoe-out"
:local members "http://members.3322.net/dyndns/update?system=dyndns"
:local status
:local status [/interface get [/interface find name=$ednsinterface] running]
:if ($status!=false) do={
:local ednslastip [:resolve $ednshost]
:if ([ :typeof $ednslastip ] = nil ) do={ :local ednslastip "0" }
:local ednsiph [ /ip address get [/ip address find interface=$ednsinterface ] address ]
:local ednsip [:pick $ednsiph 0 [:find $ednsiph "/"]]
:local ednsstr "&hostname=$ednshost&myip=$ednsip"
:if ($ednslastip != $ednsip) do={/tool fetch url=($members . $ednsstr) mode=http user=$ednsuser password=$ednspass
:delay 2
:local result [/file get $ednshost contents]
:log info ($ednshost . " " .$result)
/file remove $ednshost;
}
}
----------------------------------------------------
此脚本程序的工作内容:检查当前的IP地址和域名xxx.f3322.net指向的IP是否相同,如果不同则向动态域名服务器提交请求更新IP。
三、建立定时
脚本程序编写好后,需要定时运行,因此需要创建一个计划任务:System-->Scheduler-->新建(就是那个+号),将对话框中的Interval设置为:00:15:00,表示15分钟执行一次,在On Event文本框中输入:/system script run DDNS,其它的默认值即可。
另外要注意,如果电信拔号上网分配到的IP是100.开头的,则意味着你是通过电信的内网NAT上网的,没有直接连到外网,无法通过端口映射实现外网访问内部的服务器。那就打个电话给电信客户要求使用外网IP即可
----------以下为花生壳和3322的脚本-------------------------------
一、花生壳
花生壳动态域名是全球用户量最大的完全免费的动态域名解析软件(DDNS)。当您安装并注册花生壳动态域名解析软件,无论您在任何地点、任何时间、使用任 何线路,均可利用这一服务建立拥有固定域名和最大自主权的互联网主机。“花生壳动态域名解析软件”支持的线路包括普通电话线、ISDN、ADSL、有线电 视网络、双绞线到户的宽带网和其它任何能够提供互联网真实IP的接入服务线路,而无论连接获得的IP属于动态还是静态。
现在花生壳动态域名解析软件为千万的域名提供动态域名解析服务,并广泛应用于网站建设、视频监控、遥感测绘、FTP、VPN、企业OA、ERP等应用领域。
脚本:
local server “http://ddns.oray.com”
local domain “域名”
local par “/ph/update?&hostname=$domain&myip=$ipaddr”
local users “用户”
local paswd “密码”
:set ipaddr [/ip address get [/ip address find interface=pppoe-out2] address]
:set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]
/tool fetch url=($server . $par) mode=http user=$users password=$paswd
二、3322
脚本:
:local ednspass “密码”
:local ednshost “域名”
:local ednsinterface “接口”
:local members “http://members.3322.org/dyndns/update?system=dyndns”
#:local members “http://members./nic/update?”
:local status
:local status [/interface get [/interface find name=$ednsinterface] running]
:if ($status!=false) do={
:local ednslastip [:resolve $ednshost]
:if ([ :typeof $ednslastip ] = nil ) do={ :local ednslastip “0” }
:local ednsiph [ /ip address get [/ip address find interface=$ednsinterface ] address ]
:local ednsip [:pick $ednsiph 0 [:find $ednsiph “/”]]
:local ednsstr “&hostname=$ednshost&myip=$ednsip”
:if ($ednslastip != $ednsip) do={/tool fetch url=($members . $ednsstr) mode=http user=$ednsuser password=$ednspass dst-path=$ednshost
:delay 2
:local result [/file get $ednshost contents]
:log info ($ednshost . ” ” .$result)
/file remove $ednshost ;
}
}