Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。
外出先から自宅のサーバーへ接続する方法は、利用する環境によって異なります。今回はセキュリティも考慮して、SoftEther VPNサーバーをRaspberry Pi 4(Raspberry Pi OSデスクトップ)に仕込み、PCならSoftEther VPNクライアントソフト、iPhone、iPadなどから接続させます。
このRaspberry Pi 4に繋げられれば、既にローカルLAN内にあるOMVやNextCloudPiなどにも、同一LAN内としてアクセスできるような運用です。
これなら、外部から接続する際の固定グローバルIPの購入や、無料DDNSなども使わないでアクセスできます。
外部から自宅へアクセスするには、ルーターのポート開放と呼ばれる設定が必要です。このルーターの設定は、メーカーによって設定メニューが異なります。用語もたくさんあって迷います。あくまでも一例としてご紹介しておきます。
Rグリーン【免責事項】 外部から接続するやり方は、セキュリティとして安易におすすめできません。見よう見まねでも出来ますが、トラブルになった時に対処できないと困るからです。ネットワークの知識は必要になります。予めご了承くださいね。
- この記事は2記事構成です。
構築と運用のイメージ
SoftEther VPN をRaspberry Piに導入するのは、次のようなイメージです。
自宅のLAN内に新たにRaspberry Pi 4で構築したVPNサーバーを設置します。

SoftEther VPNの略図
仮想HUBと仮想LANカードをSoftEther VPN ManagerとRaspberry Pi側で設定します。これで同一のローカルLANに接続でき、VPNサーバーにもSSHなどでアクセスすることもできます。同一のLAN内ということは、今使っているファイルサーバーにもアクセスできるというわけです。
RブラックRaspberry Pi 4にRaspberry Pi OS デスクトップ版を入れ、そこにサーバーを構築するので、スマホや外出先のPC端末から、Raspberry Pi OSのデスクトップもVNC経由で操作することも可能です。
色々と細かい話はありますが、仮想HUB、仮想LANカードでVPN接続をします。

イメージ図です
コレとは違い、仮想DHCPサーバーの設定が必要になるSecureNATを使うケースもあります。今回はブリッジ接続するケースです。ネットワークグループが複数ではないので、これでヨシとします。
過去の記事
これまでラズパイダでは「Raspberry Pi 3A+の利用アイディアとしてVPNサーバー」という記事でSoftEther VPNについて触れています。当時のSoftEther VPNのバージョンはv4.32、今回はv4.39です。少し記事内の情報が足りませんでしたね。
また、「ラズパイとPiVPNで、手軽にVPNサーバーを手に入れる」でPiVPNもVPNサーバーでした。
必要な設定
今回の例だと、大まかに4つを設定する必要があります。
- SoftEther VPN ServerをRaspberry Pi 4にインストール
- 別WindowsでSoftEther VPN の管理ソフトをインストール(Manager) or vpncmd
- 仮想LANカード(TAP)とローカルブリッジの設定
- ルーターのポート開放
SoftEther VPNには、DDNSの機能が付いているので、固定グローバルIPや他のDDNSサービスがなくても使えます。DDNSは、「myhome.softether.net」のようなドメインでアクセスできるので、各ソフトの設定など分かりやすいと思います。
■Pi 5は8GBモデルがオススメ
使用したOSと環境
テスト環境がRaspberry Pi OS 32bitでした。できれば最新の64bit版にしてください。
- Raspberry Pi 4 メモリー8GBモデル + SSDドライブ起動
- Raspberry Pi OS bullseye デスクトップ 32bit
- SoftEther VPN Server 32bit (softether-vpnserver_manager-v4.21-9613-beta-2016.04.24-macos-x86-32bit.pkg)
- SoftEther VPN Manager (他のWindowsPC)
- ルーターNEC製Aterm
今回は、Raspberry Pi 4にRaspberry Pi OS 通常バージョンをインストールしました。SSDドライブ起動にしてあります。もちろんSDカード起動でも構いません。
メモリーは8GBも要りません。4GBモデルで十分です。今回はデスクトップ利用のラズパイだったので8GBモデルにしていただけです。
主にRaspberry Pi OSのデスクトップ画面に外部からアクセスするのが第一の目的です。
同一LAN内には、ファイルサーバーとしてOpenmediavaultが入ったRaspberry Pi 4や、ミュージックサーバーであるmoode audioが入ったRaspberry Pi 3B、Webカメラモジュールを繋いであるRaspberry Pi Zero 1WHなどがあります。これらも外部から使えるようにしたいですね。
VPN接続で外部から自宅に繋げれば、Raspberry Pi OS のデスクトップもVNCビューワで覗けます。同一LAN内の各サーバーも、自宅内に居るのと同じようにIPアドレスなどを指定できます。
外部からファイルサーバーだけを利用したいなら、別の方法もあります。今回はVPN接続したかったのと、DDNSサービスなどを別に用意したくなかったので、SoftEther VPNサーバーをインストールしました。
ファイルサーバーのOMVなら、Raspberry Pi OS liteにインストールする関係で、設定は今回と別になりますが共存は可能です。ローカルブリッジするのも変わりません。もっとややこしいかな。
NextCloudPiやLibreELECなどのカスタムOSだと、管理者権限でVPNサーバーがインストールできないこともあり、同居は難しいと思います。
インストールと設定
Raspberry Pi OSが起動している前提で進めます。まだの人は先にRaspberry Pi OSが起動している状態まで設定してください。
先にVPNサーバーソフトであるSoftether VPNをRaspberry Piにインストールと設定をします。

https://www.softether-download.com/
基本はSoftetherVPNのマニュアルに従っています。 (https://ja.softether.org/4-docs/1-manual/7/7.3)
解凍してできたvpnserverフォルダに移動して、makeコマンドします。
注意:今回は32bit版。できれば64bitOSと64bitのSoftetherを使いましょう。
tar xzvf softether-vpnserver-v4.39-9772-beta-2022.04.26-linux-arm_eabi-32bit.tar.gz
cd vpnserver
make
移動させて権限変更
解凍してmakeして作成されたvpnserverフォルダを、実行させる適切な場所に移動します。/usr/local
cd ../
sudo mv vpnserver /usr/local
chmodコマンドで権限を変更します。
cd /usr/local/vpnserver
sudo chmod 600 *
sudo chmod 700 vpncmd vpnserver
lsコマンドで確認します。
ls -l

ls -lコマンドで確認
オーナー権限はユーザーのままでも動作します。セキュリティ的にはrootの方がいいでしょう。
もしもオーナー権限を変更するなら、chownコマンドです。今回はこのまま進めます。
チェックする
vpncmdコマンドで動作チェックをします。コマンドツールなのでターミナル内で操作します。
sudo /usr/local/vpnserver/vpncmd

VPN Toolsを選択
メニューの1〜3から3のVPN Toolsを選択し、次にcheckと入力して動作チェックします。

checkと入力してexit
VPN Toolsから抜けるにはexitと入力します。
OKみたいですね。
vpnserver.serviceのユニットファイルを作成
/etc/systemd/system/にユニットファイルを作成します。(/usr/lib/systemd/system/でも良いみたい)
sudo nano /etc/systemd/system/vpnserver.service
Unit 定義ファイルの場所
どうやらUnitファイルの置き場は二箇所あるようです。
/usr/lib/systemd/system/ : システムデフォルト
/etc/systemd/system/ : 管理者がカスタマイズする場所
同じ名前の設定ファイルがある場合、 /etc/systemd/system/ が優先。
システムデフォルトの設定を変更する場合、 /usr/lib/systemd/system/ から /etc/systemd/system に設定ファイルをコピーして編集する。
Unit名がそのまま設定ファイル名になる。 シンボリックリンクでUnitの別名を設定することができる。 ディレクトリ「(Unit名).wants」は依存関係の定義に使用する。
勉強になります。 https://qiita.com/a_yasui/items/f2d8b57aa616e523ede4
Raspberry Pi OSでも/etc/systemd/system/が優先されると思われるので、そちらに配置しました。
記述する内容
記述する内容は次の通りですが、後で仮想Hubと仮想TAPを設定した後に、コメントアウトしている行の#を外す予定です。
今はこのままで進めないとエラーでサーバーが起動しません。
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
#ExecStartPost=/bin/sleep 10 ; brctl addif br0 tap_vlan
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
以前に3A+でVPNサーバーを構築した時、vpnserver.shなどの名前でスクリプトファイルを作成し、それをUnit内で指定するやり方をしました。 恐らく、その方がtap_名を変更してもそのまま使用できるようにするためですね。 今回の方法だと変更の度にUnit内を編集しないとなりません。
Raspberry Pi 3A+の利用アイディアとしてVPNサーバー
systemctlコマンドで登録
作成したサービスファイルを自動実行するように登録します。
sudo systemctl enable vpnserver.service
再起動後にコマンドで確認
再起動してサービスが自動実行されているか確認しましょう。
sudo reboot
同じくsystemctlコマンドで確認して、active(running)になっていればOKです。
sudo systemctl status vpnserver.service

systemctl statusコマンド
終了させるのはQ
変更後の更新
この後、設定をイジってから再度vpnserverをリスタートする時は次のコマンドでおこないます。
間違えてやり直す時などで使いましょう。
sudo systemctl daemon-reload
sudo systemctl restart vpnserver
bridge-utilesのインストール
ブリッジ用のパッケージ(bridge-utiles)を忘れないうちにインストールしておきます。
sudo apt install bridge-utils
設定は後ほどおこないます。とりえずこのままでOKです。
次の記事へ
とても長くなってしまうので、次の記事でVPNで繋がるまでご紹介します。
ここまででSoftether VPNのインストールとサービスとして自動実行まで完了しました。再起動してもSoftEther VPN Serverが起動していれば問題ありません。
このままでは動いているだけで何もできません。VPNサーバーの主な設定は、Windows版「Softether VPN Server Manager」でおこないます。
以前はmacOS版も動作したのですが、2016年から更新されていないので現行のmacOSでは動きません。Linux版も無いのでWindows環境が必要です。
この後、Softether VPN Server Managerでの設定と、ローカルブリッジのためにRaspberry Pi側のネットワーク設定を施します。最後にルーターのポート開放をすれば完了です。
Softether VPN Server Manager
- 仮想HUB(仮想HUB名は任意のもの)
- DDNS 名(重複しない任意のもの)
- L2TP サーバ機能を有効にする(IPsec 事前共有鍵も設定)
- 新しい tap デバイス名(ブリッジでtapデバイスを使う)(こちらも任意で設定)
Raspberry Pi側の設定
- ローカルブリッジ接続の導入
- ブリッジに合わせたネットワークの設定
ルーターの設定
- ポート開放(ポートフォワーディング)
次の記事もどうぞ。
続きの記事
Free Wi-Fiに繋ぐとき便利なVPNソフト





