admin 管理员组文章数量: 887021
2024年3月12日发(作者:angular双向绑定语法)
配置动态DNS主要是为了能让你的RouterBoard在Internet上被访问到,这样我就可以远程控制我
的RouterBoard,同时也可以开始做端口映射,在内网做server…等。
在ROS上配置DDNS非常简单,就是写一个script然后放到ROS的
System
–>
Scheduler
中就好了。不过在此
之前,先去申请一个DDNS,我用的是3322的。
不过在开始之前,你要先确保你的宽带连接拨号之后,得到的是一个真实的IP地址。现在电信/联通/移动宽带
有的时候拨号会得到一个假IP地址,比如
,
,甚至之前我得到过
,这个也
不是真实的IP地址(RFC编号为6598。RFC 6598 – IANA-Reserved IPv4 Prefix for Shared Address
Space)。判断自己拨号得到的IP是否是真实IP很简单,打开 ,网站会告诉你你目前
的IP地址,把这个IP跟你在ROS里面看到的你拨号得到的IP比较是不是一样就知道了。
如果你得到的不是真实的IP地址,那就说明在运营商那边还有一层NAT,那么你做DDNS就没有用了,除非你
用花生壳客户端这种专门的软件,但是花生壳客户端软件是没法装在ROS上的。可以打电话给宽带运营商投
诉,让它给你分配真实的IP地址,如果它不从你可以打工信部电话投诉(我没试过,网友们说可以)。
所以先来看一下这个script是长什么模样:
:global ednsuser "xxxxxxxx"
:global ednspass "xxxxxxxx"
:global ednshost ""
:global ednsinterface "SHUnicom"
:global members "/dyndns/update?system=dyndns"
:global status
:global status [/interface get [/interface find name=$ednsinterface] running]
:if ($status!=false) do={
:global ednslastip [:resolve $ednshost]
:if ([ :typeof $ednslastip ] = nil ) do={ :global ednslastip "0" }
:global ednsiph [ /ip address get [/ip address find interface=$ednsinterface ] address ]
:global ednsip [:pick $ednsiph 0 [:find $ednsiph "/"]]
:global ednsstr "&hostname=$ednshost&myip=$ednsip"
:if ($ednslastip != $ednsip) do={
/tool fetch url="$members$ednsstr" mode=http user=$ednsuser password=$ednspass dst-
path=$ednshost
:delay 4
:global result [/file get $ednshost contents]
:log info ($ednshost . " " .$result)
/file remove $ednshost ;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
以上script来自:ROS DDNS update script
修改一下
ednsuser
/
ednspass
/
ednshost
就可以使用了。
简单来说这个script就是利用ROS的
/tool fetch
来访问一个网页:
/dyndns/update?system=dyndns&hostname=xxx&myip=xxx
这个方法也是3322官方提供的,3322的server就可以从这个http请求中得到你的真实IP地址了。
然后就是来到ROS的
System
–>
Scheduler
,点击加号按钮:
版权声明:本文标题:RouterOS配置记录(三):DDNS 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1710179190h562485.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论