原本用的好好的ChangeIP.com,今天突然出問題,
進RouterOS上一看,Log一直出現ddns error Blacklisted。
查了一下google,找到這篇官方文章Blacklisted IP Address
說是我更新太頻繁。等了3個小時,也不見自動解鎖,一樣的錯誤訊息。
(註:今天晚上看到新聞,大樓機房起火 是方電訊數百客戶網路遭殃,也許是這個事件的關係)
好吧,免錢的。也不能要求太多,換一個吧。
因為dynDNS也要收錢了,所以No-IP(免費的有3個hostname可以用),就是你了。
設定完下面的Script,記得要再設定Schedual,設定可以參考RouterOS 動態更新IP到 ChangeIP.com
#Script在RouterOS 5.23中測試過 #Date:2013/02/25 #Script Name:ddnsUpdate(for no-ip) #no-ip的帳號 :local ddnsuser "yourNOIPAccout" #no-ip的密碼 :local ddnspass "yourNOIPPassword" #要更新的no-ip domain 名稱 :local ddnshost "abcdefg.zapto.org" #要更新的網路介面IP。使用該網路介面的註解文字來尋找,使用前請先把該網路介面的註解說明加上去 :local ddnscomment "RouterOS對外IP" ################################## ####以上是需要修改資料的部份###### ################################## :global ddnslastipRouterOS :global ddnsipRouterOS [ /ip address get [/ip address find interface=[/interface get [/interface find comment=$ddnscomment] name]] address ] #舊的IP有存在就用舊的,不存在就建0.0.0.0/0 :if ([:typeof [:global ddnslastipRouterOS]] = nil ) do={ :global ddnslastipRouterOS 0.0.0.0/0 } else={ :set ddnslastipRouterOS $ddnslastipRouterOS } :if ([:typeof [:global ddnsipRouterOS]] = nil ) do={ :log info ("DDNS: No ip address present on " . $ddnscomment . ", please check.") } else={ :if ($ddnsipRouterOS != $ddnslastipRouterOS) do={ :log info "DDNS: Update DDNS! (CHT:開始更新DDNS_Host)" #轉換IP為no-ip可接受的格式 :local ipFormat [:pick $ddnsipRouterOS 0 [:find $ddnsipRouterOS "/"]]; :local NOIPUpdateString "/nic/update?hostname=$ddnshost&myip=$ipFormat" :log info ([/tool fetch address=dynupdate.no-ip.com mode=http user=$ddnsuser password=$ddnspass src-path=$NOIPUpdateString dst-path=("/DDNS-".$ddnshost)] . "CHT:更新IP:" . $ddnsipRouterOS) :log info ($ddnshost . " 更新回傳值--" . [/file get "DDNS-$ddnshost" contents]) :global ddnslastipRouterOS $ddnsipRouterOS } else={ } }
您好:
能否請教一下
:local ddnscomment “RouterOS對外IP”
RouterOS對外IP我要填上什麼,我是用hinet FTTB pppoe取得浮動ip的
to 阿樹:
1.要先在PPPoE的連線上設定註解,讓script可以正確的抓到。
如何設定,請看下圖。
http://www.minitw.com/wp-content/uploads/2013/09/20130901_1.jpg
2.接下來就是把你自己設定的名稱註解填上去script即可。
jason大大,照您的方法還是無法中,更新no-ip,不知還缺少什麼步驟
to 阿樹:
可以查一下回傳值的內容,看看是那邊出了問題。
回傳值預設會存在你ROS內的檔案中,把檔案拿出來後,用記事本開啟來看。
jason大大,請問回傳值是log那個選項嗎?
to 阿樹:
檔案的位置可以參考下圖,會有個你要更新domain名稱的檔名。
http://www.minitw.com/wp-content/uploads/2013/09/20130903_1.jpg
如果找不到,表示你的script有問題,執行不成功,需要手動debug。
jason大大您好:我的files裡面找不到您說的檔案,只有我的備份檔,不知能否加入大大的skype或facebook,還有幾個問題都一直搞不定,VPN及開PORT
之前使用RT-N16刷tomato這些設定都很簡單,最近改成RB450G,真是太困難的,一直都搞不定。
OK。我的Facebook:jokkson@gmail.com
如果你方便的話,可以把你的ROS開個帳號密碼讓我連進去,簡單的事,我可以幫你處理掉。
加FB再詳談吧~~
感謝,您是大好人,已加fb了,謝謝
測試結果是RouterOS 6.2版本有bug,請至少使用RouterOS 6.3的版本以上,此script就可以正常使用。
您好, 在執行到行號27時就無動作了, 且在file處也沒有新生成檔案, 不知道是甚麼原因?
測試在26行號後插入 :log info 每個變數都有在log顯示變數資料, 但此測試行插入到27行號後就沒反應了.
謝謝您的回覆~~
to Alan:
我今日早上測試(我的ROS的版本是 6.10),是正常的,請參考圖片
http://www.minitw.com/wp-content/uploads/2014/04/20140403_1.jpg
建議你可以用winbox裡面的 New Terminal 下指令直接執行(指令請參考上面的圖片),如果有問題的話,介面會停住,並跟你說指令碼那邊有問題。
jason您好,
執行的結果如下:
while resolving ip: could not get answer from dns server
依據上述嘗試解決問題, 發現挺好玩的現象, 由RB-450G /toosl ping 168.95.1.1 會time out, 但是從經由該路由器DHCP配發區網ip的PC去 ping 則一切正常, 看來問題是在這裡了, 但是不明白為甚麼, 不知道如何解決.
另外我把 /ip dns server 內原本指定的 168.95.1.1 168.95.192.1 兩個都清除成無設定值, 發現PC開網頁的速度變快了.
麻煩您了~~
p.s. hinet 光纖 60m/15m
to Alan:
1.先把ROS升級到最新版。
2.看看firewall那邊的規則是否有設到什麼影響ros本體網路封包的規則。
3.如果以上都沒用,請直接重置你的ROS,一個一個規則測試,看看是那個規則會影響到。
由於無法確定原因, 已還原原廠狀態重寫一份新的規劃, 到目前Queue已完成, 最重要的是DDNS-NO-IP工作正常, 謝謝您的指導以及程式碼的分享.