CloudFlare DDNS 対応自作スクリプト (dipper)

前回の続き

ddclientでCloudflareをDDNSとして利用する (IPv6)

Google Domainsが買収され、移行先サイトでは日本語ないし、DDNSが使えないというわけで、Cloudflareにさっさと乗り換えたわけですが。実はDDNSができるかはよく調べずに…

というわけでの自作スクリプトをCloudFlareに対応させてみた。
もちろんIPv4とIPv6同時更新対応済み!

GitHub - smileygames/dipper at v1.12

DDNSにipを自動でupdateするシェルスクリプト. Contribute to smileygames/dipper development by creating an account on GitHub.

まぁ、CloudFlareに対応したスクリプトなんて探せば他に結構あるけども。

CloudFlareで使うには登録したEmailアドレスとGlobal API keyが必要。
あとZoneは登録したドメイン名。Domainはメインドメインだったりサブドメインだったり。
メインドメインとサブドメインは同時にconfigに書けます。(他の情報が同じなら)

後は、CloudFlareのDNSの設定であらかじめDNSレコードを作成しておく必要があります。

IPv4の場合、タイプは「A」名前はメインドメインなら「@」サブドメインならお好きに。アドレスは「0.0.0.0」
IPv6の場合、タイプは「AAAA」名前はメインドメインなら「@」サブドメインならお好きに。アドレスは「::0」
で空のDNSレコードを作成しておきます。

後は、dipperをインストールして、configに必要な情報を入れます。
詳しいインストール方法&最新版はGithubのほうに書いてありますが、軽く説明しておきます。

インストールコマンド(githubからダウンロードしてサーバーにインストールを全てしてくれます)

bash <( curl -fsSL https://github.com/smileygames/dipper/releases/download/v1.12/install.sh )

configファイルはdefault.confをコピーして、名前をuser.confにして記入します。

# IPV4 アドレス default = on
# IPV4_DDNS 固定IPアドレスの場合はoffにする。但し、IPv4=offの場合は無効になる default = on
IPV4=on
IPV4_DDNS=on

# IPV6 アドレス default = off
# IPV6_DDNS 動的IPアドレスの場合はonにする。但し、IPv6=offの場合は無効になる default = on
IPV6=on
IPV6_DDNS=on

~~~~~~~~~~~~~~~~~~~~~略~~~~~~~~~~~~~~~~~~~~~~~~~

## CloudFlare Domains
#-----------------------------------------------
# CloudFlare_IPV6[ ] default = off [on/off]
# CloudFlareのDDNSはIPv4とIPv6に対応
# IPV6及びIPV6_DDNSの設定のどちらか一方がoffの場合、CloudFlare_IPV6は無効になるので注意です。

Num=1  # Number 1個目のドメイン
CLOUDFLARE_MAIL[$Num]="Email_address"
CLOUDFLARE_API[$Num]="Global_API_key"
CLOUDFLARE_ZONE[$Num]="example.com"
CLOUDFLARE_DOMAIN[$Num]="example.com,www.example.com"
CLOUDFLARE_IPV4[$Num]=on
CLOUDFLARE_IPV6[$Num]=on

Num=2  # Number 2個目のドメイン
CLOUDFLARE_MAIL[$Num]="Email_address2"
CLOUDFLARE_API[$Num]="Global_API_key2"
CLOUDFLARE_ZONE[$Num]="example2.com"
CLOUDFLARE_DOMAIN[$Num]="example2.com"
CLOUDFLARE_IPV4[$Num]=on
CLOUDFLARE_IPV6[$Num]=off

CLOUDFLARE_IPV4とCLOUDFLARE_IPV6はドメイン毎に個別で設定できます。

後はファイルの権限をユーザー以外閲覧禁止にし、サービスを起動するだけです。

sudo chmod 600 /usr/local/dipper/config/user.conf
sudo systemctl start dipper.service

ちなみに、すでにサービスは「有効」の状態で登録されているので、再起動しても勝手に起動するので注意です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です