外部からhogehoge.mydns.jpという名前(ドメイン名)でサーバーにアクセスできるようにするため、ドメイン名を取得する。
ここではMyDNS.JPのサービスを利用してhogehoge.mydns.jpというドメイン名を取得する。
※hogehoge.mydns.jpは例なので、各自で置き換えること
JOIN US でユーザー登録する。
非固定IPアドレス環境の場合、不定期にIPアドレスが変わってしまうが、IPアドレスがMyDNS.JPに登録したIPアドレスと変わってしまうとhogehoge.mydns.jpでサーバーにアクセスできなくなってしまう。
そこで、定期的にIPアドレスの変更をチェックし、IPアドレスが変更されていた場合は自動でMyDNS.JPへ新しいIPアドレスを登録するようにし、常にhogehoge.mydns.jpでサーバーにアクセスできるようにする。
また、1週間以上IPアドレスが変わらない場合または、固定IPアドレス環境の場合、1週間以上IPアドレスの更新を行わないとエラーとなってしまう。このため、1週間に一度自動MyDNS.JPへ新しいIPアドレスを通知するようにする。
| [root@localhost ~]# vi /usr/local/bin/ddns-update.sh ← IPアドレス更新スクリプト作成 |
#!/bin/bash
SCRIPT=${0}
MID=${1}
PASS=${2}
DOMAIN=${3}
# MyDNS.JP設定IPアドレス取得
IPGETLOG=`host ${DOMAIN} ns0.mydns.jp 2>&1`
MYDNSIP=`echo "${IPGETLOG}" | grep "has address" | awk '{ print $NF }' | egrep ^[0-9]\+\.[0-9]\+\.[0-
9]\+\.[0-9]\+$`
[ $? -ne 0 ] && MYDNSIP=0.0.0.0
# 現在IPアドレス取得
IPGETLOG=`curl ipinfo.io/ip 2>&1`
echo "${IPGETLOG}" | egrep ^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+$ > /dev/null 2>&1
if [ $? -eq 0 ]; then
CURRENTIP=`echo "${IPGETLOG}" | tail -n 1 | awk '{ print $NF }'`
else
echo "${DOMAIN} 現在IPアドレス検出エラー" | logger -t $(basename $0)
echo "${IPGETLOG}" | logger -t $(basename $0)
exit
fi
# MyDNS.JP設定IPアドレス更新
# (MyDNS.JP設定IPアドレス≠現在IPアドレスの場合またはIPアドレス強制更新指定のみ)
if [ "${MYDNSIP}" != "${CURRENTIP}" ] || [ $# -eq 4 ]; then
IPUPDATE=`wget -q -O - "https://www.mydns.jp/directip.html? MID=${MID}&PWD=${PASS}&IPV4ADDR=${CURRENTIP}"`
echo ${IPUPDATE} | grep -q OK
if [ $? -eq 0 ]; then
echo "${DOMAIN} IPアドレス更新成功 to ${CURRENTIP}" | logger -t $(basename $0)
else
echo "${DOMAIN} IPアドレス更新エラー" | logger -t $(basename $0)
echo ${IPUPDATE} | logger -t $(basename $0)
(
echo IP ADDRESS UPDATE ERROR
echo ${IPUPDATE}
) | mail -s "${SCRIPT##*/} ERROR" root
exit 1
fi
fi
exit
| [root@localhost ~]# chmod +x /usr/local/bin/ddns-update.sh ← IPアドレス更新スクリプトへ実行権限付加 |
| [root@centos ~]# /usr/local/bin/ddns-update.sh MasterID Password hogehoge.mydns.jp 1 ← IPアドレス更新スクリプト実行 |
| [root@localhost ~]# vi /etc/cron.d/ddns-update ← IPアドレス更新定期自動実行設定ファイル作成 |
| */10 * * * * root /usr/local/bin/ddns-update.sh MasterID Password hogehoge.mydns.jp ※10分毎にIPアドレス更新スクリプトを実行する |
| [root@localhost ~]# vi /etc/cron.weekly/ddns-update ← IPアドレス更新スクリプト週次自動実行スクリプト作成 |
#!/bin/bash /usr/local/bin/ddns-update.sh MasterID Password hogehoge.mydns.jp 1
| [root@localhost ~]# chmod +x /etc/cron.weekly/ddns-update |