wireguard-ui
wireguad-uiを使ってRaspberry Pi 4BにVPNサーバ環境を構築しました。
https://github.com/ngoduykhanh/wireguard-ui
ngoduykhanh/wireguard-ui
Wireguard web interface
環境
- Raspberry Pi 4B
- Ubuntu 24.10 (arm64)
- wireguard 1.0.20210914
- wireguard-ui v0.6.2
- Ubuntu 24.10 (arm64)
- インターネット回線はv6プラス
構築
v6プラス接続環境の調査
- 公開IPv4アドレスと公開IPv6アドレスを確認
https://test-ipv6.com/ - 公開IPv6 アドレスから公開可能なポート番号を確認
http://ipv4.web.fc2.com/map-e.html - 公開するポート番号を決定
例えば60000/udpwireguardの使用プロトコルはudpです。
- wireguardを構築するサーバのローカルIPアドレスを確認 例えば192.168.11.24
ip a
- ルータでポートフォワード設定
インターネットからの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.gzVERSION=v0.6.2
wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/${VERSION}/wireguard-ui-${VERSION}-linux-arm64.tar.gz
sudo mkdir /opt/wireguard
sudo tar xvf wireguard-ui-${VERSION}-linux-arm64.tar.gz -C /opt/wireguard/ - ユニットファイルの作成
/etc/systemd/system/wgui-worker.service [Unit]
Description=wireguard web ui
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/wireguard
ExecStart=/opt/wireguard/wireguard-ui
Restart=always
[Install]
WantedBy=multi-user.target - サービス有効化と起動
sudo systemctl enable wgui-worker.service
sudo systemctl start wgui-worker.serviceこの時、
/etc/wireguard/wg0.conf
が生成されます。
wireguardの自動再起動設定
/etc/wireguard/wg0.confを監視してwireguardを自動再起動します。
- ユニットファイルの作成
/etc/systemd/system/wgui.service [Unit]
Description=Restart WireGuard
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl restart wg-quick@wg0.service
[Install]
RequiredBy=wgui.path/etc/systemd/system/wgui.path [Unit]
Description=Watch /etc/wireguard/wg0.conf for changes
[Path]
PathModified=/etc/wireguard/wg0.conf
[Install]
WantedBy=multi-user.target - サービスの有効化と起動
sudo systemctl enable wgui.{path,service}
sudo systemctl start wgui.{path,service}
内部ネットワークへの転送許可
- 設定
/etc/sysctl.conf 27
28
29
30
31
32
33
34
35# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1 - 反映
sudo sysctl -p
再起動
- 再起動
sudo reboot
wireguardネットワーク設定
wireguard-uiにアクセス
http://192.168.11.24:5000ログイン
admin / adminパスワードはUsers Settingsで変更します。
Wireguard Serverの設定
下記を設定してSaveを押下。Server Interface Addresses 10.252.1.1/24 Listen Port 60000 Port Up Script iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Post Down Script iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE Wireguard Clientsの設定
New Clientを押下して以下を設定し、SubmitName wg0-cl01 IP Allocation 10.252.1.2/32 Allowed IPs 192.168.11.24/32, 192.168.11.2/32 反映
Apply Config
クライアント端末の設定
Androidの場合
- wireguardアプリをインストール
- wireguardアプリで+を押下
- QRコードをスキャンを選択
- wireguard-uiのクライアント画面でQR codeを押下して画像をスキャン
- トンネル名を設定してオンにする
- 接続に成功するとwireguard-uiのStatus画面で接続実績が記録される