🔥

Android12のネイティブVPNが使いたいんじゃ!

2022/12/01に公開

IKEv2に対応したVPNサーバを立てる

残念ながらSofEtherVPNは非対応の様子
https://github.com/SoftEtherVPN/SoftEtherVPN/issues/13

これが良さそう
docker logs ipsec-vpn-server
元リポ: https://github.com/hwdsl2/setup-ipsec-vpn

設定ファイルvpn.envを用意する

中身

VPN_IPSEC_PSK=myshare
VPN_USER=labunix
VPN_PASSWORD=xxxxx

コンテナを動かす

$ docker run \
    --name ipsec-vpn-server \
    --env-file ./vpn.env \
    --restart=always \
    -v ikev2-vpn-data:/etc/ipsec.d \
    -p 500:500/udp \
    -p 4500:4500/udp \
    -d --privileged \
    hwdsl2/ipsec-vpn-server

ログを確認すると各OS向けの設定ファイルがでているはず

docker logs ipsec-vpn-server
...
Client configuration is available inside the
Docker container at:
/etc/ipsec.d/vpnclient.p12 (for Windows & Linux)
/etc/ipsec.d/vpnclient.sswan (for Android)
/etc/ipsec.d/vpnclient.mobileconfig (for iOS & macOS)

各OS向け設定ファイルを取り出す

docker cp ipsec-vpn-server:/etc/ipsec.d/vpnclient.p12 ./
docker cp ipsec-vpn-server:/etc/ipsec.d/vpnclient.sswan ./
docker cp ipsec-vpn-server:/etc/ipsec.d/vpnclient.mobileconfig ./

あとは設定ファイル(.p12だけでOK)を何とかしてAndroidに送り込み、下記手順でVPNの設定を作る

Alternatively, Android 11+ users can also connect using the native IKEv2 client.

追記: 同じサーバーにOpenVPNも導入する

これを使う
https://github.com/hwdsl2/openvpn-install

今回はコンテナではなく、仮想マシンに直インストールする。(というのも上記コンテナはAplineOSがベースイメージになっており、OpenVPNのAuto installerが非対応だった)

wget -O openvpn.sh https://get.vpnsetup.net/ovpn
sudo bash openvpn.sh --auto

あとは待つだけです。

Finished!

The client configuration is available in: /home/ec2-user/client.ovpn
New clients can be added by running this script again.

client.ovpnを取り出して、クライアントにて設定すれば完了です。

参考

私の環境ではLightsailの最小インスタンスを使っており、メモリが500MBしかないため、インストールに失敗しました。まずは、Swapファイルを作成する必要があります

2GBのSwapファイルを作成します。

sudo fallocate -l 2G /swapfile

ファイルのパーミッションを変更する
他のユーザーには読み取り不可に設定します。

sudo chmod 600 /swapfile

Swapファイルを設定する:

sudo mkswap /swapfile

Swapを有効にする:

sudo swapon /swapfile

起動時にSwapを自動的に有効にするための設定:
/etc/fstab ファイルに以下の行を追加します。

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fsta

確認する

free -h
              total        used        free      shared  buff/cache   available
Mem:           478M        221M         61M        532K        195M        244M
Swap:          2.0G          0B        2.0G

ちなみにインストール後、IKEv2とOpenVPNが動作中は、こんな感じでメモリは有り余ってる。

              total        used        free      shared  buff/cache   available
Mem:           478M        162M         90M        176K        225M        303M
Swap:          2.0G        126M        1.9G

Discussion