TOTAL:746, TODAY:122

玄箱HGのddclient設定

玄箱で自宅Webサーバを立ち上げる前に、ddclientはうまく動いており、設定方法も忘れつつあったので、その方法を書いていませんでした。しかし、偶然、/var/log/syslogのメッセージを見ると、4月4日の1:30ぐらいから、次のようなメッセージを吐いてddclientが失敗していることに気づきました。

Apr  4 01:38:16 kurohg ddclient[1133]: WARNING:  cannot connect to 
checkip.dyndns.org:80 socket: IO::Socket::INET: 
Bad hostname 'checkip.dyndns.org'

しかも、この直前に玄箱HGを私自身がrebootしており、それから、おかしくなったようです。そのため、再度、ddclientの設定を見直しました。結局、解決できたのですが、ddclientでハマったのは、2回目ですので、ハマった経験も含めて、設定方法を紹介します。
まず、いつものようにaptitudeでddclientをインストールします。

# aptitude install ddclient

このように、aptitudeでddclientをインストールすると、バージョンは3.6.2で問題なく動かせるのですが、DynDNSのサイトでは、最新のddclient3.7がリンクされています。これで動かそうとすると、ddclinetがcheckip.dyndns.orgへの接続に失敗します。理由はよく分かりませんが、DnyDNSのddclient設定例を見ると、ddclient3.7からssl-updatesがサポートされ、ddclient.confに、ssl=yesという行が必要で、しかも、Debianの場合は、libio-socket-ssl-perlが必要みたいです。案の定、そんなものはインストールされておらず、当時はそんなことに気付きもしませんでした。ということで、

★★★ ddclientは、aptitudeでinstallした方が無難 ★★★

です。もしかしたら間違っているかもしれませんので、ddclient3.7以上でうまく動かしている方はぜひ教えてください。
aptitudeでinstallしたならば、/etc/ddclient.confに設定ファイルができます。(ちなみに、3.7の場合は、/etc/ddclient/ddclient.confにできます。)このddclient.confを次のように設定します。

#daemon=300
pid=/var/run/ddclient.pid
protocol=dyndns2
#use=if, if=
use=web
wildcard=yes
server=members.dyndns.org
login=DynDNSで設定したログイン名
password=DynDNSで設定したパスワード
arakin.dyndns.org

もっと詳しい例は、/usr/share/doc/ddclient/examples/sample-etc_ddclient.confにありますので、カスタマイズしてください。デフォルトでは、5分間隔でチェックするようになっており、そんなに煩雑にIPアドレスが変わらないならば、daemon=300という行を変更した方が玄箱の負荷は下がります。秒単位の設定ですので、300は5分ということになります。/etc/ddclient.confを編集後、次のテストを行い、うまく動くことを確認します。

# ddclient -daemon=0 -verbose

うまく動けば、次のようなメッセージが出力されます。

SUCCESS:  arakin.dyndns.org: skipped: IP address was already set to ...

その後、ddclientをリスタートさせれば、完了です。

# /etc/inet.d/ddclient restart

これでずーっと動いていたのですが、玄箱を久しぶりにrebootしてリフレッシュさせようと思ったら、急に動かなくなりました。調べてみると、pingも反応しておらず、DNS(domain name server)の設定がおかしい事に気付きました。それで、DNSの設定である/etc/resolv.confを見ると、次のようになっており、空っぽでした。

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

たしか次のようにルーターのアドレスを設定した記憶があるのですが、消え去っていました。

nameserver 192.168.***.***   <= ルーター(私の場合、AirStation)のアドレス

再度、手書きで編集してもその場しのぎにはなりますが、「手で編集するな!」ということなので、ネットで調べました。解決策は、もめす屋さんにありました。これを読むと、resolvconfがインストールされている場合、DNSの設定は、/etc/network/interfacesを参照するようになるみたいです。そこで、次の太字で書いた2行を/etc/network/interfacesに追加しました。

iface eth0 inet static
address 192.168.***.***        <- 玄箱のアドレス
network 192.168.***.0         
netmask 255.255.255.0
broadcast 192.168.***.255
gateway 192.168.***.***        <- ルーターのIPアドレス

#dns-search arakin.dyndns.org
dns-nameservers 192.168.***.***  <- ルーターのIPアドレス

dns-searchは有り難味がよく分からないので、コメントアウトしています。設定後、次のようにネットワーク設定をリスタートします。

# /etc/inet.d/networking restart

すると、/etc/resolv.conf(実体は/etc/resolvconf/run/resolv.conf)に、自動的にDNSが書き込まれるようです。

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.***.***

こうなればOKで、再度、ddclientをテストします。

# ddclient -daemon=0 -verbose

うまく動いたならば、ddclientデーモンを再起動しておきましょう。

# /etc/inet.d/ddclient restart

再起動しないと、まだ/var/log/syslogにエラーを吐き続けるようです。私にとって、ddclientは鬼門のようです。しかし、たまには再起動することで、設定の問題点が分かることもあるみたいで、かえって良かったのかもしれませんね。

最新の7件

OpenGL

電子工作

玄箱HG

ホームページ

日記

Copyright (C) 2007 Arakin , All rights reserved.