註冊
登錄
論壇
搜索
幫助
導航
默認風格
默認風格_熄燈
默認風格_農曆新年
私人消息 (0)
公共消息 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
電訊茶室
»
路由器討論 (Router)
»
MikroTik / RouterOS
» 【RouterOS】——Dynamic DNS
1
2
3
下一頁
返回列表
發帖
角色
發短消息
加為好友
角色
當前離線
UID
6
帖子
13756
精華
5
積分
131
閱讀權限
20
在線時間
4484 小時
註冊時間
2010-4-24
最後登錄
2024-11-18
註冊會員
1
#
跳轉到
»
倒序看帖
打印
字體大小:
t
T
發表於 2013-1-3 01:05
|
只看該作者
【RouterOS】——Dynamic DNS
本帖最後由 角色 於 2013-3-9 21:05 編輯
Sources of information:
http://wiki.mikrotik.com/wiki/Dy ... e_Script_for_dynDNS
for example: DynDNS
1) add a script called dynDNS:
# Define User Variables
:global ddnsuser "DYNDNSUSER"
:global ddnspass "DYNDNSPASS"
:global ddnshost "DYNDNSHOST"
# Define Global Variables
:global ddnsip
:global ddnslastip
:if ([ :typeof $ddnslastip ] = nil ) do={ :global ddnslastip "0" }
:global ddnsinterface
:global ddnssystem ("mt-" . [/system package get system version] )
# Define Local Variables
:local int
# Loop thru interfaces and look for ones containing
# default gateways without routing-marks
:foreach int in=[/ip route find dst-address=0.0.0.0/0 active=yes ] do={
:if ([:typeof [/ip route get $int routing-mark ]] != str ) do={
:global ddnsinterface [/ip route get $int interface]
}
}
# Grab the current IP address on that interface.
:global ddnsip [ /ip address get [/ip address find interface=$ddnsinterface ] address ]
# Did we get an IP address to compare?
:if ([ :typeof $ddnsip ] = nil ) do={
:log info ("DynDNS: No ip address present on " . $ddnsinterface . ", please check.")
} else={
:if ($ddnsip != $ddnslastip) do={
:log info "DynDNS: Sending UPDATE!"
:local str "/nic/update?hostname=$ddnshost&myip=$ddnsip&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
/tool fetch address=members.dyndns.org src-path=$str mode=http user=$ddnsuser \
password=$ddnspass dst-path=("/DynDNS.".$ddnshost)
:delay 1
:local str [/file find name="DynDNS.$ddnshost"];
/file remove $str
:global ddnslastip $ddnsip
}
}
複製代碼
2) Add a scheduler entry to run every minute
/system scheduler add name=dynDNS interval=00:01 on-event="/system script run dynDns\r\n"
複製代碼
收藏
分享
角色
發短消息
加為好友
角色
當前離線
UID
6
帖子
13756
精華
5
積分
131
閱讀權限
20
在線時間
4484 小時
註冊時間
2010-4-24
最後登錄
2024-11-18
註冊會員
2
#
發表於 2013-1-5 16:00
|
只看該作者
是否有人用过MikroTik的DNS呢?怎样用都不成功。
TOP
bubblestar
發短消息
加為好友
bubblestar
當前離線
UID
182
帖子
1959
精華
0
積分
1
閱讀權限
10
在線時間
891 小時
註冊時間
2010-4-29
最後登錄
2021-4-24
新手上路
3
#
發表於 2013-1-5 17:45
|
只看該作者
我用這個的。
# Set needed variables
:local username "ddns_username"
:local password "ddns_password"
:local hostname "ddyns.hostname"
:global dyndnsForce
:global previousIP
# print some debug info
:log info ("UpdateDynDNS: username = $username")
:log info ("UpdateDynDNS: password = $password")
:log info ("UpdateDynDNS: hostname = $hostname")
:log info ("UpdateDynDNS: previousIP = $previousIP")
# get the current IP address from the internet (in case of double-nat)
/tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
:delay 1
:local result [/file get dyndns.checkip.html contents]
# parse the current IP result
:local resultLen [:len $result]
:local startLoc [:find $result ": " -1]
:set startLoc ($startLoc + 2)
:local endLoc [:find $result "</body>" -1]
:local currentIP [:pick $result $startLoc $endLoc]
:log info "UpdateDynDNS: currentIP = $currentIP"
# Remove the # on next line to force an update every single time - useful for debugging,
# but you could end up getting blacklisted by DynDNS!
#:set dyndnsForce true
# Determine if dyndns update is needed
# more dyndns updater request details http://www.dyndns.com/developers/specs/syntax.html
:if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={
:set dyndnsForce false
:set previousIP $currentIP
:log info "$currentIP or $previousIP"
/tool fetch user=$username password=$password mode=http address="members.dyndns.org" \
src-path="nic/update?system=dyndns&hostname=$hostname&myip=$currentIP&wildcard=no" \
dst-path="/dyndns.txt"
:delay 1
:local result [/file get dyndns.txt contents]
:log info ("UpdateDynDNS: Dyndns update needed")
:log info ("UpdateDynDNS: Dyndns Update Result: ".$result)
:put ("Dyndns Update Result: ".$result)
} else={
:log info ("UpdateDynDNS: No dyndns update needed")
}
複製代碼
TOP
角色
發短消息
加為好友
角色
當前離線
UID
6
帖子
13756
精華
5
積分
131
閱讀權限
20
在線時間
4484 小時
註冊時間
2010-4-24
最後登錄
2024-11-18
註冊會員
4
#
發表於 2013-1-5 18:18
|
只看該作者
如果我用Version 3.x, 而bubblestar就用Version 5.x。而我的routerOS就是5.22,那么应该用Version 5.x比较适合。
TOP
角色
發短消息
加為好友
角色
當前離線
UID
6
帖子
13756
精華
5
積分
131
閱讀權限
20
在線時間
4484 小時
註冊時間
2010-4-24
最後登錄
2024-11-18
註冊會員
5
#
發表於 2013-1-5 18:18
|
只看該作者
如果我用Version 3.x, 而bubblestar就用Version 5.x。而我的routerOS就是5.22,那么应该用Version 5.x比较适合。
TOP
角色
發短消息
加為好友
角色
當前離線
UID
6
帖子
13756
精華
5
積分
131
閱讀權限
20
在線時間
4484 小時
註冊時間
2010-4-24
最後登錄
2024-11-18
註冊會員
6
#
發表於 2013-1-5 19:06
|
只看該作者
回復
3#
bubblestar
都是不能update DDNS。
怎样加呢?
1) 用edit把script做成一个DynDNS-5x.txt,然后ftp到router。
2) 在router, /file print能看到DynDNS-5x.txt, 输入适当的credential
3) /system add script DynDNS-5x.txt,
4) /system run 0 (where 0 is given by /system script print)
TOP
bubblestar
發短消息
加為好友
bubblestar
當前離線
UID
182
帖子
1959
精華
0
積分
1
閱讀權限
10
在線時間
891 小時
註冊時間
2010-4-29
最後登錄
2021-4-24
新手上路
7
#
發表於 2013-1-5 19:15
|
只看該作者
不知是否RouterOS 本身的問題,DDNS update 後,雖然見到新IP資料,但我差不多等了15分鐘左右,才能使用解決NAT loopback 問題,即是從local network,在Browser 內直接打 DDNS_Hostname 進入自己網內的NAS 資源。
感覺上RouterOS 的Update 沒有像一般Router一樣能即時反影新的設定。
TOP
bubblestar
發短消息
加為好友
bubblestar
當前離線
UID
182
帖子
1959
精華
0
積分
1
閱讀權限
10
在線時間
891 小時
註冊時間
2010-4-29
最後登錄
2021-4-24
新手上路
8
#
發表於 2013-1-5 19:22
|
只看該作者
但用SSL 方式,
https://XXX.XXX.XXX:443
就可以馬上進入NAS 的資源,真不明所以。
而普通用
http://xxx.xxx.xxx:8080
用了一會又很容易斷掉 connection.。
TOP
bubblestar
發短消息
加為好友
bubblestar
當前離線
UID
182
帖子
1959
精華
0
積分
1
閱讀權限
10
在線時間
891 小時
註冊時間
2010-4-29
最後登錄
2021-4-24
新手上路
9
#
發表於 2013-1-6 12:57
|
只看該作者
假如是Dual Wan or Multiple Wan,如何把不同IP update 指向同一位址呢?
TOP
lttliang
發短消息
加為好友
lttliang
當前離線
UID
158
帖子
1016
精華
0
積分
1
閱讀權限
10
在線時間
386 小時
註冊時間
2010-4-28
最後登錄
2018-10-17
新手上路
10
#
發表於 2013-1-22 10:20
|
只看該作者
解决未呀?
TOP
角色
發短消息
加為好友
角色
當前離線
UID
6
帖子
13756
精華
5
積分
131
閱讀權限
20
在線時間
4484 小時
註冊時間
2010-4-24
最後登錄
2024-11-18
註冊會員
11
#
發表於 2013-1-22 13:26
|
只看該作者
现在还没有成功,因为没有时间。
TOP
bky16
發短消息
加為好友
bky16
當前離線
UID
27569
帖子
149
精華
0
積分
0
閱讀權限
10
在線時間
40 小時
註冊時間
2013-1-12
最後登錄
2013-5-18
新手上路
12
#
發表於 2013-3-27 18:13
|
只看該作者
DDNS可以啦!
要确定係NEW TERMINAL度可以ping通域名
(这个经mrandrewchan CHING指导,原来係IP>DNS依度加8.8.8.8,唔好入去STATIC里面加)
行SCRIPT一定要搞掂依个,因为佢係透过DNS搵地址来UPDATE
其它,可以参照:
http://www.telecom-cafe.com/foru ... amp;extra=#pid32082
角色CHING可以update吓D教材啦!嘻嘻
TOP
角色
發短消息
加為好友
角色
當前離線
UID
6
帖子
13756
精華
5
積分
131
閱讀權限
20
在線時間
4484 小時
註冊時間
2010-4-24
最後登錄
2024-11-18
註冊會員
13
#
發表於 2013-3-28 21:24
|
只看該作者
本帖最後由 角色 於 2013-3-28 21:47 編輯
回復
3#
bubblestar
bubblestar兄这个也可以。但是是取最前面的WAN口的IP (WAN 1 IP),而不是Routerbaord的WAN IP (WAN 2 IP)。如果只有Routerboard自己,那么最前的WAN IP就是RouterBoard的WAN IP。这个script使用RouterBoard在最前面。
还有这个都是一样,第一先建立一个文件,把新的IP address记下来,下次的IP个这个IP不一样,就做一次update。如果一样就是bypass,根据不去dyndns的server check一下,是否与本身的IP address是一样?如果一样,不update,不一样就update。
图一:多个Routers
图二:只有一个RB
附件:
您需要
登錄
才可以下載或查看附件。沒有帳號?
註冊
TOP
角色
發短消息
加為好友
角色
當前離線
UID
6
帖子
13756
精華
5
積分
131
閱讀權限
20
在線時間
4484 小時
註冊時間
2010-4-24
最後登錄
2024-11-18
註冊會員
14
#
發表於 2013-9-8 14:42
|
只看該作者
刚才再看这张thread,问题是那个script,放在哪里呢?
TOP
雯雯
發短消息
加為好友
雯雯
當前離線
UID
144
帖子
2795
精華
0
積分
1
閱讀權限
10
在線時間
4536 小時
註冊時間
2010-4-28
最後登錄
2016-11-28
新手上路
15
#
發表於 2013-9-8 14:46
|
只看該作者
回復
14#
角色
放在System -> Scripts裏.
Welcome to my TaoBao shop: http://mandymak520.taobao.com/
TOP
1
2
3
下一頁
返回列表
VoIP研究室(VoIP Lab)
VoIP 研究室
Asterisk
Elastix
FreeSWITCH
OBi
Linksys ATA
Other ATA
Hard/Soft Phone
VOIP Provider/Service
VOIP News
Others
網絡/寬頻及固網討論
VPN 研究室
網絡及寬頻討論
路由器討論 (Router)
MikroTik / RouterOS
DD-WRT
OpenWRT
Gargoyle
pfSense
ClearOS
Others
固網電話討論
流動通訊應用
視像通訊
流動寬頻/流動數據
網絡商討論
手機網絡商
Wi-Fi
手機討論
iPhone/iPad
Android系統
Symbian系統
手機討論
吹水閒聊
吹水茶座
合法集會
Project 0
新手報到
新手報到區
茶室董事廳
公告欄
意見收集站
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]