[Raspberry Pi] OS 起動時に SoftEther VPN クライアントを自動起動させる設定
まえがき
本投稿では、ラズパイが起動するときに SoftEther VPN クライアントも自動的に起動するように設定する方法を紹介します。
SoftEther VPN クライアントの設定が終わっていることを前提にしています。これについては [Raspberry Pi] SoftEther VPN クライアントの設定方法 で書いていますので参考にしてください。
【1】ラズパイ起動時にスタティックルートを自動で追加する設定
/etc/network/if-up.d ディレクトリに以下のようなファイルを作ります。
#!/bin/bash sleep 10 route add -net 10.1.0.0/24 gw 172.16.1.1 route add -net 192.168.86.0/24 gw 172.16.1.1 route add -host ww.xx.yy.zz gw 172.16.1.1
ファイル名は何でも良いです。ここではわかりやすく static-routes とした。
肝は SoftEther VPN サーバ宛のスタティックルート (上記 route add -host の 1 行) を書くことです。それ以外はなくても VPN 自体は張れますが、我が家では自宅内にセグメントがいくつかありますので、それら宛 (route add -net の 2 行) を書いています。
この段階で一度ラズパイを再起動させて、意図したとおりにスタティックルートが追加されることを確認するのは良いやりかたです。
設定を積み上げていく形になりますので、ここでつまづくなら以下をやってもうまくいかないからです。
【2】vpnclient 起動と同時に VPN 接続処理を開始する設定
AccountStartupSet コマンドを使います。
既に定義済みの VPN 接続が vpnclient が起動するのと同時に接続処理をスタートするように設定します。
【3】ラズパイ起動時に vpnclient を自動で起動させる設定
サービスを自動起動させる方法として、systemd を使って設定するのが主流 (時流) のようなので systemd を使います。
/etc/systemd/system ディレクトリに以下のような vpnclient.service というファイルを作ります。
[Unit] Description=SoftEther VPN Client After=network.target [Service] ExecStart=/usr/local/vpnclient/vpnclient start ExecStop=/usr/local/vpnclient/vpnclient stop Type=forking Restart=always [Install] WantedBy=graphical.target
以下のコマンドで作ったサービス = vpnclient の自動機能を有効化します。
$ sudo systemctl enable vpnclient Created symlink /etc/systemd/system/graphical.target.wants/vpnclient.service → /etc/systemd/system/vpnclient.service.
それではここで systemd を使って vpnclient を起動させられるか確認しましょう。
$ sudo systemctl start vpnclient
無事起動したかどうかは以下のようにして確認します。
$ sudo systemctl status vpnclient ● vpnclient.service - SoftEther VPN Client Loaded: loaded (/etc/systemd/system/vpnclient.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-16 12:13:52 JST; 3s ago Process: 2595 ExecStop=/usr/local/vpnclient/vpnclient stop (code=exited, status=0/SUCCESS) Process: 2683 ExecStart=/usr/local/vpnclient/vpnclient start (code=exited, status=0/SUCCESS) Main PID: 2685 (vpnclient) Tasks: 15 (limit: 4915) CGroup: /system.slice/vpnclient.service ├─2685 /usr/local/vpnclient/vpnclient execsvc └─2686 /usr/local/vpnclient/vpnclient execsvc 6月 16 12:13:52 raspberrypi systemd[1]: Starting SoftEther VPN Client… 6月 16 12:13:52 raspberrypi vpnclient[2683]: The SoftEther VPN Client service has been started. 6月 16 12:13:52 raspberrypi systemd[1]: Started SoftEther VPN Client.
vpnserver を systemd で正常に終了させることができるかも確認します。
$ sudo systemctl stop vpnclient
もう一度 sudo systemctl status vpnclient でステータスを確認しましょう。
ラズパイを再起動する
想定どおり vpnclient 起動して VPN セッションが張られたならオーケー!