1 views

実現させる機能

インターネット上からドメイン名(=家庭の表札、会社の看板)でサーバーにアクセスできるようにするため、

無料・ダイナミックDNS(DDNS)サービス – Dynamic DO!.jpのサービスを利用してufusou.ddo.jpというドメイン名を取得

しました。また、

家サーバー・プロジェクト(ieServer.Net)にもufuso.dip.jpというドメイン名で登録

しています。

しかし、自宅のモデムやルーターの電源を切ったり、自宅パソコンのインターネット接続を切断したりするとプロバイダから割り当てられるIPアドレスが変わってしまう場合があります。そうなると、取得したドメイン名でインターネット上から自宅のサイトに接続することができなくなります。ufusou.ddo.jpやufuso.dip.jpというドメイン名のものとして登録されているIPアドレスとプロバイダから割り当てられたIPアドレスが一致しないからです。

自宅サーバーを特定するためのIPアドレスを自動更新できれば、IPアドレスの変更が原因で外部からufusou.ddo.jpやufuso.dip.jpというドメイン名で登録している私のサーバーにアクセスできなくなってしまうトラブルは防止できます。また、一定期間IPアドレスの更新処理が行われないとDDNSサービスが自動的に打ち切られてしまうため、これを防ぐ目的もあります。

事前準備

※ドメインの取得は、無料のダイナミックDNSに登録する方法(ieServer.Net編)無料のダイナミックDNSに登録する方法(Dynamic DO!.jp編)を参照してください。

■Dynamic DO!.jpで取得したドメインのIP自動更新設定※2週間毎にリンク切れをチェック

[root@ufuso ~]# vi /etc/crontab ← 自動実行ファイルのcrontabを編集
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  command to be executed
# DDNS Dynamic DO!.jp Update
  0  8  2,16  *  * root wget -q -O - 'http://free.ddo.jp/dnsupdate.php?dn=xxxxxx.ddo.jp&pw=xxxxxxxx'
 ← 毎月2日と16日の午前8時にIP自動更新を実行。dn=xxxxxxは登録したユーザー名、
pw=xxxxxxxxは登録したパスワードをxxx部分に入力のこと

■ieServer.Netで取得したドメインのIP自動更新設定※2週間毎にリンク切れをチェック

[root@ufuso ~]# wget http://ieserver.net/ddns-update.txt -O /usr/local/bin/ddns-update.pl
 ← ieServer用IPアドレス更新スクリプトダウンロード&インストール
`/usr/local/bin/ddns-update.pl' に保存中

100%[======================================>] 2,214       --.-K/s 時間 0s      

2011-12-16 15:21:50 (96.0 MB/s) - `/usr/local/bin/ddns-update.pl' へ保存完了 [2214/2214]

[root@ufuso ~]# vi /usr/local/bin/ddns-update.pl ← ieServer用IPアドレス更新
スクリプト編集(日本語は文字化けしますが、入力に支障はありません)
#!/usr/bin/perl

# ieServer.Net 専用 DDNS IP アドレス更新スクリプト - ddns-update.pl
# 作成者:山本恭弘@Agora Inc. 作成日:2004/03/24
#
# 回線割り当てグローバルIPアドレスを確認し、変化があれば新IPアドレスを
# DDNSに登録。当コマンドを一定の間隔で実行し、IPアドレスの変化を監視&
# 更新処理する。利用には perl wget cron が利用可能である必要あり。
#
# 回線に割り当てられた IPアドレス は http://ieserver.net/ipcheck.shtml
# へのアクセスによって確認。
#
# cron にて当コマンドを等間隔で実行し、回線IPを確認。変化があればDDNSに
# IPアドレスを登録。DDNSサーバーへの負荷軽減の点から実行間隔は10分以上と
# すること。
# crontab設定例(/usr/local/ddns/ddns.plにスクリプトを置き10分間隔で実行)
# 5,15,25,35,45,55 * * * * /usr/local/ddns/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 = "https://ieserver.net/ipcheck.shtml"; ← httpsへ変更
# DDNS更新ページURL
# wgetをSSL接続可能でビルドしているなら、https:// での接続を推奨
$DDNS_UPDATE     = "https://ieserver.net/cgi-bin/dip.cgi";

# ieServer.Netにて取得したアカウント(サブドメイン)情報を記入 ← xxx部分はユーザ登録時
に入力したを入力
$ACCOUNT         = "xxxx";     # アカウント(サブドメイン)名設定
$DOMAIN          = "xxx.xx";     # ドメイン名設定
$PASSWORD        = "xxxxxx";     # パスワード設定

if(!open(FILE,"$CURRENT_IP_FILE")) {
    $CURRENT_IP = '0.0.0.0';
    } else {
    $CURRENT_IP = ;
    close FILE;
}

[root@ufuso ~]# chmod +x /usr/local/bin/ddns-update.pl ← ieServer用IPアドレス更新スク
リプトへ実行権限付加

[root@ufuso ~]# mkdir /var/log/ieserver ← ieServer用IPアドレス更新スクリプトログ格納
ディレクトリ作成

[root@ufuso ~]# /usr/local/bin/ddns-update.pl ← ieServer用IPアドレス更新スクリプト実行

[root@ufuso ~]# echo "0 08 1,15 * * root /usr/local/bin/ddns-update.pl" > /etc/cron.d/ddns-update
 ← ieServer用IPアドレス更新定期自動実行設定追加。毎月1日と15日の午前8時に自動実行設定

ドメイン名確認

設定したサーバー名で外部からアクセスできるか確認する。
※ドメイン取得後24〜48時間程度経過後に行うこと(すぐアクセスできる場合もある)

Free Website Test tools by WebSitePulse



「URL」欄に設定したサーバー名(例:ufusou.ddo.jp、www.ufusou.ddo.jp、ftp.ufusou.ddo.jp、mail.ufuso.ddo.jp等)を入力して、「Test it」ボタンを押す。

以下のような結果が表示されればOK

URL tested: http://ufusou.ddo.jp
Test performed from: Seattle, WA
Test performed at: 2011-02-11 00:15:11 (GMT -05:00)
Resolved As: 111.107.2.163
Status: OK

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください