Carpe Diem

  Top > スポンサー広告> 自宅サーバ > DiCEでダイナミックDNSのIP更新  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DiCEでダイナミックDNSのIP更新

2013 - 05/25 [Sat] - 17:53

dyndnsさんがついに無料アカウントのダイナミックDNSを削除したので別の無料ダイナミックDNSに登録することにしました。
そのためグローバルIPが更新された時にダイナミックDNSに通知する必要が出たので紹介します。

今回登録した無料ダイナミックDNSは

CyberGate - DDNS -

です。こちらはDiCEというIP更新ツールが対応しているのでこれを用いて解説します。他にもddclientやinadynなどのツールがありますが、サイトが対応しているかどうかで使い分けしてください。

◆準備
CyberGateに登録しておきます。今回
登録ID:xxxxx
登録パス:yyyyy
ダイナミックDNS:example.luna.ddns.vc
として説明します。

それが終わったらまずはダウンロードします。
ダウンロードしたらファイルを移動して解凍します。

$ wget -O dice019.tar.gz http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019
$ sudo mv diced019.tar.gz /usr/local/bin
$ cd /usr/local/bin
$ sudo tar xvzf diced019.tar.gz
$ cd DiCE


Ubuntu 64bit版だと実行できないのでi386バイナリが実行できるようにパッケージをインストールします。

$ sudo aptitude install ia32-libs

またそのままだと文字化けするので文字コードを変更します。
$ export LANG=ja_JP.eucJP


◆設定、実行
実行します。dicedは対話的な設定になります。
$ sudo ./diced
:

このようにコロン「:」が出ます。ここにsetup、add、exit、などのコマンドを入れて設定していきます。
※コマンドの詳細を知りたいときは
:?
と「?」を入力します。


まず設定をします。
setup
IPアドレスの検出方法を指定してください
(0) 自動検出
(1) ローカルのネットワークアダプタから検出
(2) 外部のスクリプトから検出
<現在:0>
(N)変更しない (P)戻る
>n
-------------------------------------------------
プライベートIPアドレスも検出対象ですか? (Y/N)
<現在:いいえ>
(P)戻る
>n
-------------------------------------------------
IPアドレスを検出をテストしますか? (Y/N)
(P)戻る
>y
検出IPアドレス>122.122.122.122 <-自分のグローバルIPが表示されればOK
-------------------------------------------------
IPアドレスを検出をテストしますか? (Y/N)
(P)戻る
>n
-------------------------------------------------
IPアドレスをチェックする間隔を指定してください(分)
設定可能範囲は5分以上です
<現在:10>
(N)変更しない (P)戻る
>n
=================================================
DNSサーバーの負荷を軽減するために頻繁なDNS更新を防ぐ必要があります
前回の更新から一定時間DNS更新処理を行わないように保護時間を設定して
ください(分) 設定可能範囲は10分から1440分です
<現在:60>
(N)変更しない (P)戻る
>n
=================================================
設定を保存しますか? (Y/N)
(P)戻る
>y
設定を保存しました
=================================================



次にCyberGate用のイベントファイルを作成します。
add
新しくイベントを追加します

DynamicDNSサービス名を入力してください
"?"で対応しているサービスを一覧表示します
(P)戻る
>CyberGate
-------------------------------------------------
<< CyberGate - DDNS - >>
URL: http://cybergate.planex.co.jp/ddns/
*** 情報 ***
<ポート3495を使用します>
=================================================
ドメイン名を入力してください
"?"でドメイン一覧を表示します
(P)戻る
>?
        luna.ddns.vc        mars.ddns.vc      planex.ddns.vc         sun.ddns.vc
=================================================
ドメイン名を入力してください
"?"でドメイン一覧を表示します
(P)戻る
>luna.ddns.vc
=================================================
ホスト名を入力してください
(P)戻る
>example  <-- 自分が取得したホスト名。
=================================================
ログインユーザ名を入力してください
(P)戻る
>xxxxx <-- CyberGate のユーザ名を入力します。
=================================================
ログインパスワードを入力してください
(P)戻る
>yyyyy <-- パスワードが平文で表示されます。
=================================================
登録するIPアドレスを入力してください
空白にすると現在のIPアドレスを自動検出します
(P)戻る
>
=================================================
このイベントに題名を付けてください
(P)戻る
>DiCE <-任意
=================================================
このイベントを実行するスケジュールを設定します
-------------------------------------------------
実行する頻度を指定してください (番号入力)
(0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回
(4)その他の周期 (5)IPアドレス変化時 (6)起動時
(P)戻る
>5
-------------------------------------------------
IPアドレスがあまり変化しない環境の場合、更新せずに一定期間を過ぎると
アカウントを削除されてしまうことがあります
IPアドレスの変化が無い時に実行する間隔を指定してください
(0)7日毎   (1)14日毎  (2)21日毎  (3)28日毎
(4)35日毎  (5)56日毎  (6)84日毎
(P)戻る
>0
=================================================
詳細オプションを設定します
-------------------------------------------------
[ オフライン ]
(0)No (1)Yes
番号>0
=================================================
このイベントを有効にしますか? (Y/N)
(イベントの有効/無効は"EN/DIS"コマンドで切替えられます)
>Y
=================================================
イベントを保存しますか? (Y/N)
>Y
イベント"DiCE"を保存しました
=================================================



ちゃんとイベントが設定されたか確認します。
:list
(No.)(イベント名)(スケジュール)(次回予定)
0 *DiCEIPアドレス変化時 (7日毎)06/01 16:47


一度実行しておきます。
:ex 0
+ 5/25 17:46 にDiCEが実行されました
  IPアドレスを更新しました



◆cronで自動起動するようにする
$ sudo crontab -e

@reboot /usr/local/bin/DiCE/diced -d -l > /dev/null 2>&1

と加えます。@rebootはcronのキーワードの1つで、起動時に1度だけ実行されます。
ちゃんと実行されたかは
$ less /var/log/syslog

で確認してください。

以上で完了です。お疲れ様でした。


◆補足
以下エラー対処です。

○文字化けする
文字がeucなので、それにする必要があります。

$ export LANG=ja_JP.eucJP
とすればOKです。端末を再起動すればデフォルトのLANGに戻ります。
TeraTermを使用している場合は
設定>端末
の方でもEUCに変更する必要があります。


○./dicedしたのに反映されない、オフラインのまま
起動時に実行してくれない?ので、自分で実行すると確実です。
$ sudo ./diced
:ex 0

とするとその場で実行してくれるので反映されます。


○No such file or directory といったエラーがでる
DiCEは32bit向けバイナリなので、64bitで動かすとこうなります。

$ sudo aptitude install ia32-libs
とすると、32bit向けのi386バイナリを実行できるようになります。


○Exception EInOutError in module at xxxxxxxx. といったエラーがでる
root権限で実行しないとこれが出ます。

$ sudo ./diced
とするか、

$ sudo su
# ./diced

のようにrootで実行してください。


ソース:
DiCE の使用法( zive.net 用 )
IP自動更新(DiCE)
Ubuntu Linux 64bit版で32bit向けバイナリを使えるようにする
Exception EInOutError in module at 080
システム起動時に特定のコマンドを実行するには

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。