なぜVPN環境を?
海外出張に行ってきたのですが、海外だと普通にフリーWi-Fiがいっぱいあります。
ただ、さすがにネットワーク環境に不安があるというので一時的にVPN環境を構築してみました。
事前にeSIMを手配していましたが、もしものためにと思って晩酌のお供にVPN環境構築してみました。
VPNサーバー準備
まずはサーバーを用意
AWS上に構築します。
ここら辺は概要だけで細かいところはスキップします。
- AmazonLinux2023をポチポチして準備
- とりあえず
t3.micro
で用意(2人同時接続してみたけど問題無かったです) - パブリックサブネットに配置
- パブリックIPは必要(EIPは一時的かどうかで判断してもらえればと)
- とりあえず
- セキュリティグループ準備
- UDP 51820のインバウンドをOKに
- SSHポートは自分のIPのみ(セッションマネージャー使うなら不要)
Docker周りのインストール
- Dockerインストール(コマンドは不要だと思うけど一応)
# インストール&スタート
sudo dnf update -y
sudo dnf install docker -y
sudo systemctl enable docker
sudo systemctl start docker
# 起動確認
sudo systemctl status docker
# ユーザーをDockerグループに追加
sudo usermod -aG docker ec2-user
- Docker Composeインストール
# インストール&権限設定
DOCKER_COMPOSE_VERSION=v2.26.1
sudo curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# バージョン確認
docker-compose --version
通信周りの設定
ここを忘れるとNAT越えしないので要注意
# IPフォワーディング(パケット転送)を永続的に有効
sudo vi /etc/sysctl.conf
# →ファイルを開いてい「net.ipv4.ip_forward = 1」を追記
# 設定反映
sysctl -p
# 上記の永続化をしないで一時的に設定する場合は以下を実行
# sudo sysctl -w net.ipv4.ip_forward=1
# EC2から外にでるように設定
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Docker設定ファイルを用意
公式のイメージを使うのでcompose.ymlのファイルを用意するのみです。
コメントで「★」を付けているところは、適宜変更してください。
compose.yml
services:
wireguard:
image: linuxserver/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Tokyo
- SERVERURL=XXX.XXX.XXX.XXX # ★EC2のグローバルIPを指定
- SERVERPORT=51820 # 利用ポート
- PEERS=1 # ★接続する人数を指定
- PEERDNS=8.8.8.8 # ★DNS指定
volumes:
- ./config:/config # Docker起動後に設定ファイルなど作られる場所
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
WireGuard起動!
先ほど、用意した設定ファイルがある場所で起動を実施
# 起動
sudo docker compose up -d
起動後にファイル共有しているconfigディレクトリの下にQRコードのPNGファイルが生成されているので確保してください。
この後のスマートフォンでの設定に利用します。
スマートフォン側の設定
Androidでの設定のみですが、ざっくり書いておきます
- GooglePlayでWireGuardアプリを探してインストール
- WireGuardアプリを起動して、「+」から前の手順で確保したQRコード読み込み(名前は自由に設定してOK)
- WireGuardアプリに接続先が追加されるのでVPNを有効化
これで安心してインターネットが使えます!
最後に一言
実は色々ハマって深夜3時までかかったりしたけど、
これで海外出張中でもアマプラを見ることができました!!