之前都使用 Synology 內建的 OpenVPN Server,手邊有個空的 raspberry pi 想說多用一個 VPN Server 順便玩玩 WireGuard,試用了一下不管速度、設定、串內網 DNS Server 都沒問題,應該之後會當作主要的連線方式
Raspberry Pi Setting
用官方的工具刷個 lite x64
,加個 ssh
檔案方便直接啟動 SSH Server
scoop install raspberry-pi-imager
一波更新
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get autoremove
sudo apt-get autoclean
用 raspi-config
更新一下 hostname, password + expand filesystem + time zone
sudo raspi-config
更新 firmware
sudo rpi-update
Install PiVPN
安裝 pivpn,這邊選 WireGuard 當作 VPN Server,就填一填這邊 DNS 可以設定自訂的 IP,我有用 AdGuard Home 做內網服務的 DNS rewrites,所以就填 AdGuard 的 IP
curl -L https://install.pivpn.io | bash
這邊可以看一下服務跟自己設定的 port 有沒有起來
$ sudo wg
interface: wg0
public key: ***********
private key: (hidden)
listening port: 5487
$ sudo netstat -tunlp
udp 0 0 0.0.0.0:5487 0.0.0.0:* -
udp6 0 0 :::5487 :::* -
增加 user,可以直接用 pivpn -a -n <name>
$ pivpn -a -n test
::: Client Keys generated
::: Client config generated
::: Updated server config
::: WireGuard reloaded
======================================================================
::: Done! test.conf successfully created!
::: test.conf was copied to /home/pi/configs for easy transfer.
::: Please use this profile only on one device and create additional
::: profiles for other devices. You can also use pivpn -qr
::: to generate a QR Code you can scan with the mobile app.
======================================================================
更多 command 與用法可以參考 pivpn 文件 https://docs.pivpn.io/wireguard/,包含移除、停用、列舉使用者,備份還原,還有一些其他的設定,例如你有在上面裝 Pi-hole 的話該怎麼設定
pivpn -qr
可以在 terminal 顯示 QR code 手機掃一下就可以,假如電腦的話可以複製 configs
下的設定檔餵給電腦的 Client 就好了
$ pivpn -qr
:: Client list ::
1) test
Please enter the Index/Name of the Client to show: 1
::: Showing client test below
=====================================================================
WireGuard client 的話可以參考官網 https://www.wireguard.com/install/ 下載對應的
假如有 port forwarding 要開一下 UDP,設定一下
都設定好應該可以看到連上來的裝置
$ pivpn -c
::: Connected Clients List :::
Name Remote IP Virtual IP Bytes Received Bytes Sent Last Seen
zet 114.136.***.**:35713 10.6.0.2 5.4MiB 36MiB Apr 03 2022 - 17:57:05
Misc
一些有可能需要修改的檔案
/etc/wireguard/wg0.conf
存一些PrivateKey
還有ListenPort
的設定假如未來有需要換 port 或是多加其他的設定可以再修改/etc/pivpn/wireguard/setupVars.conf
裡面放一些 port, dns, host addr 一些的設定主要就是產生 config 跟 QR 的時候會再多用到的一些東西