Duck DNSというダイナミックDNSサービスを使ってみた

自宅サーバーにドメインを割り当てる必要があり、「Duck DNS」というダイナミックDNSを利用してみたので、利用方法や使用感をまとめておきます。

Duck DNS 2017-05-29 15-14-37

Duck DNS

Duck DNSはフリーで使えるダイナミックDNSサービスです。固定IPが無くても、定期的にサーバー側からIPを確認する事で 特定のホスト名とサーバーのIPアドレスを結びつけてアクセス出来るようにします。
Duck DNSでは、複数のIP確認方法が提供されていますので、お好きな方法でIPの更新をすることができます。

自宅サーバーで半年以上運用していますが、特に繋がらない等の問題も起きていません。

登録方法

アカウント作成

まずDuck DNSサービスを使用するために、アカウントを作成します。

ログインはアカウントトップページ上部に、FacebookやTwitter、Googleのアカウントのリンクがありますので、お好きな方法でログインします。

Duck DNS 2017-05-29 15-30-48

ドメインの取得

取得したいドメインを入力欄に入力し、「add domain」を押します。

Duck DNS 2017-05-29 15-26-37

既に他のユーザーが取得済のドメインだった場合、以下のようにエラーメッセージが表示されます。

Duck DNS 2017-05-29 15-45-59

無事に取得できると、下の部分に取得したドメインと取得したIPアドレスが表示されます。

Duck DNS 2017-05-29 15-47-39

以上でドメインが取得できました。

IPアドレス変更通知固定

固定IPではなく、プロバイダから払い出されたIPを使っている場合、ルータの再起動等でIPアドレスが変わる可能性があります。その時でも、ドメイン宛のアクセスを自宅サーバーに向けさせるために定期的にIPアドレスの変更通知をDuck DNS側に伝える必要があります。

IPアドレスの変更を通知させる方法は、サイト上部にある「Install」をクリックします。

Duck DNS - install 2017-05-29 18-32-29

Installをクリックすると、下部にそれぞれのプラットフォームごとにIP変更通知の方法がでてきます。今回はLinuxのCRONを使って変更通知を行ってみます。

「linux cron」を選択して、事前に設定したドメインを選択すると、作業手順が表示されます。

Duck DNS - install 2017-05-29 18-36-33

基本的にこの作業手順に沿って実施していきます。まずは以下のコマンドを実行します。

ps -ef | grep cr[o]n

何も出力がない場合は、CRONがインストールされていないので、別途CRONをインストールします。
続いて以下のコマンドを実行して、curlがインストールされているかを確認します。

curl

CRONと同様に何も出力されない場合は、curlをインストールします。
続いて以下のコマンドを実行して、「duckdns」というディレクトリを作成し、その中に「duck.sh」というファイルを作成します。

mkdir duckdns
cd duckdns
vi duck.sh

「duck.sh」に以下のコマンドを記述します。

echo url="https://www.duckdns.org/update?domains=hogehogehoge&token=xxxxxxxxxx&ip=" | curl -k -o ~/duckdns/duck.log -K -

以下コマンドでファイルに実行権限を与えます。

chmod 700 duck.sh

続いてCRON設定を行います。

crontab -e

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

以上でCRON設定は終了です。
試しに、作成した「duck.sh」を実行してみます。

./duck.sh

実行すると同じディレクトリに「duck.log」というファイルが生成されます。

cat duck.log

ファイルに「OK」と書かれていれば問題なく動作しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください