2024年版Raspberry PiにSoftEther VPNを最速でインストールする方法！（検証済み）

こんにちは！
この記事では、Raspberry PiにSoftEther VPN Clientを最速でインストールし、実際に使用可能な状態にする方法を詳しく解説します。以下の手順は、実際のRaspberry Pi環境で検証済みです。

以前にインストールした時は2022年に試したのですが、すっかり手順を忘れてしまったので、自分への忘備録を共有します！

## 環境

- ハードウェア: Raspberry Pi 4 Model B (4GB RAM)
- OS: Raspberry Pi OS (64-bit, Bullseye)
- ソフトウェア: SoftEther VPN Client v4.41-9782-beta

## 1. 事前準備

SSHを有効にしてリモートから操作できるようにします。

```bash
sudo raspi-config
```

Interfacing Options → SSH → Yes を選択

## 2. SoftEther VPN Clientのインストール

### 2.1 必要なパッケージのインストール

```bash
sudo apt update && sudo apt install -y build-essential wget tar gcc make
```

### 2.2 SoftEther VPN Clientのダウンロードと解凍

```bash
cd ~
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.41-9782-beta/softether-vpnclient-v4.41-9782-beta-2022.11.17-linux-arm64-64bit.tar.gz
tar xzf softether-vpnclient-v4.41-9782-beta-2022.11.17-linux-arm64-64bit.tar.gz
cd vpnclient
```

### 2.3 ビルドと権限設定

```bash
make
sudo make install
cd /usr/local/vpnclient
sudo chmod 600 *
sudo chmod 700 vpncmd vpnclient
```

## 3. VPN Clientの設定

### 3.1 VPN Clientサービスの起動

```bash
sudo ./vpnclient start
```

### 3.2 VPN接続の設定

以下のコマンドを実行し、プロンプトに従って情報を入力します。

```bash
./vpncmd /client localhost
```

vpncmdプロンプト内で以下のコマンドを順に実行

```
NicCreate vpn_nic
AccountCreate vpn_account
AccountPasswordSet vpn_account
AccountConnect vpn_account
```

各コマンド実行時に必要な情報（サーバーアドレス、ポート番号、仮想HUB名、ユーザー名、パスワード）を入力します。

## 4. 自動起動の設定

### 4.1 自動起動スクリプトの作成

```bash
sudo nano /usr/local/vpnclient/autostart.sh
```

以下の内容を記述

```bash
#!/bin/bash
/usr/local/vpnclient/vpnclient start
sleep 10
/usr/local/vpnclient/vpncmd localhost /client /cmd AccountConnect vpn_account
```

スクリプトに実行権限を付与

```bash
sudo chmod +x /usr/local/vpnclient/autostart.sh
```

### 4.2 systemdサービスの作成

```bash
sudo nano /etc/systemd/system/vpnclient.service
```

以下の内容を記述

```ini
[Unit]
Description=SoftEther VPN Client
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnclient/autostart.sh
Restart=always
KillMode=process

[Install]
WantedBy=multi-user.target
```

### 4.3 サービスの有効化と起動

```bash
sudo systemctl daemon-reload
sudo systemctl enable vpnclient
sudo systemctl start vpnclient
```

## 5. 接続の確認と動作検証

### 5.1 サービスステータスの確認

```bash
sudo systemctl status vpnclient
```

"Active: active (running)"と表示されることを確認します。

### 5.2 VPNインターフェースの確認

```bash
ip addr show
```

`vpn_nic` というインターフェースが表示され、IPアドレスが割り当てられていることを確認します。

### 5.3 VPN経由の通信テスト

```bash
ping -I vpn_nic 8.8.8.8
```

ping応答があれば、VPN経由でインターネットに接続できています。

### 5.4 IPアドレスの確認

```bash
curl -s ifconfig.me
```

VPNサーバーのグローバルIPアドレスが表示されることを確認します。

## トラブルシューティング

1. VPNサービスが起動しない場合
   - ログを確認: `sudo journalctl -u vpnclient`
   - 設定ファイルのパスが正しいか確認
   - 必要な依存パッケージがすべてインストールされているか確認

2. VPN接続が確立しない場合
   - サーバーアドレス、ポート番号、認証情報を再確認
   - ファイアウォール設定を確認: `sudo ufw status`

3. VPN経由で通信できない場合
   - ルーティングテーブルを確認: `ip route show`
   - DNSの設定を確認: `cat /etc/resolv.conf`

## まとめ

以上の手順で、Raspberry PiにSoftEther VPN Clientをインストールし、自動的にVPN接続を確立する設定が完了します。この設定により、Raspberry Piを使用してセキュアな通信が実現できます。

実際の環境で検証を行い、各ステップが正常に機能することを確認しました。しかし、ネットワーク環境やVPNサーバーの設定によっては、追加の調整が必要な場合があります。

## 参考資料

- [SoftEther VPN公式ドキュメント](https://www.softether.org/4-docs)
- [GitHub - SoftEtherVPN/SoftEtherVPN](https://github.com/SoftEtherVPN/SoftEtherVPN)

ご質問やコメント、実際に試してみた結果など、
フィードバックコメントお待ちしています。Happy VPNing! 🚀