RouterOS之DDNS(动态域名)
新版ROS的IP菜單下有個Cloud,其實就是動態域名的,將此功能開啟后,過一會兒Public Address和DNS Name中就會顯示出內容,前者為你的外網IP地址,后者為自動創建域名,以后使用這個域名訪問就行了。
如果要使用國內的DDNS服務,如花生殼(xxx.wicp.net)或pubyun(xxx.f3322.net),則需要使用腳本程序了。
創建腳本:System-->Scripts-->新建(就是那個+號),在對話框中的Name項輸入:DDNS,把所有的復選框打上構,下面的文本框是用來輸入腳本程序的。
以下是f3322.net更新IP的腳本程序(測試OK),根據自己的情況修改紅色加粗的內容,uuu表示動態域名的用戶名,ppp表示動態域名的密碼,xxx表示主機名,pppoe-out表示拔號連接的名稱。
: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:01:00,表示1分鐘執行一次,在On Event文本框中輸入DDNS,其它的默認值即可。
?
另外要注意,如果電信拔號上網分配到的IP是100.開頭的,則意味著你是通過電信的內網NAT上網的,沒有直接連到外網,無法通過端口映射實現外網訪問內部的服務器。那就打個電話給電信客戶要求使用外網IP即可。
?
總結
以上是生活随笔為你收集整理的RouterOS之DDNS(动态域名)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奔跑中的交银施罗德基金,崛起的新生代基金
- 下一篇: 应聘总经理的答卷,供大家打分