雖然已經用咗 No-IP 嘅 DDNS 服務好耐,但有自己嘅 domain 又屎忽痕想用佢做 DDNS。

於是乎我就搵 Google 大神睇下有冇可能(仲未習慣用 AI 真係跟唔上時代嘅步伐呀),又真係有喎…仲要 Cloudflare 免費 account 都已經用到。

方法好簡單,就係利用 Cloudflare API 去 update DNS 嘅記錄。


建立 Token

要使用 Cloudflare API 首先要建立一個 token。

網上有啲比較舊嘅教學用 Global API Key,但權限過大唔係咁好,所以都係用有限制嘅 token 比較好。

登入後噤右上角嘅「個人檔案」->「設定檔」,然後喺左邊選單揀「API 權仗」。

噤「建立 token」掣,揀「編輯 DNS」右邊嘅「使用範本」。

基上只要揀返你個 domain 同改返個 token 名就 OK,其他按自己需要變更,然後噤「繼續至摘要」。

確認資料冇問題就噤「建立 token」,之後會出現 token 字串同測試 command。由於 token 字串只會出現一次,所以千祈唔好咁快噤走住,copy 咗佢先。另外就可以喺 Terminal 度行一次條測試 command,確保條 token 係冇問題。


建立自動化更新 Script

以下係基於喺 Raspberry Pi OS 上嘅操作,其他版本 OS 可能有所不同

更新 IP 呢啲嘢冇理由要手動做嫁嘛係咪?所以就 Google 咗條 script 係可以 check 現時嘅 public IP address 同 Cloudflare 上嘅有冇唔同,唔同先更新。不過 Google 到果個係用 Global API Key,所以我就改左少少轉用 API token,放左喺 Github。只要改返 Zone 同 DNSRecord,再改埋你個 token 就用得。

搵個位 save 好佢,set 執行權限。

chmod +x cloudflare-ddns-update.sh

可以先行一次條 script 睇下有冇問題。有機會要裝 jq:

sudo apt install jq

然就就用 Crontab 叫佢每 15 分鐘行一次:

crontab -e

加入以下一行:

*/15 * * * * /home/pi/scripts/cloudflare-ddns-update.sh >> /home/pi/scripts/cloudflare-ddns-update.log

呢句會每 15 分鐘執行條 script 一次,terminal 嘅輸出會寫入 log file 入面。

留意返 Cloudflare API 有使用限制,請小心服用。

咁就大功告成喇!等個 15 分鐘 check check 個 file 有冇嘢,有就即係成功!


0 Comments

發佈留言

Avatar placeholder

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