お久しぶりです!
マイクラサーバーの記事を書いてから約9ヶ月ほど経ってしまいましたが、久々に重い腰を上げて記事を書こうと思います。
私生活が忙しかったのもありますがそれに関してはいずれ...
さて、今回は"自宅サーバーリプレースその1"ということで、マイクラサーバーとして使っていたサーバーを消し、新たにより多機能な自宅サーバーを構築していきたいと思います。
今回は外部から自宅内にVPN経由でアクセスし、LAN内のファイルサーバーにアクセスし、クラウドサービスに課金しなくても使えるような仕組みを作ることが目的です!
一応現在もマイクラサーバーとして使っていたUbuntu上にSoftetherVPNでVPNサーバーを建て、別マシン上に建てたファイルサーバーに外部からアクセスできるような仕組みは構築してあるのですが、もっと便利にしたいので再構築をしていきます。
目次
- サーバーの構成について
- SoftetherVPNとはなんぞや?
- 0.構築していこう!
- 「SoftEther VPN Server Manager for Windows」の設定
- 外部から接続してみる
- おわりに
- 参考にさせていただいたサイト
サーバーの構成について
サーバー機の構成について少し変更をしました。
ROM:128GB→512GB
OS:Ubuntu Desktop 22.04→Proxmox VE
その他サーバー機に関しては過去の記事を御覧ください。
SoftetherVPNとはなんぞや?
そもそもVPNって何って質問に関しては、正直わからないのであればこの記事の内容がちんぷんかんぷんだと思うので、自分で学んでください。
簡単に言えば外部からプライベートな回線を使える通信みたいな感じです。
そして、SoftetherVPNとは、筑波大学の登 大遊さんによって作られたオープンソースのVPNソフトです。
OSについて
今回サーバーのOSをProxmox VEに変えていますが、これは仮想マシンをいっぱい建てられるOSです。
VM上でUbuntu Server24.04を使用していますので、特にそのへんは気にしなくて大丈夫です。Ubuntu Desktopでも問題なく構築できるはずです。
あと、申し訳ないんですが、すでにProxmox自体はインストールしてしまったので、インストールに関しては今回は触れません。各自で調べていただきたいです。
機会があれば記事にします。
0.構築していこう!
イメージはこうです。

Ubuntu serverのインストールが完了したあとから進めていきます。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 24.04.2 LTS Release: 24.04 Codename: noble
1.SoftEther VPNのダウンロード
以下のURLからSoftetherのサイトにアクセスすると、

画像のようにSoftetherVPNのバージョンがいくつかありますが、今回は少し下にある、2023年6月30日にリリースされているVer4.42のものを使用します。
別に最新版のVer4.43でも問題ないです。
一応beta版と書かれているので最新の安定版を使います。(正直好みです。)

Windows上でダウンロードしてTeratarmで送っても構わないですし、Ubuntu上でwgetでダウンロードしてもどっちでもいいです。
以下のコマンドをコピペで叩けばダウンロードできます。
$ wget https://jp.softether-download.com/files/softether/v4.42-9798-rtm-2023.06.30-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-x64-64bit.tar.gz
こんな感じでダウンロードされます。
$ wget https://jp.softether-download.com/files/softether/v4.42-9798-rtm-2023.06.30-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-x64-64bit.tar.gz --2025-04-08 20:53:33-- https://jp.softether-download.com/files/softether/v4.42-9798-rtm-2023.06.30-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-x64-64bit.tar.gz Resolving jp.softether-download.com (jp.softether-download.com)... 130.158.75.49 Connecting to jp.softether-download.com (jp.softether-download.com)|130.158.75.49|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 8398160 (8.0M) [application/x-gzip] Saving to: ‘softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-x64-64bit.tar.gz’ softether-vpnserver-v4.42-9798-rtm 100%[================================================================>] 8.01M 10.5MB/s in 0.8s 2025-04-08 20:53:34 (10.5 MB/s) - ‘softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-x64-64bit.tar.gz’ saved [8398160/8398160]
必要ではないですがファイル名も変えておきました。
$ mv softether-vpnserver-v4.42-9798-rtm-2023.06.30-linux-x64-64bit.tar.gz softetherVPN-4.42.tar.gz $ ls softetherVPN-4.42.tar.gz
2.SoftetherVPNのインストール
SoftetherVPNはC言語で書かれているので、ビルドに必要なライブラリ等をインストールします。
$ sudo apt update -y && sudo apt upgrade -y $ sudo apt install -y build-essential libreadline-dev libssl-dev
build-essential … gccやmakeなどのコンパイラ一式
libreadline-dev … 対話的CLI用のライブラリ
libssl-dev … 暗号化(SSL/TLS)用ライブラリ
ダウンロードしたSoftetherVPNを展開する。
$ tar xvf softetherVPN-4.42.tar.gz

こんな感じでvpnserverという展開されたファイルができるはずです。
そしたら、展開されたファイルに移動して、ビルドします。
$ cd vpnserver $ sudo make
makeコマンドが実行できたら、"/usr/local"に移して、権限を変更します。
現在、/home/user/vpnserverにいるので、1つ上に戻ってから移動させます。
$ cd .. $ sudo mv vpnserver /usr/local $ cd /usr/local/vpnserver $ sudo chmod 600 * $ sudo chmod 700 vpnserver vpncmd
3.「vpnserver.service」の作成とサービス定義
"/etc/systemd/system/"にvpnserver.serviceを作成しサービスとして登録します。
$ sudo vi /etc/systemd/system/vpnserver.service [Unit] Description=SoftEther VPN Server After=network.target [Service] Type=forking ExecStart=/usr/local/vpnserver/vpnserver start ExecStop=/usr/local/vpnserver/vpnserver stop Restart=always [Install] WantedBy=multi-user.target
そして、サービスを起動します。
$ sudo systemctl start vpnserver.service
自動起動されるようにサービスを登録します。
$ sudo systemctl enable vpnserver.service Created symlink /etc/systemd/system/multi-user.target.wants/vpnserver.service → /etc/systemd/system/vpnserver.service.
一度再起動して
$ sudo systemctl restart vpnserver.service
$ sudo systemctl status vpnserver.service

4.使用ポートの変更
SoftetherVPNはデフォルトで443ポートを使用していますが、いずれHTTPSサーバーを建てたとき用に、使用ポートを変更します。
$ sudo vi /usr/local/vpnserver/vpn_server.config declare ListenerList { declare Listener0 { bool DisableDos false bool Enabled false ←無効 uint Port 443 } declare Listener1 { bool DisableDos false bool Enabled false ←無効 uint Port 992 } declare Listener2 { bool DisableDos false bool Enabled false ←無効 uint Port 1194 } declare Listener3 { bool DisableDos false bool Enabled true uint Port 5555 ←使いたいポート } }
今回の例だと5555のポートを使用しているので、UFWを設定してポートを開けます。
$ sudo ufw allow 5555/tcp $ sudo ufw allow 5555/udp
最後に、SoftetherVPNはログが馬鹿みたいにたまるので、それらを自動で削除するスクリプトを設定しておきます。
$ sudo vi /etc/cron.daily/vpnserver #!/bin/bash # 30日以前のログを削除 find /usr/local/vpnserver/*_log -name '*.log' -mtime +30 -delete $ sudo chmod +x /etc/cron.daily/vpnserver
お疲れ様です。
ここまででUbuntu上での作業は一旦終了です。
「SoftEther VPN Server Manager for Windows」の設定
以下のリンクから、SoftetherVPNの管理マネージャーをインストールしてください。
今回はWindowsから行っていますがMacとかでも大丈夫です。

インストールしたら、新しい接続→接続設定名→ホストのアドレス(ip)→使用するポートの選択をします。

管理パスワードはここで入力しなくていいです。

初回接続時に以下のような画面が出てくるので、任意の管理パスワードを設定してください。

リモートアクセスVPNサーバーにチェックを入れて次へ

任意の仮想HUB名をつけてください

ダイナミックDNS機能のホスト名を任意のものにできます。

スマホ等からのアクセスを行いたいのでL2TPサーバー機能を有効にします。
IPsecの事前共通鍵は8字以内で任意のものにしてください。

最後に、VPNAzureを有効にします。
これにより、WindowsからVPN接続を使用する際に便利です。

ここまでしたら、VPNのユーザを作成します。

今回はユーザーを一旦パスワード認証で作成します。
ユーザー名とパスワードを設定してください。

ローカルブリッジ設定
ここまで来たらあと少しです!
最後にローカルブリッジの設定をします。
※今回行っているのはProxmox VE上に作成したVMを使用しているので、少し特殊になっています。
作成した仮想HUBを選択してください。
そして、新しいtapデバイスとのブリッジ接続を選択してローカルブリッジを追加します。

そして、Ubuntuでの作業に戻ります。
今作成したtapデバイスとProxmoxのブリッジデバイスとを接続します。
bridge-utilsが入っていなければインストールします。
$ sudo apt install bridge-utils
外部から接続し、LAN内のファイルサーバー等にアクセスできるようにする
ここが初めてSoftetherVPNを触ったときに躓いたポイントなのですが、外部から接続した際に、内部のネットワーク上のサービスを使うためには、Ubuntu上にもブリッジデバイスを作成しないといけないようです。
ブリッジbr0を作成しNICとつなぎます。
$ sudo ip link set ens19 down ←ens19落とす $ sudo brctl addbr br0 ←ブリッジデバイスbr0を作成 $ sudo brctl addif br0 ens19 ←ブリッジデバイスとNICをつなぐ $ sudo ip link set ens19 up ←NICを起動 $ sudo ip link set br0 up ←ブリッジデバイスを起動
次に、"/etc/netplan"の設定を更新
network:
version: 2
ethernets:
ens18:
dhcp4: no
addresses:
- 192.168.1.120/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.8.4
ens19:
dhcp4: no
addresses: []
bridges:
br0:
interfaces: [ens19]
addresses:
- 192.168.2.141/24 ←内部LANで使用するアドレス
nameservers:
addresses:
- 192.168.2.1
そして、"/usr/local/vpnserver"に"add_tap.sh"というスクリプトを作成します。
$ sudo vi /usr/local/vpnserver/add_tap.sh
#!/bin/bash sleep 5 # VPN起動後の安定化待ち tap_dev=`/sbin/ip tuntap | awk -F: '{print $1}' | grep tap` if [ -n "$tap_dev" ]; then /sbin/brctl addif br0 $tap_dev fi
$ sudo chmod +x /usr/local/vpnserver/add_tap.sh ←実行権付与
0-3.の項目で作成したvpnserver.serviceに上記のスクリプトを組み込みます。

ExecStartPost=/usr/local/vpnserver/add_tap.sh
変更を適用させ、動作確認を行う。
$ sudo systemctl daemon-reload
$ sudo systemctl restart vpnserver
$ $ sudo brctl show
bridge name bridge id STP enabled interfaces
br0 8000.9e9dbf06cb0b no ens19
tap_tap_vpn
仮想ネットワークインタフェースとブリッジインタフェースがブリッジ接続されていることが確認できました!!!!
SoftetherVPNのクライアントソフトからだけでなく、スマホやWindowsの標準のVPNも使う予定なので、ついでにUDPの500番と4500番ポートも開放しておきます。
$ sudo ufw allow 500/udp && sudo ufw allow 4500/udp
最後に接続できるかの確認をします!!!
外部から接続してみる

iPhoneからこのように設定し
VPNに接続できました!!!!!


LAN内のファイルサーバーにも、問題なくアクセスすることができました!!!
おわりに
お疲れ様でした。
これで外部からSoftetherVPNを使用して、自宅内のネットワークにアクセスできるようになりました。
実は構築していく段階で何度か躓いてしまったのでかなり時間がかかってしまいました...
ですが無事に接続までできたので良かったー
久々に記事を書きましたが、めちゃくちゃ長い記事になってしまい文字数も7600字を超えてしまいましたw
リハビリにしてはかなり頑張ったんじゃないでしょうかw
今後もしばらくはこの自宅サーバーリプレースを行っていく予定ですので、よろしくお願いします。
失踪しないよう頑張ります。
それでは!!!
参考にさせていただいたサイト
【Raspberry Pi】「Ubuntu Server 22.04.1 LTS」で「SoftEther VPN Server」を構築してみた! – SINQRO. のブログ
VPNサーバー構築(SoftEther VPN Server) - AlmaLinuxで自宅サーバー構築
↓僕のついった↓






























































