Asus Merlinで独自ドメインのDDNS設定
はじめに
こんにちは、趣味で情報分野をやっているいがめたと申します。
Zennのようなプラットフォームで記事を書くのは初めてなので至らぬ点も多いと思いますがよろしくおねがいします。
前提
この記事では
- Asus製ルータにMerlinFWを導入済みであり、SSH接続が行えること
- In-a-dynを利用するため384.7以降のMerlinが導入されていること
この2つを前提とします。
Merlinの導入やSSHの設定などは各自で行ってください。
また、本記事を参考に行った操作によって発生したいかなる損害にも責任を負いません。
既存のDDNSの設定を削除
すでに他のDDNS設定が存在する場合、必要であれば以下を行ってください。
- WAN→DDNSからDDNSクライアントを有効にするをいいえに変更し適用(WebUI)
-
/jffs/scripts/
内のDDNS関連の設定ファイルを削除(SSH) - ルータの再起動
ドメインを設定
まずドメインを設定していきます。
SSHでルータにログインして
nano /jffs/inadyn.conf
を実行して/jffs
以下にinadyn.conf
を作成し、中身に設定したいDDNSサービス向けの記述を行います。
例えばCloudFlareに登録したAレコードをTTLを自動、プロキシを無効で更新したい場合は
provider cloudflare.com {
user-agent = Mozilla/5.0
username = Zone.name (ドメイン)
password = API_Token
hostname = RecordName.Zone.name
ttl = 1
proxied = false
}
のように記述します。
他サービスの記述方法についてはIn-a-dynのリポジトリから参照してください。
残りのドメインを設定
次に残りのドメインの設定を行います。
nano /jffs/configs/inadyn.conf.add
を実行して/jffs/configs
以下にinadyn.conf.add
を作成し最初に設定したドメインと同じ記述の方法で残りのドメインを設定します。
nano /jffs/scripts/ddns-start
を実行して/jffs/scripts
以下にddns-start
を作成し以下のように記述します
#!/bin/sh
inadyn --once -f "/jffs/inadyn.conf" -e "/sbin/ddns_custom_updated 1" --continue-on-error "/sbin/ddns_custom_updated 0"
inadyn --once -f "/jffs/configs/inadyn.conf.add" -e "/sbin/ddns_custom_updated 1" --continue-on-error "/sbin/ddns_custom_updated 0"
DDNSを設定
最後にWebUIからログインして
1.WAN→DDNSからDDNSクライアントを有効にするをはいに変更
2.サーバーをCustom
に変更
3.ホスト名に最初に設定したドメインを入力し適用
以上を行いRegistration is successful
のダイアログが表示されれば設定完了です。
ダイアログが表示されなかった場合はシステムログにIn-a-dynの更新が成功した旨のログが残っていることを確認してください。
更新が失敗した場合はDDNSサービス向けの設定を確認し入力ミス等がないことを確認してください。
CloudFlareを利用する場合、他で利用したAPIトークンを流用したときに正常に更新できない場合があるのでそのときはトークンを再生成してください。
最後に
この記事をご覧いただきありがとうございます。
少しでもみなさんのお役に立てたのなら幸いです。
そうでなければごめんなさい。
諸事情でルータから複数ドメインをDDNSしたいと思い調べたところ英語の情報しかなかったのでこの記事を書かせていただきました。
途中、本文にも書いたように前に使っていたスクリプトに使用していたAPIトークンを流用して設定を行ったらzone not found
と返されて原因がわからず二時間くらい公式ドキュメントと関連issueを読み漁ったのに結局トークンを再生成したら正常に動作して泣いた。
なんだったんだあの時間は......
Discussion