Wireguard-ui
Wireguard-uiを使ってRaspberry Pi 4BにVPNサーバ環境を構築しました。
Wireguard-uiはGUI操作でWireguardのサーバ用設定ファイル(wg0.conf)やクライアント用の設定ファイル/QRコードを生成できます。
また、Wake on LANの機能もあります。
MTUとPost Up/Downスクリプトの指定方法について試行錯誤しました。
環境
- Raspberry Pi 4B
- Ubuntu 24.10 (arm64)
- wireguard 1.0.20210914
- wireguard-ui v0.6.2
- インターネット回線はv6プラス
構築
v6プラス接続環境の調査
- 公開IPv4アドレスと公開IPv6アドレスを確認
https://test-ipv6.com/ - 公開IPv6 アドレスから公開可能なポート番号を確認
http://ipv4.web.fc2.com/map-e.html - 公開するポート番号を決定
例えば60000/udp
Wireguardの使用プロトコルはudpです。
- Wireguardを構築するサーバのローカルIPアドレスを確認
ip a |
例えば192.168.11.24, NIC eth0
5. ルータでポートフォワード設定
インターネットからの60000/udpアクセスを192.168.11.24の60000/udpに転送
同じポート番号にする必要があります。
Wireguardのインストール
- インストール
sudo apt install wireguard |
wireguardとwireguard-toolsパッケージがインストールされます。
Wireguard-uiのインストール
- インストール
https://github.com/ngoduykhanh/wireguard-ui/releases
raspberry pi / Ubuntu arm64 の場合はwireguard-ui-v0.6.2-linux-arm64.tar.gz
VERSION=v0.6.2 |
- ユニットファイルの作成
[Unit] |
- サービス有効化と起動
sudo systemctl enable wgui-worker.service |
この時、/etc/wireguard/wg0.confが生成されます。
Wireguardの自動再起動設定
/etc/wireguard/wg0.confを監視してWireguardを自動再起動します。
- ユニットファイルの作成
[Unit] |
[Unit] |
- サービスの有効化と起動
sudo systemctl enable wgui.{path,service} |
内部ネットワークへの転送許可
- 設定
27 | # Uncomment the next line to enable packet forwarding for IPv4 |
- 反映
sudo sysctl -p |
Wireguardネットワーク設定
- Wireguard-uiにアクセス
http://192.168.11.24:5000 - ログイン
admin / admin
パスワードはUsers Settingsで変更します。
- Global Settingsの設定
MTUの値を削除してSave
私の環境ではデフォルトの1500や一般的な1420を設定すると通信が不安定になったので削除しました。
https://www.speedguide.net/analyzer.php
もし設定するとしたら各接続拠点から上記サイトで調べたMTU値からIPv4なら60、IPv6なら80を引いた値の小さい方を設定します。
自宅PC:MTU 1460、MSS 1420 → MTU 1400
スマートフォン:MTU 1420、MSS 1380 → MTU 1360
- Wireguard Serverの設定
下記を設定してSave
| Listen Port | 60000
| Port Up Script | iptables -t nat -A POSTROUTING -s 10.252.1.0/24 -o eth0 -j MASQUERADE; iptables -A INPUT -p udp -m udp --dport 60000 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT
| Post Down Script | iptables -t nat -D POSTROUTING -s 10.252.1.0/24 -o eth0 -j MASQUERADE; iptables -D INPUT -p udp -m udp --dport 60000 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT
| |
- Wireguard Clientsの設定
New Clientを押下、Nameを設定してSubmit
- 反映
Apply Config
- 再起動
設定を変更した場合は念のため再起動しておいた方がよいみたいです。
クライアント端末の設定
Androidの場合
- Wireguardアプリをインストール
- Wireguardアプリで+を押下
- QRコードをスキャンを選択
- Wireguard-uiのクライアント画面でQR codeを押下して画像をスキャン
- トンネル名を設定してオンにする
- 接続に成功するとwireguard-uiのStatus画面で接続実績が記録される
Comments
