در این مثال شبکهی VPN 10.20.0.0/24 است، سرور آدرس 10.20.0.1 دارد و کاربران VPN باید به شبکهی داخلی 192.168.10.0/24 دسترسی داشته باشند.
۱. نصب و کلیدها
sudo apt update
sudo apt install -y wireguard
sudo -i
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
wg genkey | tee ali.key | wg pubkey > ali.pub
exit۲. پیکربندی سرور
نام کارت شبکهی اصلی را با ip route | grep default پیدا کنید (اینجا ens18).
sudo nano /etc/wireguard/wg0.conf[Interface]
Address = 10.20.0.1/24
ListenPort = 51820
PrivateKey = <محتوای server.key>
PostUp = iptables -t nat -A POSTROUTING -s 10.20.0.0/24 -o ens18 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 10.20.0.0/24 -o ens18 -j MASQUERADE
# کاربر: علی
[Peer]
PublicKey = <محتوای ali.pub>
AllowedIPs = 10.20.0.2/32۳. فعال کردن مسیریابی و فایروال
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
sudo ufw allow 51820/udp
sudo ufw route allow in on wg0 out on ens18 to 192.168.10.0/24
sudo systemctl enable --now wg-quick@wg0
sudo wg showufw route فقط اجازهی دسترسی به شبکهی داخلی را میدهد، نه به کل اینترنت از طریق سرور.
۴. فایل کلاینت
[Interface]
PrivateKey = <محتوای ali.key>
Address = 10.20.0.2/32
DNS = 192.168.10.53
[Peer]
PublicKey = <محتوای server.pub>
Endpoint = vpn.example.ir:51820
AllowedIPs = 10.20.0.0/24, 192.168.10.0/24
PersistentKeepalive = 25این فایل را در برنامهی WireGuard ویندوز، اندروید یا iOS وارد کنید. برای موبایل میتوانید QR بسازید:
sudo apt install -y qrencode
qrencode -t ansiutf8 < ali.conf۵. لغو دسترسی یک کاربر
بلوک [Peer] او را از wg0.conf حذف کنید و:
sudo systemctl restart wg-quick@wg0کلید خصوصی کلاینت را پس از تحویل از روی سرور پاک کنید.