🛡️
AWS上のSoftEtherにiPhoneから接続してみた
AWSにSoftEther VPNを構築してiPhoneから接続できる環境を作ってみた🛡️
✅ やりたいこと
AWS EC2(Ubuntu)にSoftEther VPNを構築し、
自宅などのネットワーク環境から iPhoneのL2TP/IPSec接続 を確認できる構成を作りたい。
💡 構成概要
- クラウド: AWS EC2(Ubuntu 22.04)
- VPNサーバ: SoftEther VPN Server
- クライアント: iPhone(L2TP/IPSec)
- 認証方式: ユーザー+パスワード認証
-
通信ポート:
- UDP 500, 1701, 4500(L2TP/IPsec)
- TCP 443(VPN管理用)
🛠️ 構築手順メモ
1. EC2インスタンス作成
- Ubuntu 22.04
- セキュリティグループに以下を許可:
- UDP: 500, 1701, 4500
- TCP: 443
2. SoftEther VPN Server インストール
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.44-9807/softether-vpnserver-v4.44-9807-rtm-2025.04.16-linux-x64-64bit.tar.gz
tar zxvf softether-*.tar.gz
cd vpnserver
make
3. VPN設定(vpncmd)
- 仮想HUB作成:
testvpn - ユーザー:
Test123 - パスワード設定
- L2TP/IPsec 有効化(シークレットキーは任意)
4. 自動起動設定(systemd)
# systemd ファイル作成後に
sudo systemctl enable vpnserver
sudo systemctl start vpnserver
📱 iPhoneからのVPN接続設定(L2TP/IPsec)
以下の手順で、iPhoneからSoftEther VPNサーバへL2TP接続を行います。
🔧 設定手順
-
iPhoneの設定アプリを開く
「設定」 → 「VPNとデバイス管理」 → 「VPN」 → 「VPN構成を追加」 -
各項目を以下のように入力する
| 項目 | 設定内容 |
|---|---|
| タイプ | L2TP |
| 説明 | 任意の名前(例:ソフトイサーVPN) |
| サーバ | Elastic IP(例:VMのパブリックIPアドレス) |
| アカウント | SoftEtherで作成したユーザー名(例:Test123) |
| パスワード | 上記アカウントに設定したパスワード |
| シークレット(事前共有鍵) | VPN構築時に設定したIPsecシークレット |
| 送信全トラフィック | オン(※必要に応じて) |
-
保存してVPNを有効化
- VPNスイッチをオンにして接続
- 「接続済み」と表示されれば成功
✅ 接続成功時の画面(例)
接続が成功すると、以下のように「VPN接続済み」と表示されます:


✅ 接続成功時の確認例
| 項目 | 値 |
|---|---|
| 割り当てアドレス | 192.168.30.10 |
| 接続時間 | 0:13(など) |
| 通信環境 | モバイル回線(例:4G) |
💡 補足
- この構成では、SoftEther VPN サーバ上で L2TP/IPsec の設定が正しく行われている必要があります。
- シークレット(IPsec事前共有鍵)は iPhone 側とサーバ側で一致させてください。
🧩 躓いたポイントまとめ
1. vpnserver の起動確認エラー
-
systemctl status vpnserver実行時にUnit vpnserver.service could not be found.と表示 - → systemd ユニットファイル未作成だった(手動作成が必要)
2. ユーザー認証失敗
- iPhoneから接続できない →
vpncmdでユーザー作成が抜けていた
3. vpncmd のディレクトリ混乱
-
./vpncmd実行時にIs a directory→ 実行ファイルはbin/vpncmd/vpncmdに存在
4. L2TP接続後のPPPエラー
- DHCP取得失敗ログあり →
SecureNAT有効化と仮想HUBの指定が抜けていた
5. systemd の自動起動設定
-
vpnserver.service自作。起動テスト前に AMIバックアップ を取得(日本語エラーに注意)
6. AMI作成時のエラー
- エラー:
Value for parameter Description is invalid - → AMIの説明に日本語を含んでいた → 英数字に修正し成功
7. VPN接続後の状態誤解
- VPN接続 = インターネット接続ではない
- → VPNはEC2との安全なトンネル確立。NATやルーティング設定は別途必要
🧪 トラブルと対策(再掲)
| トラブル内容 | 原因 | 解決策 |
|---|---|---|
| VPN接続できない(iPhoneなど) | セキュリティグループでポート未開放 | UDP 500, 1701, 4500 / TCP 443 をセキュリティグループで許可 |
| VPN接続時に「認証失敗」と出る | ユーザー作成 or パスワード設定ミス |
vpncmd でユーザー・パスワード再設定 |
| SoftEtherが起動しない |
systemd の設定不足・有効化忘れ |
sudo systemctl enable/start vpnserver を実行 |
| VPN接続しても通信できない(社内など) | ルーティング設定またはNAT設定の不足 | SoftEtherのNAT/ローカルブリッジ/ルート設定を確認 |
| VPN起動後もポートがLISTENしていない | SoftEther設定ミス or ファイアウォール制限 |
sudo ufw status などでポート開放状況を確認 |
| L2TP/IPsecが有効になっていない |
vpncmd で機能がOFFのままになっている |
VPN Server> IPsecEnable コマンドで有効化 |
| 自動起動しない | systemd に登録していない |
/etc/systemd/system/vpnserver.service を作成し有効化 |
🔚 最後に
SoftEtherは設定が多機能で最初は少し手間ですが、
L2TP, SSTP, OpenVPN など幅広く対応しており、VPN学習や実験には最適でした!
今後は証明書認証・ログ連携・VPNログの可視化などにも挑戦したいと思います💪
Discussion