CloudFlare DNS ROUTEROS DDNS 浮動 IP 筆記

好一陣子沒寫(Blog)筆記惹,近期弄東弄西、更新 Nextcloud 新版本、
Coding WinForm C#、玩到ISPConfig,又用VM試架UBUNTU架站等等,
除了工作外,已經沒啥空閒時間可以再多做其他事情…

因為固定IP有限,家中主要多半還是使用浮動IP,所以DDNS算很常用
現使用的網域均已移轉至CF(cloudflare)代管,速度效率上都算不錯…

在此把CloudFlare DDNS自己筆記一下,也可以給需要朋友參考一下!

DNS代管:CloudFlare
路由主機:ROUTEROS Mikrotik V6.44.1

這一段日子爬了幾個網站,分別有提及到CF的DDNS作法(比較新的):

查到第一篇文章最後發文的時間是20190313
https://gist.github.com/viritt/605173d0b9d8cce433be34539db9923f

第二篇文查到最後發文的時間是20190318
https://mmendescortes.eti.br/how-to-use-cloudflare-ddns-on-mikrotik-routeros/

這二篇文章一開始我搞不清楚哪個ID要哪裡取得,因為每網域都有ZONE ID
用錯ID或設定就無法更新IP資訊

本篇主要使用第二篇文章,使用版本是以官方(V4)為主
https://api.cloudflare.com/#dns-records-for-a-zone-update-dns-record

為方便資料編輯建議到notepad++(javascript),以容易設定相關資訊:

首先到自己的CF上,取得以下的資訊:
一、網域的ZONE ID 和個人認證(登錄)的信箱(帳號)例:[email protected]
二、找到DDNS網域的ID(RECORD ID),例:使用的網域是www.xyz.com就要找到www.xyz.com的RECORD ID,而不是使用xyz.com的RECORD ID
三、CF Global API Key
四、IP位址(或浮動)

1.先來找到自己的ZONE ID

選好了網域後選 Overview

2.到圖面的底下會出現『API』此時需要第一項 Zone ID 的資料,接著點選頁面的『Get your API key』

3.認證完後,取得API KEY


4.使用第一個提供的方式語法:(請將下框內語法進行複制)

global cfg do={\
/tool fetch mode=https\
http-method=get\
url="https://api.cloudflare.com/client/v4/zones/$cfi/dns_records"\
http-header-field="content-type:application/json,X-Auth-Email:$cfe,X-Auth-Key:$cfk"\
}

5.至ROS裡貼上…

6.此時將你的ZONE ID、EMAIL、和API KEY套用到底下的資料裡面,同樣的再跟5步驟一樣貼上去

$cfg cfi="CHANGE IT TO YOUR ZONE ID" cfe="CHANGE IT TO YOUR ACCOUNT EMAIL" cfk="CHANGE IT TO YOUR GLOBAL KEY"

7.此時應該會出現與下圖相同(類似)畫面,如果沒有的話,請再檢查上相關ID或資料是否有誤…

8.到files裡會出現一個『dns_records』的檔案,下載後用notepad++開啟
9.dns_records裡會有所有的資訊,找到對應的『網域』那段裡一開始都會有個”id”:”********”開始,那就是你要DDNS用的ID(RECORD ID)

10.將底下的資料替換掉後,丟到script裡,再按時執行即可…

:global cfu do={\
:local cfi " zone id ";\
:local cfr " record id ";\
:local cfe "[email protected]";\
:local cfk "api key";\
:local cfd "ABC.com";\
:local currentIP [/ip address get [/ip address find interface=pppoe1 ] address];\
:local cfa [:pick $currentIP 0 [:find $currentIP "/"]];\
:local cfp true;\
/tool fetch mode=https\
http-method=put\
url="https://api.cloudflare.com/client/v4/zones/$cfi/dns_records/$cfr"\
http-header-field="content-type:application/json,X-Auth-Email:$cfe,X-Auth-Key:$cfk"\
http-data="{\"type\":\"A\",\"name\":\"$cfd\",\"content\":\"$cfa\",\"proxied\":$cfp}"\
output=none\
}
:delay 1
$cfu

 

delay 1這可以調整,另pppoe1可以改成自己撥號或IP

以上請參考!

Necos
Necos

一開始只是好奇寫程式玩玩,現在喜歡敲敲打打3C產品,有空沒事就惡整一下,是人為或自損也好,反正能送修就送修,藉此週而復始的學習並升級,就這樣渡過了二十餘年…

1 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料