【2025年版】Debian 13 に SoftEther VPN Server をインストールして自動起動する完全手順

未分類

本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^

この記事では、Debian 13(Trixie)に SoftEther VPN Server をインストールし、systemd で自動起動させるまでの完全な手順を解説します。

旧来の SysVinit スクリプトや Debian 11 向けの手順はそのまま使えず、OpenSSL 3.x との互換性エラーでビルドが失敗するケースが多発しています。本記事ではそのエラーを回避し、コミュニティ版ソースコード + cmake ビルド + systemd 自動起動という Debian 13 に最適な構成で解説します。



1. なぜ従来の手順ではエラーが出るのか

Debian 13 では OpenSSL 3.x が標準ライブラリとして採用されています。SoftEther VPN の Stable 版(SoftEtherVPN_Stable)は OpenSSL 1.x を前提としたコードが残っており、以下のようなコンパイルエラーが発生します。

error: passing argument 4 of 'sec->Api->C_CreateObject'
       from incompatible pointer type [-Wincompatible-pointer-types]
note: expected 'CK_OBJECT_HANDLE_PTR' {aka 'long unsigned int *'}
      but argument is of type 'UINT *' {aka 'unsigned int *'}

原因は PKCS#11 の型定義の不一致(32bit UINT vs 64bit CK_ULONG)と、OpenSSL 3.0 で deprecated になった RSA 関数の使用です。

この問題を解決するには、OpenSSL 3.x 対応が進んでいる コミュニティ版(SoftEtherVPN/SoftEtherVPN) を使い、cmake でビルドするのが最も確実な方法です。


2. 動作環境・前提条件

項目 内容
OS Debian 13(Trixie)
権限 root または sudo 権限
ソース SoftEtherVPN コミュニティ版(GitHub)
ビルドツール cmake(configure/make ではない)
自動起動 systemd(init.d スクリプト不使用)
⚠️ Debian 11 向けの init.d スクリプト(vpnserver)はそのまま使えません。 Debian 13 では systemd ユニットファイルを使用してください。

3. 必要パッケージのインストール

まずパッケージリストを更新し、ビルドに必要なライブラリをインストールします。

# パッケージリストを更新
apt-get update

# ビルドに必要なパッケージを一括インストール
apt-get install -y \
  git cmake ninja-build pkg-config \
  build-essential libssl-dev libreadline-dev \
  libncurses5-dev libsodium-dev zlib1g-dev

各パッケージの役割は以下の通りです。

パッケージ 用途
cmake / ninja-build ビルドシステム(configure の代替)
libssl-dev OpenSSL 開発ライブラリ(暗号化処理)
libsodium-dev 現代的な暗号ライブラリ(コミュニティ版で必要)
build-essential gcc / g++ / make などのコンパイラ群

4. SoftEther VPN のビルド・インストール

コミュニティ版のリポジトリをクローンし、cmake でビルドします。Stable 版(SoftEtherVPN_Stable)ではなく、コミュニティ版(SoftEtherVPN)を使うのがポイントです。

# コミュニティ版をクローン(Stable 版ではない点に注意)
git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git
cd SoftEtherVPN

# サブモジュールを初期化(これを忘れるとビルドエラーになる)
git submodule init
git submodule update

# cmake でビルド準備
mkdir build
cd build
cmake .. \
  -DCMAKE_BUILD_TYPE=Release \
  -DSKIP_CPU_FEATURES=YES

# ビルド実行(nproc でコア数を自動取得して並列ビルド)
make -j$(nproc)

# インストール
make install
💡 -DSKIP_CPU_FEATURES=YES は環境依存のビルドエラーを防ぐオプションです。VPS や仮想環境では特に有効です。

インストールが完了したら、vpnserver のパスを確認しておきます。次の手順で使います。

# インストール先のパスを確認
which vpnserver
# 例: /usr/local/bin/vpnserver

5. systemd で自動起動を設定する

Debian 13 は systemd を使っています。旧来の /etc/init.d/vpnserver スクリプトは非推奨であり、systemd ユニットファイルを作成するのが正しい方法です。

① ユニットファイルを作成する

# ユニットファイルを作成
nano /etc/systemd/system/vpnserver.service

以下の内容を貼り付けます。ExecStart / ExecStop のパスは which vpnserver で確認したパスに合わせてください。

[Unit]
Description=SoftEther VPN Server
After=network.target network-online.target
Wants=network-online.target

[Service]
Type=forking
ExecStart=/usr/local/bin/vpnserver start
ExecStop=/usr/local/bin/vpnserver stop
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

各設定の意味は以下の通りです。

設定項目 説明
After=network-online.target ネットワーク起動後に VPN サーバーを起動
Type=forking vpnserver はデーモンとしてバックグラウンド起動するため
Restart=on-failure 異常終了時に自動再起動
RestartSec=5s 再起動まで 5 秒待機

② 自動起動を有効化して起動する

# systemd にユニットファイルを読み込ませる
systemctl daemon-reload

# OS 起動時に自動起動するよう設定
systemctl enable vpnserver

# 今すぐ起動
systemctl start vpnserver

6. 動作確認

以下のコマンドで正常に動いているか確認します。

# サービスの状態を確認
systemctl status vpnserver

# 正常な場合の出力例:
# ● vpnserver.service - SoftEther VPN Server
#      Loaded: loaded (/etc/systemd/system/vpnserver.service; enabled)
#      Active: active (running)

# VPN サーバーのステータスを vpncmd で確認
vpncmd localhost /SERVER /CMD ServerStatusGet

Active: active (running) と表示されていれば成功です。

enabled になっていれば OS 再起動後も自動的に VPN サーバーが立ち上がります。

7. よくあるトラブルと対処法

❌ cmake: command not found

apt-get install -y cmake

❌ git submodule update で失敗する

ネットワーク環境や GitHub の一時的な不具合が原因の場合があります。しばらく待ってから再実行してください。

git submodule update --init --recursive

❌ vpnserver のパスが /usr/bin/ にない

cmake ビルドでは /usr/local/bin/ にインストールされることが多いです。

which vpnserver
# → /usr/local/bin/vpnserver の場合は systemd ユニットのパスをそちらに変更

❌ Unit vpnserver.service not found

ユニットファイル作成後に daemon-reload を忘れていないか確認してください。

systemctl daemon-reload
systemctl enable vpnserver
systemctl start vpnserver

まとめ

手順 コマンド / 作業
① 依存パッケージ apt-get install cmake ninja-build libssl-dev ...
② ソース取得 git clone + git submodule update
③ ビルド cmake .. && make -j$(nproc) && make install
④ 自動起動設定 systemd ユニットファイル作成 + systemctl enable
⑤ 動作確認 systemctl status vpnserver

Debian 13 では Stable 版 → コミュニティ版configure/make → cmakeinit.d → systemd の3つが重要な変更点です。この手順通りに進めれば、エラーなくインストールから自動起動まで完了できます。

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