Duck DNSというダイナミックDNSサービスを使ってみた
自宅サーバーにドメインを割り当てる必要があり、「Duck DNS」というダイナミックDNSを利用してみたので、利用方法や使用感をまとめておきます。
Duck DNS
Duck DNSはフリーで使えるダイナミックDNSサービスです。固定IPが無くても、定期的にサーバー側からIPを確認する事で 特定のホスト名とサーバーのIPアドレスを結びつけてアクセス出来るようにします。
Duck DNSでは、複数のIP確認方法が提供されていますので、お好きな方法でIPの更新をすることができます。
自宅サーバーで半年以上運用していますが、特に繋がらない等の問題も起きていません。
登録方法
アカウント作成
まずDuck DNSサービスを使用するために、アカウントを作成します。
ログインはアカウントトップページ上部に、FacebookやTwitter、Googleのアカウントのリンクがありますので、お好きな方法でログインします。
ドメインの取得
取得したいドメインを入力欄に入力し、「add domain」を押します。
既に他のユーザーが取得済のドメインだった場合、以下のようにエラーメッセージが表示されます。
無事に取得できると、下の部分に取得したドメインと取得したIPアドレスが表示されます。
以上でドメインが取得できました。
IPアドレス変更通知固定
固定IPではなく、プロバイダから払い出されたIPを使っている場合、ルータの再起動等でIPアドレスが変わる可能性があります。その時でも、ドメイン宛のアクセスを自宅サーバーに向けさせるために定期的にIPアドレスの変更通知をDuck DNS側に伝える必要があります。
IPアドレスの変更を通知させる方法は、サイト上部にある「Install」をクリックします。
Installをクリックすると、下部にそれぞれのプラットフォームごとにIP変更通知の方法がでてきます。今回はLinuxのCRONを使って変更通知を行ってみます。
「linux cron」を選択して、事前に設定したドメインを選択すると、作業手順が表示されます。
基本的にこの作業手順に沿って実施していきます。まずは以下のコマンドを実行します。
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」と書かれていれば問題なく動作しています。