debian でも OK
下準備
ローカル IP アドレス確認
ip -4 aifconfig (不要)
sudo apt install net-toolsifconfig
# ensXXX などをチェック開いているポート
ss -atnu
ss -tアンコメント
sudo vim /etc/sysctl.conf# アンコメント 28行目あたりnet.ipv4.ip_forward=1sudo sysctl -pWireGuard インストール
sudo apt updatesudo apt install wireguard -ymkdir ~/wg && cd $_サーバー用
# サーバー秘密鍵の生成wg genkey > server.keychmod 600 server.key
# 秘密鍵から公開鍵を生成wg pubkey > server.pub < server.keychmod 600 server.pubクライアント用
wg genkey > client.keychmod 600 client.key
# 秘密鍵から公開鍵を生成wg pubkey > client.pub < client.keychmod 600 server.pubサーバー設定ファイル
中身を確認
# サーバー秘密鍵cat server.key
# クライアント公開鍵cat client.pub設定を作成
sudo vim /etc/wireguard/wg0.confwg0.conf
ens、Privatekey、Publickeyを修正
[Interface]Address = 10.0.0.1/32PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADEPostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADEListenPort = 9199PrivateKey = [server.key]
[Peer]PublicKey = [client.pub]AllowedIPs = 10.0.0.0/24クライアント設定ファイル
# クライアント秘密鍵cat client.key
# サーバー公開鍵cat server.pubvim ~/wg/client.conf使うときはスマホや PC にコピー
[Interface]PrivateKey = [client.key]Address = 10.0.0.2DNS = 8.8.8.8
[Peer]PublicKey = [server.pub]AllowedIPs = 0.0.0.0/0Endpoint = [IPアドレス]:9199QR コード生成
sudo apt install -y qrencodecd ~/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 awg0 が表示されれば OK
WG 接続確認
sudo wg showDNS エラー
sudo vim /etc/systemd/resolved.confDNS=8.8.8.8sudo systemctl restart systemd-resolved.service接続できない
ルーティング確認
sudo iptables -L -n -t natルーターの設定
UDP ポートを開けておく
WireGuard ダッシュボード
GitHub - WGDashboard/WGDashboard: Simple dashboard for WireGuard VPN written in Python & Vue.js Simple dashboard for WireGuard VPN written in Python & Vue.js - WGDashboard/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-QRcodeWGDashboard インストール
cd /home/[ユーザー]git clone https://github.com/donaldzou/WGDashboard.git wgdashboard
cd wgdashboard/src
sudo chmod u+x wgd.shsudo ./wgd.sh install
sudo chmod -R 755 /etc/wireguard
sudo ./wgd.sh start自動起動
sudo vim wg-dashboard.servicedebian では”python3 => python”にする
[Unit]After=netword.service
[Service]WorkingDirectory=/home/[ユーザー]/wgdashboard/srcExecStart=/usr/bin/python3 /home/[ユーザー]/wgdashboard/src/dashboard.pyRestart=always
[Install]WantedBy=default.targetsudo cp wg-dashboard.service /etc/systemd/system/wg-dashboard.servicesudo 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.iniwg1 を追加
cd /etc/wireguardsudo cp wg0.conf wg1.conf注意点
起動エラーが出る場合
sudo vim /etc/systemd/system/wg-dashboard.servicealways => no
[Service]...Restart=noリロード、起動
sudo systemctl daemon-reloadsudo 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.confPiVPN
GUI ではない
Ubuntu 、 OrangePi でも動く
curl -L https://install.pivpn.io | bash再起動
プロファイルの追加
pivpn addQR コードを表示
pivpn -qrユーザーを選択
プロファイルはここに保存される root 権限
~/configssudo systemctl restart wg-quick@wg0
sudo systemctl status wg-quick@wg0