WireGuard Easy(wg-easy)でVPN環境を構築してみました。
Dockerであることと設定に必要な項目が少ないことから構築で迷うことはありません。
細かな制御をしたい場合は設定ファイルを直接編集するようなことが必要かもしれません。

環境

  • Raspberry Pi 4B
  • Ubuntu 24.10 (arm64)
  • docker 2.0.4
  • Portainer Community Edition 2.27.3 LTS
  • WireGuard Easy (wg-easy) v14.0.0
  • v6プラス回線

構築

v6プラス回線の調査

  1. 公開IPv4アドレスと公開IPv6アドレスを確認
    https://test-ipv6.com/
  2. 公開IPv6アドレスから公開可能なポート番号を確認
    http://ipv4.web.fc2.com/map-e.html
  3. 公開ポート番号を決定
    例えば60000/udp

wireguardの使用プロトコルはudpです。

  1. wireguardを構築するサーバのローカルIPアドレスを確認
ip a

例えば192.168.11.24
5. ルータでポートフォワード設定
インターネットからの60000/udpアクセスを192.168.11.24の60000/udpに転送

同じポート番号にする必要があります。

Docker

  1. インストール
    https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
  1. ユーザの設定
sudo usermod -aG docker $USER
exit

Portainer

  1. デプロイ
    https://docs.portainer.io/start/install-ce/server/docker/linux#deployment
docker run -d \
-p 8000:8000 \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:lts
  1. ログイン
    https://<ローカルIP アドレス>:9443

wg-easy

  1. オプションとデフォルト値の確認
    https://github.com/wg-easy/wg-easy/tree/production#user-content-options
  2. デプロイ
docker run -d \
--name=wg-easy \
-e WG_HOST=<公開IPv4アドレス> \
-e PORT=51821 \
-e WG_PORT=<公開ポート番号> \
-v ~/.wg-easy:/etc/wireguard \
-p <公開ポート番号>:<公開ポート番号>/udp \
-p 51821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \
ghcr.io/wg-easy/wg-easy

成功するとPortainer画面でコンテナの稼働状況を確認できる

  1. アクセス確認
    https://<ローカルIP アドレス>:51821

クライアントの追加

  1. wg-easyの画面で+ New

10.8.0.0/24のアドレスが割り振られる

クライアント端末の設定

Androidの場合

  1. wireguardアプリをインストール
  2. wireguardアプリで+を押下
  3. QRコードをスキャンを選択
  4. wg-easy画面でQRコードアイコンをクリック後、画像をスキャン