Raspberry PiでOpenVPNサーバーを構築しました。
使用する回線はJ:COM回線のほうですが、もう一方の楽天ひかりもグローバルIPアドレスは固定されていません。
そのため、No-IPで取得したDDNSを使用してサーバーアドレスを解決できるようにしています。
DDNSのDUC(DNS Update Client)はプログラムを実行後は指定した間隔でIPアドレスの変更を通知し続けますが、プログラムは自動起動されるものではありません。
そのため、自分で自動起動設定する必要があります。
DUC自動起動設定(Raspberry Pi版)
失敗したときの/etc/systemd/system/noip2.service の記述
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[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行目)が出ました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ 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版)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[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を起動するという内容です。
再起動後にサービスステータスを確認し、問題ないことが確認できました。
1 2 3 4 5 6 7 8 9 10 11 12 |
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
コメント