Raspberry Pi でNo-IPのDUCが自動起動するように設定する

この記事は約5分で読めます。

 

Raspberry PiでOpenVPNサーバーを構築しました。

 

使用する回線はJ:COM回線のほうですが、もう一方の楽天ひかりもグローバルIPアドレスは固定されていません。

 

そのため、No-IPで取得したDDNSを使用してサーバーアドレスを解決できるようにしています。

 

DDNSのDUC(DNS Update Client)はプログラムを実行後は指定した間隔でIPアドレスの変更を通知し続けますが、プログラムは自動起動されるものではありません。

 

そのため、自分で自動起動設定する必要があります。

 

                 

DUC自動起動設定(Raspberry Pi版)

失敗したときの/etc/systemd/system/noip2.service の記述

 

[Unit]
Description=No-ip.com dynamic IP address updater
Wants=network-online.target
After=network-online.target

[Install]
WantedBy=multi-user.target
Alias=noip.service

[Service]
ExecStart=/usr/local/bin/noip2
Restart=always
Type=forking

 

 



 

失敗内容

 

systemctl status noip2でステータスを確認したところ次のようなエラー(14~15行目)が出ました。

$ systemctl status noip2
● noip2.service - noip2 service
Loaded: loaded (/etc/systemd/system/noip2.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-05-02 12:52:16 JST; 44s ago
Process: 404 ExecStart=/usr/local/bin/noip2 (code=exited, status=0/SUCCESS)
Main PID: 413 (noip2)
Tasks: 1 (limit: 4915)
CPU: 22ms
CGroup: /system.slice/noip2.service
└─413 /usr/local/bin/noip2

5月 02 12:52:16 raspberrypi systemd[1]: Starting noip2 service...
5月 02 12:52:16 raspberrypi noip2[413]: v2.1.9 daemon started with NAT enabled
5月 02 12:52:16 raspberrypi noip2[413]: Can't gethostbyname for dynupdate.no-ip.com
5月 02 12:52:16 raspberrypi noip2[413]: Can't get our visible IP address from ip1.dynupdate.no-ip.com
5月 02 12:52:16 raspberrypi systemd[1]: Started noip2 service.

 

手動で/usr/local/bin/noip2を実行するとエラーが出ないので、OS起動時にインターネットとの疎通がない状態でプログラムを起動しているものと思われます。

 

調べたところ、/etc/systemd/system/noip2.serviceに1行追加するだけでクリアできました。

 

 

 

 

/etc/systemd/system/noip2.service(Raspberry Pi版)

 

[Unit]
Description=No-ip.com dynamic IP address updater
Wants=network-online.target
After=network-online.target

[Install]
WantedBy=multi-user.target
Alias=noip.service

[Service]
ExecStart=/usr/local/bin/noip2
Restart=always
Type=forking
ExecStartPre=/bin/sh -c 'until ping -c1 google.com; do sleep 1; done;'

 

失敗したときの内容の最終行にExecStartPre=/bin/sh -c ‘until ping -c1 google.com; do sleep 1; done;’を追記しました。

 

google.comに1回pingできるまで待ってから/usr/local/bin/noip2を起動するという内容です。

 

再起動後にサービスステータスを確認し、問題ないことが確認できました。

Active: active (running) since Mon 2022-05-02 13:07:55 JST; 16s ago
Process: 1566 ExecStart=/usr/local/bin/noip2 (code=exited, status=0/SUCCESS)
Main PID: 1567 (noip2)
Tasks: 1 (limit: 4915)
CPU: 13ms
CGroup: /system.slice/noip2.service
└─1567 /usr/local/bin/noip2

5月 02 13:07:55 raspberrypi systemd[1]: Starting noip2 service...
5月 02 13:07:55 raspberrypi systemd[1]: Started noip2 service.
5月 02 13:07:55 raspberrypi noip2[1567]: v2.1.9 daemon started with NAT enabled
5月 02 13:07:56 raspberrypi noip2[1567]: [DDNS名] was already set to [IPアドレス].

 

 

 

 


Raspberry Piのはじめ方 (日経BPパソコンベストムック)


WIMAXIT 7インチ Raspberry Pi用タッチモニター IPS 1024X600 HDMI端子/Raspberry Pi 4/3/2/1 Model B A+ B+ BB Black Banana Pi Windows10/8/7対応


Raspberry Pi 4 8GB(技適マーク入)MicroSDHCカード128G/Raspbianシステムプリインストール/カードリーダ /5.1V/3A Type-C スイッチ付電源/MicroHDMI-to-HDMIケーブルライン/三つヒートシンク/簡単に取り付けケース/日本語取扱説明書/12ヶ月保証


エレコム micro HDMI ケーブル 1m 4K×2K対応 スーパースリム ブラック DH-HD14SSU10BK

コメント

タイトルとURLをコピーしました