自宅サーバ構築MY HOME SERVER
IP自動更新(スクリプト編) IP自動更新(DiCE編) |
- IP自動更新(スクリプト編) -
ホームユーザのほとんどの方は、現在ISPから割り当てられているグローバルIPは非固定IPです。(有料で固定IPにすることも出来ます)
すでにドメイン名を登録していますから、ドメイン名と現在割り当てられているグローバルIPは紐付けられています。
しかし、非固定グローバルIPはいつ変わるかわかりません。毎日変わるかもしれないし、10〜20日間隔で変わるかもしれません。
グローバルIPが変わると、取得したドメイン名との紐付けが出来なくなってしまいます。つまり、hoge123@ddo.jp で外部から
アクセスしようとしても、「サーバが見つかりません」と言うエラーが返ってきます。
そこでグローバルIPが変わったとき、自動的にドメイン名登録サイトに接続して更新してくれるスクリプトを導入します。既に
ドメイン取得が済んでいることを前提に説明します。
下記サイトを開き、自動更新用スクリプトの内容を全てコピーします。
http://ieserver.net/ddns-update.txt
[root@hoge123 ~]# cd /usr/local/bin/ [root@hoge123 /bin]# vi ddns-update.pl ← 新規作成します。 貼り付けた内容の下記の部分を編集・保存します。 # 以下2ファイルの配置ディレクトリは好みに応じ設定 # 1. 設定IPアドレスワークファイル $CURRENT_IP_FILE = "/var/log/ieserver/current_ip"; # 2. 設定状況ログファイル $LOG_FILE = "/var/log/ieserver/ip_update.log"; # 回線IP確認ページURL $REMOTE_ADDR_CHK = "http://ieserver.net/ipcheck.shtml"; # DDNS更新ページURL # wgetをSSL接続可能でビルドしているなら、https:// での接続を推奨 $DDNS_UPDATE = "https://ieserver.net/cgi-bin/dip.cgi"; # ieServer.Netにて取得したアカウント(サブドメイン)情報を記入 $ACCOUNT = "hoge123"; # アカウント(サブドメイン)名設定 $DOMAIN = "dip.jp"; # ドメイン名設定 $PASSWORD = "XXXXXXXXXXXX"; # パスワード設定 [root@hoge123 /bin]# cd [root@hoge123 ~]# chmod +x /usr/local/bin/ddns-update.pl [root@hoge123 ~]# mkdir /var/log/ieserver [root@hoge123 ~]# /usr/local/bin/ddns-update.pl ← ieServer用のIPアドレス更新を手動実行します。 更新結果は/var/log/ieserver/ip_update.logに保存されます。 [root@hoge123 ~]# cat /var/log/ieserver/ip_update.log Sun Apr 22 22:36:31 2011 hoge123.dip.jp Updated 0.0.0.0 to XXX.XXX.XXX.85 ↑ IPアドレス更新情報が、ログに記載されています。 [root@hoge123 ~]# crontab -e 最終行に追記します。10分毎にスクリプトが実行されます。 */10 * * * * /usr/local/bin/ddns-update.pl |
- IP自動更新(DiCE編) -
グローバルIPが変わったとき、自動的にドメイン名登録サイトに接続して更新してくれるソフト(DiCE)を導入します。DiCEを
ダウンロードしてから、設定します。ダウンロード先は下記のとおりです。
ダウンロード先:http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019
[root@hoge123~]# yum -y install wget ← wgetコマンドが使えるようにします。 [root@hoge123~]# cd /usr/local/ ← ダウンロード先フォルダに移動します。 [root@hoge123 local]# wget http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019 --2012-06-05 05:08:20-- http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/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/diced01914.tar.gz [続く] --2012-06-05 05:08:21-- http://homepage3.nifty.com/sarad/diced01914.tar.gz homepage3.nifty.com をDNSに問いあわせています... 2001:258:8602:351:202:248:175:225, 61.121.100.78 homepage3.nifty.com|2001:258:8602:351:202:248:175:225|:80 に接続しています... 失敗しました: 接続を拒否されました. homepage3.nifty.com|61.121.100.78|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 1094082 (1.0M) [application/x-gzip] `diced01914.tar.gz' に保存中 100%[======================================>] 1,094,082 1.98M/s 時間 0.5s 2012-06-05 05:08:21 (1.98 MB/s) - `diced01914.tar.gz' へ保存完了 [1094082/1094082] [root@hoge123 local]# ls anaconda-ks.cfg diced01914.tar.gz install.log install.log.syslog ↑ diced01914.tar.gz がルートディレクトリにダウンロードされています。(圧縮ファイルです) [root@hoge123 local]# tar zxvf diced01914.tar.gz ← ダウンロードしたファイルを展開します。 - 省略します。 - DiCE/plug-in/cheapnet.plg DiCE/plug-in/changeIP.plg DiCE/plug-in/ARTofDNS.plg DiCE/plug-in/VALUEDOMAIN.plg DiCE/plug-in/ODS.plg DiCE/plug-in/JSPEED.plg DiCE/plug-in/IPDYN.plg DiCE/plug-in/DnsTokyo.plg [root@hoge123 local]# cd DiCE ← DiCEのディレクトリへ移動 [root@hoge123 DiCE]# ./diced ← DiCEを実行します。 =-=-=- DiCE DynamicDNS Client -=-=-= Version 0.19 for Japanese Copyright(c) 2001 sarad -- 日本語が文字化けするので、Tera Termの文字コード設定をEUCに変更します。メニュー バーから「設定」、「端末」に進み「漢字-受信」「漢字-送信」をそれぞれ EUC に変更して「OK」ボタンを 押してください。DiCEの設定が終わったらUTF-8に戻すのを忘れないでください。-- :setup ← DiCEの環境設定を行います。(初回起動時のみ) IPアドレスの検出方法を指定してください (0) 自動検出 (1) ローカルのネットワークアダプタから検出 (2) 外部のスクリプトから検出 <現在:0> (N)変更しない (P)戻る >0 ------------------------------------------------- プライベートIPアドレスも検出対象ですか? (Y/N) <現在:いいえ> (P)戻る >n ------------------------------------------------- IPアドレスの検出をテストしますか? (Y/N) (P)戻る >y 検出IPアドレス>XXX.XXX.79.40 ← 現在割り当てられているグローパルIPアドレスです。 ------------------------------------------------- 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)戻る 対応しているサービスを表示してみる >? ZoneEdit unicc MyIP.US DtDNS BIGLOBE dnip Now.nu StaticCling theBBS ysdn Netservers dyns Dynamx GetmyIP onamae.com IPDYN yi my-domain MyDNS.JP JPN.ch instat VALUEDOMAIN cheapnet Dyn.ee DNS2Go dyndns @nifty SelfHOsT ddns.ca ZENNO.COM p2p miniDNS MyServer todd Earth ddo.jp livedoor dhs ieServer dynDNS.it DION Microtech Dynu ODS dnsQ DDNS.nu EveryDNS WebReactor Dynup pcc.jp USA No-IP did.expoze.com ZiVE changeIP JSPEED DynDNSdk nicolas ODN DynDSL DnsTokyo ARTofDNS cjb HAMMERNODE =================================================新しくイベントを追加します |
以上でDiCEの設定が完了しました。後はバックグランドで動作するように設定します。
[root@hoge123 DiCE]# ./diced -d -l ← DiCEをバックグランドで動作させます =-=-=- DiCE DynamicDNS Client -=-=-= Version 0.19 for Japanese Copyright(c) 2001 sarad DiCE Daemon Started !! [root@hoge123 DiCE]# ps -C diced ← DiCEが動作しているか確認します。 PID TTY TIME CMD 1256 ? 00:00:00 diced [root@hoge123 DiCE]# |
最後に、システム起動時にDiCEが自動起動するように設定します。もしシステムをシャットダウン・再起動した場合、 手動で /usr/local/DiCE/diced -d -l を実行すればDiCEがバックグランドで動作しますが、忘れる可能性もあります。 そこで、設定ファイル rc.local を編集・保存します。
[root@hoge123 DiCE]# vi /etc/rc.d/rc.local #!/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. touch /var/lock/subsys/local /usr/local/DiCE/diced -d -l ← 最後にこの一行を付け加えて保存します。 |
※ 自宅サーバ構築(Scientific Linux6.3)に戻る