[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 セッションが張られたならオーケー!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください