- Published on
🛜WireGuard on Ubuntu

Table of Contents
debian でも OK
下準備
ローカル IP アドレス確認
ip -4 a
ifconfig (不要)
sudo apt install net-tools
ifconfig
# ensXXX などをチェック
開いているポート
ss -atnu
ss -t
アンコメント
sudo vim /etc/sysctl.conf
# アンコメント 28行目あたり
net.ipv4.ip_forward=1
sudo sysctl -p
WireGuard インストール
sudo apt update
sudo apt install wireguard -y
mkdir ~/wg && cd $_
サーバー用
# サーバー秘密鍵の生成
wg genkey > server.key
chmod 600 server.key
# 秘密鍵から公開鍵を生成
wg pubkey > server.pub < server.key
chmod 600 server.pub
クライアント用
wg genkey > client.key
chmod 600 client.key
# 秘密鍵から公開鍵を生成
wg pubkey > client.pub < client.key
chmod 600 server.pub
サーバー設定ファイル
中身を確認
# サーバー秘密鍵
cat server.key
# クライアント公開鍵
cat client.pub
設定を作成
sudo vim /etc/wireguard/wg0.conf
wg0.conf ens、Privatekey、Publickeyを修正
[Interface]
Address = 10.0.0.1/32
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
ListenPort = 9199
PrivateKey = [server.key]
[Peer]
PublicKey = [client.pub]
AllowedIPs = 10.0.0.0/24
クライアント設定ファイル
# クライアント秘密鍵
cat client.key
# サーバー公開鍵
cat server.pub
vim ~/wg/client.conf
使うときはスマホや PC にコピー
[Interface]
PrivateKey = [client.key]
Address = 10.0.0.2
DNS = 8.8.8.8
[Peer]
PublicKey = [server.pub]
AllowedIPs = 0.0.0.0/0
Endpoint = [IPアドレス]:9199
QR コード生成
sudo apt install -y qrencode
cd ~/wg
qrencode -t ansiutf8 < client.conf -o qr.png
# コンソールに出力したい場合
qrencode -o qr.png -t ansiutf8 < client.conf && cat qr.png
起動設定
# 有効化
sudo systemctl enable wg-quick@wg0
# 起動
sudo systemctl start wg-quick@wg0
# 再起動
sudo systemctl restart wg-quick@wg0
# 状態確認
sudo systemctl status wg-quick@wg0
起動確認
ip -4 a
wg0 が表示されれば OK
WG 接続確認
sudo wg show
DNS エラー
sudo vim /etc/systemd/resolved.conf
DNS=8.8.8.8
sudo systemctl restart systemd-resolved.service
接続できない
ルーティング確認
sudo iptables -L -n -t nat
ルーターの設定
UDP ポートを開けておく
WireGuard ダッシュボード
https://github.com/donaldzou/WGDashboard
依存パッケージ
sudo apt install python3-pip -y
sudo pip install Flask &&
sudo pip install tinydb &&
sudo pip install ifcfg &&
sudo pip install icmplib &&
sudo pip install Flask-QRcode
WGDashboard インストール
cd /home/[ユーザー]
git clone https://github.com/donaldzou/WGDashboard.git wgdashboard
cd wgdashboard/src
sudo chmod u+x wgd.sh
sudo ./wgd.sh install
sudo chmod -R 755 /etc/wireguard
sudo ./wgd.sh start
自動起動
sudo vim wg-dashboard.service
debian では"python3 => python"にする
[Unit]
After=netword.service
[Service]
WorkingDirectory=/home/[ユーザー]/wgdashboard/src
ExecStart=/usr/bin/python3 /home/[ユーザー]/wgdashboard/src/dashboard.py
Restart=always
[Install]
WantedBy=default.target
sudo cp wg-dashboard.service /etc/systemd/system/wg-dashboard.service
sudo chmod 664 /etc/systemd/system/wg-dashboard.service &&
sudo systemctl daemon-reload &&
sudo systemctl enable wg-dashboard.service &&
sudo systemctl start wg-dashboard.service
ステータス
sudo systemctl status wg-dashboard.service
操作
# 停止
sudo systemctl stop wg-dashboard.service
# 起動
sudo systemctl start wg-dashboard.service
# 再起動
sudo systemctl restart wg-dashboard.service
操作
# 起動
sudo ./wgd.sh start
# 停止
sudo ./wgd.sh stop
# 再起動
sudo ./wgd.sh restart
# デバッグ
sudo ./wgd.sh debug
ダッシュボード設定
| 項目 | 初期値 |
|---|---|
| ユーザー | admin |
| パスワード | admin |
初期ポート: 10086
初期だとエンドポイントがローカルなのでダッシュボードで修正する
手動修正
sudo vim wg-dashboard.ini
wg1 を追加
cd /etc/wireguard
sudo cp wg0.conf wg1.conf
注意点
起動エラーが出る場合
sudo vim /etc/systemd/system/wg-dashboard.service
always => no
[Service]
...
Restart=no
リロード、起動
sudo systemctl daemon-reload
sudo systemctl start wg-dashboard.service
メモ
DNS 設定
sudo systemd-resolve --set-dns=192.168.100.XX --interface=ens160
もしくは
sudo vim /etc/netplan/00-installer-config.yaml
sudo vim /etc/resolv.conf
PiVPN
GUI ではない
Ubuntu 、 OrangePi でも動く
curl -L https://install.pivpn.io | bash
再起動
プロファイルの追加
pivpn add
QR コードを表示
pivpn -qr
ユーザーを選択
プロファイルはここに保存される root 権限
~/configs
sudo systemctl restart wg-quick@wg0
sudo systemctl status wg-quick@wg0