SoftEtherVPNはたくさんの接続オプションを持っていて、無料のVPNサーバーソフトの中ではおそらく”最もつなげやすい”ソフトではないかなと思います。
そんなSoftEtherVPNですが、Linux版の場合はソースの状態で配布されており、各マシンにダウンロードしてからmakeでビルドする形になっています。
なのでmakeに必要なライブラリさえOS側で用意されていれば、ディストリビューションやアーキテクチャ関係なく使用することができるようになっています。
その関係か、パッケージにはデーモン化のスクリプトは含まれておらず、自力でデーモン化する必要があります。
といっても、作業自体は起動スクリプトを/etc/init.dに置いてchkconfigやsystemctlで有効化すだけです。
起動スクリプトはSoftEtherVPNの公式ドキュメントに記載されています。
#!/bin/sh # chkconfig: 2345 99 01 # description: SoftEther VPN Server DAEMON=/usr/local/vpnserver/vpnserver LOCK=/var/lock/subsys/vpnserver test -x $DAEMON || exit 0 case "$1" in start) $DAEMON start touch $LOCK ;; stop) $DAEMON stop rm $LOCK ;; restart) $DAEMON stop sleep 3 $DAEMON start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0
ところが、今回Ubuntu 18.04のサーバーに組み込んだ所、うまく動作せず。
いろいろ調べたところ、SystemdのUnitファイルで動作させる方法があったのでこちらを試してみました。
(※管理者権限が必要です。)
Ubuntu上でSoftEther VPN Server構築 – Qiita
[Unit] Description=SoftEther VPN Server After=network.target network-online.target [Service] ExecStart=vpnserverがインストールされているパス/vpnserver start ExecStop=vpnserverがインストールされているパス/vpnserver stop Type=forking RestartSec=3s [Install] WantedBy=multi-user.target
上記の内容でUnitファイルを作り、下記の場所に保存します。
/etc/systemd/system/vpnserver.service
保存したら次のコマンドを実行します。
systemctl daemon-reload
これで準備は完了いつも通りに起動します。
systemctl start vpnserver
これで起動したかと思います。
自動起動する場合は
systemctl enable vpnserver
も実行しておきます。
Systemdがいまいちわかりづらいのでinit.dを使っていましたが、これならsystemdネイティブでも使えそうです。
init.dスクリプトでうまく起動できない、という方はぜひ試してみてください。