使用Cloudflare更新DDNS

透過Cloudflare的服務自動更新DNS A紀錄

首先你需要有自己購買的域名,並且把這個域名的DNS代管設定在Cloudflare上面.

符合這二個條件後才能繼續接下來的設定.


文章開始

需要底下這五行資訊,才能把資料填入SCRIPTS腳本裡面去讓它自動更新IP

# zone id “eeabxxxxxxxxxxxxxxxxxxxxxxxxxxxx” (中文頁面叫做”區域識別碼”)
# record id “825xxxxxxxxxxxxxxxxxxxxxxxxxxx” (這要操作CLI或是腳本後,從產生的檔案裡面去找)
# account email[email protected]” (登入cloudflare的EMAIL帳號)
# API token “b61xxxxxxxxxxxxxxxxxxxx” (這要操作API token後才會產生Global API Key)
# 域名 “cfddns.ros.tw” (你在cloudflare裡面所建立的A紀錄DNS解析域名)

1.首先登入cloudflare,在DNS裡面新增一組A記錄,(新建你需要的域名跟IP,如下圖)

2.複製下來你的zone id ,如下圖

 

3.生成API token  (Global API Key) 如下圖

下圖是生成之後的畫面(把Global API Key複製下來)

 

4.把底下這些語法複製進去MIKROTIK路由器裡面的SCRIPTS來跑(為了要生成record id)

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"\
}
$cfg cfi="你的ZONE ID" cfe="你的EMAIL" cfk="API token裡面的GLOBAL KEY"

最後一行  $cfg cfi=  要填入你的資料替換

最後運轉RUN SCRIPT後,等個幾秒鐘後會在FILES裡面生成一個dns_records檔案

5.把dns_records這個檔案拖拉到桌面後,用文字編輯軟體打開它.

利用搜尋功能找到你這次需要的域名,然後把前面的ID圈起來的那一串代碼複製下來,

這個就是你這個域名的record id. 如下圖 (得到record id後,剛剛建的腳本已用不到,可以刪除)

6.把底下這些語法複製進去MIKROTIK路由器裡面的SCRIPTS來跑.

# cfzoneid “填入zone id”
# cfrecordid “填入record id”
# cfaccountemail “填入email”
# cfAPItoken “填入API token裡面的Global API Key”
# cfdomain “填入你要更新的域名 cfddns.ros.tw”

:delay 10

:global cfu do={\

:local cfzoneid “eeabxxxxxxxxxxxxxxxxxxxxx”;\
:local cfrecordid “825xxxxxxxxxxxxxxxxxxxxxxxx”;\
:local cfaccountemail “[email protected]”;\
:local cfAPItoken “b61xxxxxxxxxxxxxxxxxxxx”;\
:local cfdomain “cfddns.ros.tw”;\

:local currentIP [/ip address get [/ip address find interface=pppoe-out1 ] address];\
:local cfa [:pick $currentIP 0 [:find $currentIP “/”]];\
:local cfp false;\
/tool fetch mode=https\
http-method=put\
url=”https://api.cloudflare.com/client/v4/zones/$cfzoneid/dns_records/$cfrecordid”\
http-header-field=”content-type:application/json,X-Auth-Email:$cfaccountemail,X-Auth-Key:$cfAPItoken”\
http-data=”{\”type\”:\”A\”,\”name\”:\”$cfdomain\”,\”content\”:\”$cfa\”,\”proxied\”:$cfp}”\
output=none\
}
:delay 1
$cfu


如下圖

以上設定全部完成.


如果機器重啟的話會有一個空窗期,為了保險起見,可以在

Scheduler裡面多建一個一樣的腳本讓它一開機就會去運轉它(下圖紅框內Startup的意思是只在啟動時運轉一次)

如下圖


或者是把這個腳本加進去PPPOE-OUT1的 On Up裡面,

這樣只要PPPOE重撥的話就會馬上進行DDNS更新.

如下圖

分類: RouterOS。這篇內容的永久連結

發佈留言

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