くりゅぴ!

サーバーやWEB問題解決のメモから生活お得情報まで。未分類のものは執筆中

CloudFlareのDNSを動的に変更させる

固定IPで運用していない際に困るのがIPが変わってアクセスができなくなること。
それを、CloudFlareのDNSを自動的に変更してしまおうという作戦。

CloudFlareのAPIをWEBサーバーより叩いて、現在の自分のIPにDNSを切り替えさせる。
bashで次のような感じに組んであげて、cronタブに追加する。
定期的に実行してあげれば、IPが変わった際に変更してくれる。


#!/bin/bash
CURRENT_IP=現在のIPを取得して変数に入れる
CF_IP=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/ゾーンID/dns_records/レコードID" -H "X-Auth-Email: 登録メールアドレス" -H "X-Auth-Key: グローバルキー" -H "Content-Type: application/json"  | grep -Po '(?<="content":")[^"]*')
if [ $CURRENT_IP !=  $CF_IP ]; then
curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/ゾーンID/dns_records/レコードID" -H "X-Auth-Email: 登録メールアドレス" -H "X-Auth-Key: グローバルキー" -H "Content-Type: application/json" --data "{\"type\":\"A\",\"name\":\"変更したいドメイン名\",\"content\":\"$CURRENT_IP\",\"proxied\":true}"
fi

現在のIPを取得する方法は、現在のWEBサーバーとは別の場所にアクセスした際のIPを出力するファイルを置いておき、
アクセスしてIPを取得すればOK。

仕組みとしては一度IPが同一であるかを確認して、IPが変わっていたら新しいIPへ変更する。

ゾーンのIDなどの取り方は詳しいサイトがあると思うのでそちらを参照してください。

参考
[CloudFlare] CloudFlare API(v4)でDNSレコードのIPアドレスを更新する (自動更新もOK)
http://dip.jp/tools.html

サーバー開発

タグ: ,

サーバー開発の最新記事

2020年8月24日
さくらサーバー移管後DNSゾーンは変更できない
2020年7月13日
NginxにSERVER_NAMEがない
2020年6月18日
NginxにREDIRECT_URLを追加する

コメントを残す

メールアドレスが公開されることはありません。