使用 ddclient 更新 Cloudflare DNS Record

當 Server 是使用浮動 IP 時,如何確保域名正確配置是很重要的議題

此篇將介紹如何在 Ubuntu 20.04 上透過 ddclient 更新 Cloudflare 上的 DNS 紀錄

Ubuntu 上使用 apt 安裝的 ddclient 版本相當舊,因此必須直接從 GitHub 專案下載,https://github.com/ddclient/ddclient/releases,下載最新版本後請一同解壓縮

首先,請確認是否已安裝 libdata-validate-ip-perllibio-socket-ssl-perl ,如尚未安裝可透過下列指令安裝

apt install libdata-validate-ip-perl libio-socket-ssl-perl

接著,請將 ddclient 複製到 /usr/sbin

cp ddclient /usr/sbin/

完成後,請確認 /etc/ddclient/var/cache/ddclient 這兩個資料夾存在

mkdir /etc/ddclient /var/cache/ddclient

再來請創建 ddclient 設定檔

touch /etc/ddclient/ddclient.conf

設定檔可參考下方

daemon=300 # 多久檢查一次
syslog=yes # 是否將 log 寫入 syslog
pid=/var/run/ddclient.pid

protocol=cloudflare
use=web
web=https://ipinfo.io/ip
ssl=yes
login= # Cloudlfare 登入帳號(Email)
password= # Cloudflare API,可在 https://dash.cloudflare.com/profile/api-tokens 取得
zone=example.com # 域名
dynamic1.example.com # 要更新的 DNS Record,多筆請用 , 分隔

最後請複製 systemd 設定檔並啟動 ddclient 服務

cp sample-etc_systemd.service /etc/systemd/system/ddclient.service
systemctl enable ddclient.service
systemctl start ddclient.service

這樣 ddclient 的安裝及設定就完成囉,如未更動 daemon 的值,ddclient 每五分鐘就會檢查一次 IP 是否更動