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 ~]# yum -y install cronie-noanacron ← crontabをインストール Installed: cronie-noanacron.x86_64 0:1.4.4-12.el6 Complete! [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 ~]# 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 = <FILE>; 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」ボタンを押す。
コメントを残す