====== ddclientでDynDNSを自動更新する ====== FreeBSD 6.1-RELEASEでddclientでダイナミックDNSサービスの1つ、DynDNSのDNS情報を自動更新する方法のメモ。 ===== ddclientのインストール ===== portsからddclientをインストールする。 cd /usr/ports/dns/ddclient make install; clean ===== ddclientの設定 ===== /usr/local/etc/ddclient.conf.sampleをコピーしたファイルに設定を書き込む。 # cd /usr/local/etc # cp ddclient.conf.sample ddclient.conf # ee ddclient.conf #use=ip, ip=127.0.0.1 # via static IP's #use=if, if=eth0 # via interfaces use=web # via web (Webサイト経由でIPアドレスを取得する) login=(ユーザー名) # default login password=(パスワード) # default password #mx=mx.for.your.host # default MX #backupmx=yes|no # host is primary MX? #wildcard=yes|no # add wildcard CNAME? ## ## dyndns.org dynamic addresses ## ## (supports variables: wildcard,mx,backupmx) server=members.dyndns.org, \ protocol=dyndns2 \ (取得したDynDNSホスト名) ===== rc.confの設定 ===== ddclientをデーモンとして起動させるために、/etc/rc.confに以下の一文を付け加える。 ddclient_enable="YES" ===== 動作確認 ===== 以下のコマンドを実行し、正しく動作するか確認する。 # ddclient -daemon=0 -debug -verbose -noquiet (中略) === cache ==== DEBUG: proxy = DEBUG: url = http://checkip.dyndns.org/ DEBUG: server = checkip.dyndns.org DEBUG: opt(fw = Use of uninitialized value in concatenation (.) or string at /usr/local/sbin/ddclient line 1646. DEBUG: glo fw = CONNECT: checkip.dyndns.org CONNECTED: using HTTP SENDING: GET / HTTP/1.0 SENDING: Host: checkip.dyndns.org SENDING: User-Agent: ddclient/3.7.0 SENDING: Connection: close SENDING: RECEIVE: HTTP/1.1 200 OK RECEIVE: Content-Type: text/html RECEIVE: Server: DynDNS-CheckIP/0.2 RECEIVE: Connection: close RECEIVE: Cache-Control: no-cache RECEIVE: Pragma: no-cache RECEIVE: Content-Length: 105 RECEIVE: RECEIVE: Current IP CheckCurrent IP Address: XXX.XXX.XXX.XXX DEBUG: get_ip: using web, http://checkip.dyndns.org/ reports XXX.XXX.XXX.XXX INFO: forcing updating your-host.dyndns.org because no cached entry exists. DEBUG: DEBUG: nic_dyndns2_update ------------------- INFO: setting IP address to XXX.XXX.XXX.XXX for your-host.dyndns.org UPDATE: updating your-host.dyndns.org DEBUG: proxy = DEBUG: url = http://members.dyndns.org/nic/update?system=dyndns&hostname=your-host.dyndns.org&myip=XXX.XXX.XXXX.XXX DEBUG: server = members.dyndns.org DEBUG: opt(fw = Use of uninitialized value in concatenation (.) or string at /usr/local/sbin/ddclient line 1646. DEBUG: glo fw = CONNECT: members.dyndns.org CONNECTED: using SSL SENDING: GET /nic/update?system=dyndns&hostname=your-host.dyndns.org&myip=XXX.XXX.XXX.XXX HTTP/1.0 SENDING: Host: members.dyndns.org SENDING: Authorization: Basic YYYYYYYYYYYYYYYY SENDING: User-Agent: ddclient/3.7.0 SENDING: Connection: close SENDING: RECEIVE: HTTP/1.1 200 OK RECEIVE: Date: Sun, 10 Sep 2006 01:28:56 GMT RECEIVE: Server: Apache/1.3.33 (Unix) mod_perl/1.29 RECEIVE: Content-Type: text/plain; charset=ISO-8859-1 RECEIVE: Connection: close RECEIVE: RECEIVE: nochg XXX.XXX.XXX.XXX WARNING: updating your-host.dyndns.org: nochg: No update required; unnecessary attempts to change to the current address are considered abusive このログでは「IPアドレスが変わってないから、登録情報を変更する必要はないよ」と出ているので、恐らく上手く動作していると思われる。