ddclientでGoogle DomainsのDDNSを更新する方法

Google DomainsのDDNSを、ddclientで更新する方法・設定です。

環境(VirtualBox仮想サーバー)
  • Ubuntu Server 18.04
  • CPU 1コア
  • RAM 1024MB
  • NIC ブリッジ接続

ddclientのインストール

まず普通にUbuntu Serverをインストールして使えるようにしておく。

ddclientをインストール
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt auutoremove
$ sudo apt install -y ddclient

インストール中に設定ウィザードが表示される。このウィザードではGoogle Domains用の設定はできなので適当に飛ばしていく。



update protocolの選択画面はEscキーでスキップできた






Google Domainsの設定

Google Domainsのダッシュボードで設定したいドメインを選び、DNS設定を開く

合成レコードでダイナミックDNSを選択

追加したいサブドメインを入力して追加する。もしドメインごとDDNS化したければ「@」を入力すると良いらしい。

追加したサブドメインを展開すると、DDNS設定用のユーザー名とパスワードが表示されるので控えておく。

ddclientの設定

ddclient.confをお好みのテキストエディターで編集する。ここではnanoを使う。
$ sudo nano /etc/ddclient.conf

Google Domainsのサポートページを参考に、少し追加で書き加える

ddclient.conf
daemon=60

ssl=yes
use=web
protocol=googledomains
login=generated_username
password=generated_password
your_subdomain.your_domain.tld

  • login, passwordには先ほどGoogle Domainsで取得したユーザー名とパスワードを設定する
  • daemon=60
    • 60秒間隔でIPの変化をチェックし、必要に応じて更新する
  • use=web
    • ルーターを使用している場合に、プライベートIPではなくグローバルIPを検出してサーバーに通知するための設定

また2つ以上のサブドメインを同時に更新したい場合は、つなげて書き足せばOK

ddclient.conf
daemon=60

ssl=yes
use=web
protocol=googledomains
login=generated_username_01
password=generated_password_01
your_subdomain_01.your_domain.tld

ssl=yes
use=web
protocol=googledomains
login=generated_username_02
password=generated_password_02
your_subdomain_02.your_domain.tld


次にデーモンとして動作させるための設定を行う
※デーモン:Windowsでいうサービスのようなもの。OS起動時に自動で立ち上がり、バックグラウンドで動作し続ける。

$ sudo nano /etc/default/ddclient

daemon_intervalをddclient.confで設定した秒数に、run_ipupをfalseに、run_daemonをtrueに変更する

/etc/default/ddclient
# Configuration for ddclient scripts 
# generated from debconf on Thu Jan 16 05:14:29 UTC 2020
#
# /etc/default/ddclient

# Set to "true" if ddclient should be run every time DHCP client ('dhclient'
# from package isc-dhcp-client) updates the systems IP address.
run_dhclient="false"

# Set to "true" if ddclient should be run every time a new ppp connection is 
# established. This might be useful, if you are using dial-on-demand.
run_ipup="false"

# Set to "true" if ddclient should run in daemon mode
# If this is changed to true, run_ipup and run_dhclient must be set to false.
run_daemon="true"

# Set the time interval between the updates of the dynamic DNS name in seconds.
# This option only takes effect if the ddclient runs in daemon mode.
daemon_interval="60"

デーモンとして動作させる

デーモンを起動
$ sudo service ddclient restart

1回だけ手動で実行する場合はこちら
$ sudo ddclient -daemon=0 -verbose^

コメント