DDNSサービス、DuckDNSの使い方

無料で使えるDDNSサービス、DuckDNSの使い方です

まずはアクセスしましょう

https://www.duckdns.org/

アクセス後、何をしていいかよく分からないと思いますが、まず初めにアカウントを作ります

上部にFaceBookやらGoogleのアカウントやらでログイン出来ます的なバナーのような部分があると思うので、好きなサービスを選択しましょう

私はGoogleの捨てアカウントでやりました

ログイン後はこんな画面です

まずはhttpから始まる取得したいドメイン情報を入力し、 add domainという緑色のところをクリックします

私のブログの場合は、http://engineer-world.duckdns.orgなので、sub domainの欄にはengineer-worldと入力し、add domainをクリックしています

追加されると、下の部分に取得したドメインの情報が入ります

ドメイン名、取得した場所のIPアドレスなどが表示されます

これで取得は終わりなのですが、取得場所が今の場所と異なる、あるいはというかほとんどの場合、固定IPではなく各プロバイダから割り当てられるDHCPでグローバルIPアドレスを取得してるはずなので、ルーターの電源が切れたり再起動したりするとグローバルIPが変わってしまいます

変わってしまうと、当然ですがホスト名以降の解決先のIPアドレスが見当たらないので接続してもWebサーバーなり、VPNサーバーなりを表示することが出来ません

これでは困る、というわけですが、このサービスではちゃんと自動化の仕組みを記載してくれています

私はLinuxのサーバー上でcronを使って定期的にIPアドレス変更通知をDuckDNS側に行っています

自動化の手段はLinuxやWindows向けや色々と用意されていますので、まずは上の方にあるinstallを開きましょう

色々と出てきますが・・・この中から自分が使いたいものを選びます

私の場合はLinuxのcronなので、一番左上を選択します

後は指示に従うだけなのですが、折角なのでLinuxのcronのパターンを紹介します

まずは以下のコマンドを実行します

$ ps -ef | grep cr[o]n

このコマンドを実行して何も返ってこなかった場合は、cronがインストールされていないので、cronをインストールしてください

次にcurlがインストールされているかを確認します

$ curl

これも先ほどと同様で、curlがインストールされていない場合はcurlをインストールしてください

以下、cronとcurlがインストールされている前提です

$ mkdir duckdns
$ cd duckdns
$ vim duck.sh

duck.shの中に以下の情報をコピペします

echo url="https://www.duckdns.org/update?domains=取得したドメイン名&token=各アカウント毎のトークン情報&ip=" | curl -k -o ~/duckdns/duck.log -K -

取得したドメイン名には、https://から始まり、自分で取得したサブドメイン名.duckdns.orgを入力します

トークン情報には、DuckDNSにログインした際のアカウント情報欄に掲載されているtokenのところにある英数字の長い羅列を入力します

どちらも入力ミスがあるので、コピペしましょう

記入後、保存してください

次に権限を変えます

$ chmod 700 duck.sh

続いてcronを定期的に実行する為にcrontabを開きます

$ crontab -e

一番下に以下の情報を記入します

*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1

記入後保存してください

記入が終わったduck.shを実行します

$ ./duck.sh

実行結果を確認しましょう

$ cat duck.log

ここでOKと出れば完了です

KOと出てしまった場合、先ほど記入したドメイン情報やトークン情報のところに不備があるという意味になります

ところで、そもそもPermissionで実行出来ないようなエラーメッセージの場合は、sudo bashでも頭につけて実行して見てください

設定は以上です。お疲れ様でした