ダイナミックDNSを使ってみた

実家のパソコンにSSHや自作サーバーを立てて遊ぼうと思っていたんですが、たまにIPアドレスが変わってしまい接続できなくなるのでダイナミックDNSというサービスを利用することにしました。

環境

ダイナミックDNSとは

Wikipediaによると、
「ダイナミックドメインネームシステム (Dynamic Domain Name System、ダイナミックDNSDDNS) は、動的に割り当てられるIPアドレスと、そのホスト名の対応を、動的に登録・管理する仕組みである。」
らしいです。ようするに変化するIPアドレスに対して固定されたホスト名でアクセス出来るということです。ただしIPアドレスが変化したら、そのことをダイナミックDNSに通知しないといけません。

設定方法

ダイナミックDNSサービスに登録

まずはダイナミックDNSのサービスに登録します。国内ではieServer.Net等が有名ですが、ddclientで使うには少し手間がかかるので、ArchWikiで紹介されているFreeDNS.afraid.orgを使うことにしました。

FreeDNSの登録方法
  1. FreeDNSのトップページ一番下のSign Up!をクリック
  2. 必要事項を入力
  3. すぐにメールが届くので、そこからアカウントをアクティベート
  4. FreeDNSの左メニューのRegistryをクリック
  5. statuspublicドメインの中から好きなもの選択
  6. サブドメインを追加
  7. Save!をクリック

登録はこれで完了。登録内容の変更は左メニューのSubdomainsから出来ます。

Subdomainが「fuga」、Domainが「hogehoge.com」なら「fuga.hogehoge.com」でDestinationIPアドレスにアクセスできるようになります。

ダイナミックDNSクライアントのインストール

IPアドレスの変更を検知してダイナミックDNSサーバーの登録情報を更新してくれるのがダイナミックDNSクライアントです。これも種類がいくつかあるようですが、ArchWikiで紹介されているddclientを使うことにしました。

ddclientのインストール
$ pacman -S ddclient (要管理者権限)
ddclientの設定
$ nano /etc/ddclient/ddclient.conf (要管理者権限)
daemon=300   # IPアドレスをチェックする間隔(秒)
timeout=10
cache=/tmp/ddclient.cache
pid=/var/run/ddclient.pid
syslog=no
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
ssl=yes
protocol=freedns
server=freedns.afraid.org
login=FreeDNSのID
password=FreeDNSのパスワード
更新したいSubdomain.Domain (記述例: fuga.hogehoge.com)
ddclientの有効化
$ systemctl enable ddclient.service (要管理者権限)

これで300秒(5分)毎にIPアドレスをチェックして、もし変化していればFreeDNSのSubdomain.DomainのIPアドレスを自動的に更新してくれます。