はじめに
2019年3月1日より、.dev ドメインの一般登録受付が始まったので、流行に乗って購入してみました。
これまでは「ムームードメイン」でドメインの取得・管理をしていたのですが、残念ながらムームードメインは .dev を取り扱っていなかったので、これを機に Google Domains を使ってみることにしました。
また、これまでは無料の DDNS サービス「MyDNS」で設定したドメインに、「ムームードメイン」で取得した独自ドメインからエイリアスを張るという少々厄介な運用をしていたのですが、Google Domains には DDNS 機能が用意されているようなので、これを使ってみることにします。
なお、今回は Raspberry Pi で DDNS の設定をする方法を紹介しますが、ほとんどの Debian 系 Linux システムでも同じ方法で設定することができるかと思います。
Google Domains でドメインを取得する
Google Domains で欲しいドメイン名を検索し、必要な情報を入力していくとドメインを購入することができます。
DDNS の設定をする
Google Domains 側の設定
ドメインを取得した後、以下のリンクからドメイン管理画面に飛ぶことができるようになります。
1つしかドメインを持っていない場合には自動的にそのドメインの情報が表示されるようですが、もし複数のドメインを持っている場合にはDDNSを設定したいドメインを選択してください。
管理画面を開いたら、左のメニューから「DNS」の項目をクリックします。
「合成レコード」という項目までスクロールし、合成レコードタイプのリストから「ダイナミックDNS」を選択してください。
DDNSを設定するサブドメインを「サブドメイン」の欄に入力し、「追加」をクリックしてください。なお、ルートドメインにDDNSを設定する場合には「@」を入力します。
そうすると、ダイナミックDNSレコードが合成レコードのリストに作成されるので、レコードの左側にある「>」をクリックして値を表示します。
続いて、「認証情報を表示」をクリックして、このレコードのユーザー名とパスワードを表示します。このユーザー名とパスワードは Raspberry Pi 側の設定で使用します。
Raspberry Pi 側の設定
DDNS の更新には ddclient というソフトウェアを利用します。
まずは、以下のコマンドで ddclient をインストールします。
インストール完了時にセットアップウィザードが出てきますが、後から設定ファイルを直接編集するので空欄のまま適当に進めてください。(プロトコルは「others」等、適当なものを選択すれば大丈夫です。)
$ sudo apt update
$ sudo apt install ddclient -y
続いて、ddclient の設定ファイルを以下のように編集してください。
ssl=yes
protocol=googledomains
use=web
login=<Google Domainsが生成したユーザー名>
password=<Google Domainsが生成したパスワード>
example.dev (DDNSを設定するドメイン名 ※サブドメイン込み、ルートの場合は「@」なし)
デフォルトではコンピュータが認識しているIPアドレス(ipconfig
コマンド等で表示されるもの)をDDNSサーバーに通知しようとします。しかし、use=web
とすることで、http://checkip.dyndns.com のCGIにアクセスしてIPアドレスを取得してくれるので、ポートフォワーディングを使ってサーバーを公開している環境でも問題なくグローバルIPアドレスを通知することができます。
以下のコマンドでちゃんと更新できるか試してみます。
$ sudo ddclient -daemon=0 -verbose
Google Domains の画面を更新して、以下のようにIPアドレスが表示されていたら成功です。
デーモン起動している ddclient にも設定ファイルの変更を反映するため、以下のコマンドで再起動しておきましょう。
$ sudo service ddclient restart