「設定 - DDNS」の版間の差分
(ページの作成:「== 概要 == ここでは、DDNSはieServer.Netに登録して行う。<br> <br> 自宅でWebサーバを構築するには、DDNSは必要不可欠である。<br> Web…」) |
細 (文字列「<source」を「<syntaxhighlight」に置換) |
||
25行目: | 25行目: | ||
ddns-update.plには以下を記述する。<br> | ddns-update.plには以下を記述する。<br> | ||
但し、変数である$ACCOUNTや$DOMAIN、$PASSWORDには、それぞれ、ieServer.Netで登録したユーザ名やドメイン名、パスワードを入力する。(◯◯◯を書き換えること)<br> | 但し、変数である$ACCOUNTや$DOMAIN、$PASSWORDには、それぞれ、ieServer.Netで登録したユーザ名やドメイン名、パスワードを入力する。(◯◯◯を書き換えること)<br> | ||
< | <syntaxhighlight lang="perl"> | ||
ddns-update.plの内容 | ddns-update.plの内容 | ||
#!/usr/bin/perl | #!/usr/bin/perl |
2021年11月21日 (日) 09:34時点における版
概要
ここでは、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の設定は完了である。