目次

FreeBSD 9.2RでddclientでNo-IPのDDNSを更新

前置き

ドメインのレジストラ変更に伴い、VALUE DOMAIN提供のダイナミックDNSからNo-IPへ乗り換えたメモ。

環境

手順

ddclientをインストール

sudo portmaster dns/ddclient

設定ファイルを編集

/usr/local/etc/ddclient.conf.sampleにサンプルがあるけど、No-IPの設定例は載ってないので直接/usr/local/etc/ddclient.confを作っちゃう。

daemon=1200
syslog=yes
pid=/var/run/ddclient.pid
ssl=yes
 
protocol=noip
login=USERNAME
password=PASSWORD
use=web
YOURHOST.ddns.net

家は光回線でそう滅多に切れることもないと思われるので、更新間隔は1200秒にしてみた。

パスワードを平文で書くことになるので、ファイルのパーミッションを落としておくのも忘れずに。

ちなみに、ptorocolに使える値はGitHubでソースを見るのが一番早い。

動作確認

$ sudo ddclient -daemon=0 -verbose -noquiet
CONNECT:  checkip.dyndns.org
CONNECTED:  using HTTP
SENDING:  GET / HTTP/1.0
SENDING:   Host: checkip.dyndns.org
SENDING:   User-Agent: ddclient/3.8.2
SENDING:   Connection: close
SENDING:
RECEIVE:  HTTP/1.1 200 OK
RECEIVE:  Content-Type: text/html
RECEIVE:  Server: DynDNS-CheckIP/1.0
RECEIVE:  Connection: close
RECEIVE:  Cache-Control: no-cache
RECEIVE:  Pragma: no-cache
RECEIVE:  Content-Length: 105
RECEIVE:
RECEIVE:  <html><head><title>Current IP Check</title></head><body>Current IP Address: XXX.XXX.XXX.XXX</body></html>
INFO:     forcing updating YOURHOST.ddns.net because no cached entry exists.
INFO:     setting IP address to  XXX.XXX.XXX.XXX for YOURHOST.ddns.net
UPDATE:   updating freyja.ddns.net
here...USERNAME--> PASSWORD
CONNECT:  dynupdate.no-ip.com
CONNECTED:  using SSL
SENDING:  GET /nic/update?system=noip&hostname=YOURHOST.ddns.net&myip=XXX.XXX.XXX.XXX HTTP/1.0
SENDING:   Host: dynupdate.no-ip.com
SENDING:   Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXX
SENDING:   User-Agent: ddclient/3.8.2
SENDING:   Connection: close
SENDING:
RECEIVE:  HTTP/1.1 200 OK
RECEIVE:  Date: Wed, 18 Feb 2015 04:01:32 GMT
RECEIVE:  Server: Apache
RECEIVE:  Content-Location: update.php
RECEIVE:  Vary: negotiate,Accept-Encoding
RECEIVE:  TCN: choice
RECEIVE:  Content-Length: 19
RECEIVE:  Connection: close
RECEIVE:  Content-Type: text/plain
RECEIVE:
RECEIVE:  nochg XXX.XXX.XXX.XXX
WARNING:  updating freyja.ddns.net: nochg: No update required; unnecessary attempts to change to the current address are considered abusive and edit it to fit your needs.

確実さを求めるなら、No-IPの管理ページで一度適当なIPアドレスに設定してからテストするのが良い。

起動設定

システム起動時にデーモンとして自動起動させる。

echo 'ddclient_enable="YES"' >> /etc/rc.conf

更に、No-IPではIPアドレスの更新問い合わせが1ヵ月なかった場合ホストが削除されてしまうので、1日1回強制的に更新を行うようにする。

echo 'daily_ddclient_force_enable="YES"' >> /etc/periodic.conf

参考サイト