概要
自宅サーバが固定IPではないため、いずれDDNS対応使用と思っていたが、 最近、IPが変わってしまって、更新作業が必要になったため自動化しようということになった。
環境
- raspi 4
- ubuntu20.04 LTS
方法
cloudflareにはもともと簡単な解説記事があったが、触り程度だったためあまり参考にならなかった。 ちゃんと理解力がある人が見ればわかるかも
ddclientはDDNSを対応してくれるソフトで、 バージョン的に言うと3.9以降が安定して使えるとのことで、 導入は以下のサイトに習って jacobjangles.com
sudo apt install ddclient libdata-validate-ip-perl
sudo dpkg-reconfigure ddclient
wget https://sourceforge.net/projects/ddclient/files/ddclient/ddclient-3.9.0/ddclient-3.9.0.tar.gz tar -xvf ddclient-3.9.0.tar.gz
sudo cp -f ddclient-3.9.0/ddclient /usr/sbin/ddclient
sudo mkdir /etc/ddclient sudo mv /etc/ddclient.conf /etc/ddclient
rm ddclient-3.9.0.tar.gz rm -R ddclient-3.9.0
まで実行すれば、環境が整う。
次に参考にしたのは以下のサイト、 configファイルを編集していく。
他にも色々みたが、これに落ち着いた。
#/etc/ddclient/ddclient.conf protocol=cloudflare use=web,web=myip.dnsomatic.com ttl=1 zone=mysite.com login=mycloudflaremail@example.com password=mycloudflareAPIkey mysite.com,www.mysite.com
ここまでできたら、IPが見つけられているかの確認として
sudo ddclient -query
と、IPの更新ができているかという判定を
sudo ddclient -daemon=0 -verbose -noquiet -force
で確認する。 このとき、-forceのオプションをつけていないとcloudflareの方のIPが更新されていないときがあったので、 様子を見つつ対応してほしい。
最後に、cron で自動化を行う
sudo crontab -e
で
*/5 * * * * sudo ddclient -force
を追加して5分ごとに実行されるようにする。
ddclientをcronで実行するので、deamonとして起動する必要はなくなったので停止。
sudo systemctl stop ddclient sudo systemctl disable ddclient
ハマったところ
メールを動かすソフトがないためcronが正しく動作しないことがあったのでpostfixを入れておくといいかも MTAってなんやろ ー>メール転送エージェントらしい thr3a.hatenablog.com