はじめに
自宅サーバーにドメインアクセスできるよう、DDNSサービスであるMyDNSを利用することにしました。MyDNSへ、自動的にIPを通知するために、2つの方法を試したので、解説します。
MyDNSのIP通知方法
MyDNSへIPアドレスを通知するには、HTTPで、以下のURLにベーシック認証でアクセスするだけです。
https://www.mydns.jp/login.html
ベーシック認証のユーザー、パスワードは、MyDNSに登録した際に通知されたマスターID、パスワードを使用します。
IPアドレスを定期的に通知するには、なんらかの方法で、以下のcurlコマンドを定期実行すればよいだけです。
curl -u master_id:password https://www.mydns.jp/login.html
※MyDNSでは、上記以外にもIP通知の方法があります。詳しくは公式サイトの「STEP 4. Send IP ADDRESS」を確認してください。
cronによる定期更新
cronで定期実行する場合は、以下のようなエントリをcronに登録します。
crontab -e
# 毎日01:00にIPアドレスを通知する
0 1 * * * curl -u master_id:password https://www.mydns.jp/login.html
systemd timerによる定期実行
CentOS 7以降でサービスの管理で使うsystemdには、timerという定期実行の仕組みがあるので、それを使うこともできます。
/etc/systemd/system/mydns.service
[Unit]
Description=MyDNS IP Update
[Service]
Type=oneshot
ExecStart=/usr/bin/sh -c 'curl -u master_id:password https://www.mydns.jp/login.html'
/etc/systemd/system/mydns.timer
[Unit]
Description=Run mydns.service at 01:00
[Timer]
OnCalendar=01:00
mydns.service
で、実行するコマンドの内容を定義して、mydns.timer
で、スケジュールを定義する感じです。
あとは、作成したmydns.timer
を有効化して起動すれば良いです。
sudo systemctl enable mydns.timer
sudo systemctl start mydns.timer