無料で使えるDDNSサービス、DuckDNSの使い方です
まずはアクセスしましょう
アクセス後、何をしていいかよく分からないと思いますが、まず初めにアカウントを作ります
上部に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でも頭につけて実行して見てください
設定は以上です。お疲れ様でした