設定 - DDNS
概要
ここでは、DDNSはieServer.Netに登録して行う。
自宅でWebサーバを構築するには、DDNSは必要不可欠である。
Webサーバは、変化する自分に割り当てられたグローバルIPアドレスを◯◯◯.com、◯◯◯.netに結びつけ、利用者に簡易にアクセスできることが要求される。
そこで、グローバルIPアドレスとドメインネームをRaspberry Piに紐付けする。
ieServer.Netに登録する
無料かつ寄付制のDDNSサービスであるieServer.Netに登録する。
リンク先、左のメニューより新規ユーザ登録から利用規約に同意し、DDNSサービス利用を登録する。
ユーザ名とドメイン名、電子メールアドレス、パスワードを入力して登録する。
ここで、ドメイン名は何を選んでもよい。
紐付け更新スクリプトをcronに登録する
まず、Raspberry Piにて、必要なディレクトリを作成する。(ここでは、/var/log/ieseverと/usr/local/ddnsを作成する)
sudo mkdir /var/log/ieserver sudo mkdir /usr/local/ddns
そこから、紐付け更新スクリプト(ddns-update.pl)を作成して、グローバルIPアドレスが変化しているか確認した後、変化していれば自動で紐付けする。
sudo nano /usr/local/ddns/ddns-update.pl
ddns-update.plには以下を記述する。
但し、変数である$ACCOUNTや$DOMAIN、$PASSWORDには、それぞれ、ieServer.Netで登録したユーザ名やドメイン名、パスワードを入力する。(◯◯◯を書き換えること)
<syntaxhighlight lang="perl"> ddns-update.plの内容 #!/usr/bin/perl $CURRENT_IP_FILE = "/var/log/ieserver/current_ip"; $LOG_FILE = "/var/log/ieserver/ip_update.log"; $REMOTE_ADDR_CHK = "http://ieserver.net/ipcheck.shtml"; $DDNS_UPDATE = "http://ieserver.net/cgi-bin/dip.cgi"; $ACCOUNT = "◯◯◯"; $DOMAIN = "◯◯◯"; $PASSWORD = "◯◯◯"; if(!open(FILE,"$CURRENT_IP_FILE")) { $CURRENT_IP = '0.0.0.0'; } else { $CURRENT_IP = <FILE>; close FILE; } $NEW_IP = '0.0.0.0'; $NEW_IP = `wget -q -O - $REMOTE_ADDR_CHK`; if($NEW_IP ne "0.0.0.0" and $CURRENT_IP ne $NEW_IP) { $STATUS = `wget -q -O - '$DDNS_UPDATE?username=$ACCOUNT&domain=$DOMAIN&password=$PASSWORD&updatehost=1'`; if($STATUS =~ m/$NEW_IP/) { open(FILE ,">$CURRENT_IP_FILE"); print FILE $NEW_IP; close FILE; $TIME = localtime; open(FILE ,">>$LOG_FILE"); print FILE "$TIME $ACCOUNT.$DOMAIN Updated $CURRENT_IP to $NEW_IP\n"; close FILE; } else { $TIME = localtime; open(FILE, ">>$LOG_FILE"); print FILE "$TIME $ACCOUNT.$DOMAIN Update aborted $CURRENT_IP to $NEW_IP\n"; close FILE; } } exit; </source>
作成したddns-update.plファイルのパーミッションを変更する。
sudo chmod 755 /usr/local/ddns/ddns-update.pl
次に、ddns-update.plをcronで自動実行させる。
ここでは、10分毎に実行させる設定にする。
sudo nano crontab -e
crontabが起動したら、以下を追記する。
*/10 * * * * /usr/local/ddns/ddns-update.pl
これで、DDNSの設定は完了である。