今ならXeonも搭載可能なPCサーバー「PowerEdge SC440」が2万円台から買える!

マウスコンピューター」ならWindows抜きでもPCが買える。Linuxサーバーとしての利用に最適!

トップページ

  • tarの使い方
  • rpmの使い方
  • psコマンドでプロセスを確認
  • /etc/crontabを編集してアプリを自動実行
  • chkconfigコマンドでプロセスを自動起動

DiCEでIPアドレスを自動更新する

2005年2月13日 掲載
2005年12月27日 改訂
2006年6月14日 改訂

 一般的なプロバイダでは各ユーザーに割り当てられるグローバルIPは一定していない。そのときどきで空いているグローバルIPが割り振られるため、いつのまにか割り当てられたグローバルIPが変わっていたなんてことになる。グローバルIPが変わっているかどうかを調べ、変わっていたときはDDNSサービスに登録をしなおす。とても面倒な作業であり、日常的におこなうなんて不可能に近い。
 そこで登場するのが「DiCE」というソフトである。DiCEは定期的にグローバルIPをチェックし、変更があったときはDDNSサービスへの登録を行ってくれる。国内外の代表的なDDNSサーバーに対応しているので、マイナーなサービスでない限りはDiCEで自動更新ができる。もちろん、ほかのページで紹介している「DynamicDO!.jp」にも対応している。

DiCEのインストール

 まずはDiCEをダウンロードして、インストールしよう。
 DiCE DynamicDNS client(for Linux)のページから「DiCEd Version0.19」をダウンロードする。GUIバージョンではなく、CUIバージョンをダウンロードする。
 WindowsでダウンロードしたものをSambaの共有フォルダを経由してサーバーに送ったり、ftpでアップロードするという手もある。だが、Vine Linuxのコマンドラインからダウンロードするには、「wget」を使って次のように操作する。DiCEを「/usr/local」ディレクトリへインストールすることを前提として、「/usr/local」に移動してからダウンロードするといい。
 なお、wgetに続くURLは変更されることがあるので、DiCEのページで最新のURLを確認する。また、wgetがインストールされていないときは「apt-get install wget」でインストールできる。

# cd /usr/local/ ←インストール先ディレクトリに移動
# wget http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019
--19:17:23--  http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=dic
ed019
           => `download.cgi?p=diced019'
www.hi-ho.ne.jp をDNSに問いあわせています... 202.224.157.11
www.hi-ho.ne.jp[202.224.157.11]:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://homepage3.nifty.com/sarad/diced01913.tar.gz [続く]
--19:17:23--  http://homepage3.nifty.com/sarad/diced01913.tar.gz
           => `diced01912.tar.gz'
homepage3.nifty.com をDNSに問いあわせています... 61.121.100.78, 61.121.100.100
homepage3.nifty.com[61.121.100.78]:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1,092,747 [application/x-gzip]

100%[====================================>] 1,092,747      4.87M/s

19:17:24 (4.85 MB/s) - `diced01913.tar.gz' を保存しました [1092747/1092747]
#

 ダウンロードしたファイルを「tar」コマンドを使って展開する。インストールはこれで完了だ。DiCEにはインストーラはなく、どこか適当なディレクトリに展開するだけでいい。ファイル名はバージョンによって変わってくるので、新バージョンのときはファイル名を適宜変更する。

# tar zxvf diced01913.tar.gz ←ダウンロードしたファイルを展開
DiCE/
DiCE/diced
DiCE/ipcheck.dat
:
DiCE/plug-in/JSPEED.plg
DiCE/plug-in/IPDYN.plg
DiCE/plug-in/DnsTokyo.plg
#

自動更新を設定する

 それではDiCEを起動して、DDNSを自動更新するように設定しよう。DiCEのディレクトリに移動して、「./diced」と入力すればDiCEが起動する。まずは「setup」でDiCE全体の環境設定を行い、次に「add」でDDNSサービスごとの設定を行う。

# cd /usr/local/DiCE/ ←DiCEのディレクトリへ移動
# ./diced ←DiCEを実行する =-=-=- DiCE DynamicDNS Client -=-=-= Version 0.19 for Japanese Copyright(c) 2001 sarad :setup ←DiCEの環境設定を行う(初回起動時のみ) IPアドレスの検出方法を指定してください (0) 自動検出 (1) ローカルのネットワークアダプタから検出 (2) 外部のスクリプトから検出 <現在:0> (N)変更しない (P)戻る >0 ------------------------------------------------- プライベートIPアドレスも検出対象ですか? (Y/N) <現在:いいえ> (P)戻る >n ------------------------------------------------- IPアドレスの検出をテストしますか? (Y/N) (P)戻る >y 検出IPアドレス>61.121.79.40 ------------------------------------------------- IPアドレスの検出をテストしますか? (Y/N) (P)戻る >n ------------------------------------------------- IPアドレスをチェックする間隔を指定してください(分) 設定可能範囲は5分以上です <現在:10> (N)変更しない (P)戻る >n ================================================= DNSサーバーの負荷を軽減するために頻繁なDNS更新を防ぐ必要があります 前回の更新から一定時間DNS更新処理を行わないように保護時間を設定して ください(分) 設定可能範囲は10分から1440分です <現在:60> (N)変更しない (P)戻る >n ================================================= 設定を保存しますか? (Y/N) (P)戻る >y 設定を保存しました ================================================= :add ←DDNSサービスの個別設定を行う 新しくイベントを追加します DynamicDNSサービス名を入力してください "?"で対応しているサービスを一覧表示します (P)戻る >? ZENNO.COM livedoor MyDNS.JP pcc.jp JPN.ch MyIP.US @nifty StaticCling MyServer ddns.ca p2p did.expoze.com Dynamx WebReactor unicc Earth DNS2Go EveryDNS Now.nu dynDNS.it onamae.com DION ODN ysdn ddo.jp Netservers todd USA cjb Dyn.ee BIGLOBE dnip my-domain ZoneEdit ZiVE yi theBBS SelfHOsT No-IP nicolas miniDNS Microtech instat ieServer HAMMERNODE GetmyIP Dynup Dynu dyns DynDSL DynDNSdk dyndns DtDNS dnsQ dhs DDNS.nu cheapnet changeIP ARTofDNS VALUEDOMAIN ODS JSPEED IPDYN DnsTokyo ================================================= 新しくイベントを追加します DynamicDNSサービス名を入力してください "?"で対応しているサービスを一覧表示します (P)戻る >ddo.jp ------------------------------------------------- << Dynamic DO!.jp >> URL: http://ddo.jp/ *** 情報 *** ユーザー名の入力は不要です 独自ドメインの場合はドメイン名を”ホスト”の所へ入力してください ================================================= ドメイン名を入力してください "?"でドメイン一覧を表示します (P)戻る >center-left.ddo.jp ←取得したドメインを指定する ================================================= ホスト名を入力してください (P)戻る > ================================================= ログインユーザ名を入力してください (P)戻る > ================================================= ログインパスワードを入力してください (P)戻る >password ←設定したパスワードを入力する ================================================= 登録するIPアドレスを入力してください 空白にすると現在のIPアドレスを自動検出します (P)戻る > ================================================= このイベントに題名を付けてください (P)戻る >ddo.jp ================================================= このイベントを実行するスケジュールを設定します ------------------------------------------------- 実行する頻度を指定してください (番号入力) (0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回 (4)その他の周期 (5)IPアドレス変化時 (6)起動時 (P)戻る >5 ←通常は「5」を指定する ------------------------------------------------- IPアドレスがあまり変化しない環境の場合、更新せずに一定期間を過ぎると アカウントを削除されてしまうことがあります IPアドレスの変化が無い時に実行する間隔を指定してください (0)7日毎 (1)14日毎 (2)21日毎 (3)28日毎 (4)35日毎 (5)56日毎 (6)84日毎 (P)戻る >3 ←一週間以上未更新だと削除されるので「0」を指定 ================================================= 詳細オプションを設定します ------------------------------------------------- [ サービスタイプ ] (0)無料 (1)有料 番号>0 ------------------------------------------------- [ SSL ] (0)使用する (1)使用しない 番号>1 ------------------------------------------------- [ オフライン ] (0)No (1)Yes 番号>0 ================================================= このイベントを有効にしますか? (Y/N) (イベントの有効/無効は"EN/DIS"コマンドで切替えられます) >y ================================================= イベントを保存しますか? (Y/N) >y イベント"ddo.jp"を保存しました ================================================= :list ←登録した設定を確認する (No.) (イベント名) (スケジュール) (次回予定) 0 * ddo.jp IPアドレス変化時 (28日毎) 03/03 01:23 :exec 0 ←0番のイベントを実行する + 2/3 1:38 にddo.jpが実行されました IPアドレスを更新しました :exit ←正しくIPアドレスが更新されたらDiCEを終了 #

 設定が終わったらDiCEを実行するが、そのまま実行するとほかの作業ができなくなるのでバックグラウンドで動作させる。「./diced -d -l」とすればDiCEはデーモンとして動作する。ちなみに「-d」というオプションはバックグラウンドのデーモン動作を指定するもの、「-l」というオプションはログを記録するものだ。

# ./diced -d -l ←DiCEをバックグラウンドで実行する 
=-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad
      
DiCE Daemon Started !!
# ps -C diced ←DiCEが動作しているかを確認する
PID TTY          TIME CMD
1256 ?        00:00:00 diced
#

システム起動時にDiCEを自動起動

 うまく動作することが分かったら、起動時にDiCEを自動実行するように指定しておこう。このままでは毎回起動時に「/usr/local/DiCE/diced -d -l」を実行しなければならない。
 起動時に自動実行するためには「/etc/rc.d/rc.local」にDiCEを起動するコマンドを追加する。

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.


#### Vine stuff: still generate /etc/issue* here

if [ -f /etc/vine-release ]; then
    R=$(cat /etc/vine-release)

    arch=$(uname -m)
    a="a"
    case "_$arch" in
        _a*) a="an";;
        _i*) a="an";;
    esac

    NUMPROC=`egrep -c "^cpu[0-9]+" /proc/stat`
    if [ "$NUMPROC" -gt "1" ]; then
        SMP="$NUMPROC-processor "
        if [ "$NUMPROC" = "8" -o "$NUMPROC" = "11" ]; then
            a="an"
        else
            a="a"
        fi
    fi

    # This will overwrite /etc/issue at every boot.  So, make any changes you
    # want to make to /etc/issue here or you will lose them when you reboot.
    echo "" > /etc/issue
    echo "$R" >> /etc/issue
    echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue

    cp -f /etc/issue /etc/issue.net
    echo >> /etc/issue
fi

#### Vine stuff ends here


touch /var/lock/subsys/local
/usr/local/DiCE/diced -d -l ←最後にこの一行を付け加える
 
掲示板 管理者のサイト トップページへ

お問い合わせや間違いのご指摘はyasu@center-left.comまでメールください。