Raspberry piにNo-IP DUCをインストールしてダイナミックDNSのIPを更新させる
Dynamic DNSのip更新をRaspberry piに設定する方法。No-IPのDynamic Update Clientをインストールして設定すればできたのでメモ。
目次
事前準備
当然だけど、No-IP(https://www.noip.com)のアカウントがなければ作成しておく。
No-IP DUCをインストール
ここ(https://www.noip.com/support/knowledgebase/install-ip-duc-onto-raspberry-pi/)を参考にインストールしていく。
まずはRaspberry piにSSHで接続(ユーザー名は「pi」、IPアドレスは「192.168.xxx.xxx」の場合ね)。
ssh pi@192.168.xxx.xxx
ダウンロードするファイルを入れておくためのディレクトリを作成し、移動。
mkdir /home/pi/noip
cd /home/pi/noip
DUCをダウンロードして展開。
wget https://www.noip.com/client/linux/noip-duc-linux.tar.gz
tar vzxf noip-duc-linux.tar.gz
展開された「noip-2.1.9-1」ディレクトリに移動して、インストールする。
cd noip-2.1.9-1
sudo make
sudo make install
途中にインターネットに接続しているインターフェースを選ぶよう言われるので、数字を入力する。
Auto configuration for Linux client of no-ip.com. Multiple network devices have been detected. Please select the Internet interface from this list. By typing the number associated with it. 0 eth0 1 wlan0
今回は有線なので「0」を入力。
Please enter the login/email string for no-ip.com
次に、No-IPのログイン名を入力。
Please enter the password for user 'ログイン名'
で、パスワードを入力。
2 hosts are registered to this account. Do you wish to have them all updated?[N] (y/N)
登録ホスト名が複数あると全部設定するか?と聞かれるけど、今回は1つだけ設定するので「N」。
Do you wish to have host [xxxxxxxx.ddns.net] updated?[N] (y/N)
すると、1つずつ設定するか聞いてくるので、設定するドメインで「y」。
Please enter an update interval:[30]
IPを更新するインターバル(デフォルトは30分)を聞かれるので数字を入力する。
Do you wish to run something at successful update?
IP更新した時に何かを実行するか聞かれるけど、必要ないので「N」。
これでインストール完了。
No-IP DUCの起動確認
下のコマンドで起動する。
sudo /usr/local/bin/noip2
特にエラーが出なければ次のコマンドで起動確認。(最後の「S」は大文字なので注意!)
sudo noip2 -S
問題がなければ下のような感じ。
1 noip2 process active. Process 32175, started as /home/pi/noip/noip-2.1.9-1/noip2, (version 2.1.9) Using configuration from /usr/local/etc/no-ip2.conf Last IP Address set 10.5.5.14 Account user name configured for: host user-name.ddns.net Updating every 5 minutes via /dev/eth0 with NAT enabled.
自動起動の設定
続いて、自動起動の設定ファイルをコピーする。
sudo cp debian.noip2.sh /etc/init.d/noip2
コピーしたファイルを編集する。
sudo vi /etc/init.d/noip2
自動起動させるために、設定ファイルに下のコマンドを追記する。
### BEGIN INIT INFO # Provides: noip2 # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: ### END INIT INFO
最終的にはこんな感じ。
#! /bin/sh # /etc/init.d/noip2.sh ### BEGIN INIT INFO # Provides: noip2 # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: ### END INIT INFO # Supplied by no-ip.com # Modified for Debian GNU/Linux by Eivind L. Rygge <eivind@rygge.org> # corrected 1-17-2004 by Alex Docauer <alex@docauer.net> # . /etc/rc.d/init.d/functions # uncomment/modify for your killproc DAEMON=/usr/local/bin/noip2 NAME=noip2 test -x $DAEMON || exit 0 case "$1" in start) echo -n "Starting dynamic address update: " start-stop-daemon --start --exec $DAEMON echo "noip2." ;; stop) echo -n "Shutting down dynamic address update:" start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON echo "noip2." ;; restart) echo -n "Restarting dynamic address update: " start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON start-stop-daemon --start --exec $DAEMON echo "noip2." ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0
設定ファイルを編集したら、パーミッションを変更して実行権限を付加する。
$ sudo chmod +x /etc/init.d/noip2
自動起動の登録を更新する。
sudo update-rc.d noip2 defaults
設定終わり! あとは再起動して自動起動するか確認。
sudo reboot
再起動したら下のコマンドで起動しているか確認する。
sudo noip2 -S
以上!
これで、自動的にダイナミックDNSのIPを更新してくれるようになるはず!