WireGuard یک پروتکل VPN مدرن است که سریع، کوچک و آسان برای پیکربندی است. اجرای نمونه شخصی آن روی یک VPS به شما یک تونل رمزگذاریشده به سروری در کشور دلخواه میدهد، بدون هیچ شرکت VPN شخص ثالثی در میانه. این راهنما از Ubuntu 24.04 یا Debian 12/13 استفاده میکند و فرض میکند پیشتر سرور را ایمن کردهاید.
1. نصب WireGuard
sudo apt update
sudo apt install -y wireguard
2. ساخت کلیدهای سرور
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
umask 077 تضمین میکند فایلهای کلید فقط برای root خواندنی باشند. server.key را خصوصی نگه دارید.
3. ساخت کلیدهای کلاینت
یک جفت کلید برای لپتاپ یا گوشی خود روی سرور بسازید و بعداً پیکربندی کلاینت را کپی کنید:
wg genkey | tee client1.key | wg pubkey > client1.pub
4. نوشتن پیکربندی سرور
ابتدا نام رابط شبکه عمومی خود را پیدا کنید:
ip route get 1.1.1.1 | awk '{print $5; exit}'
اغلب eth0 یا ens3 است. فایل /etc/wireguard/wg0.conf را بسازید و مقادیر با حروف بزرگ را با مقادیر خودتان جایگزین کنید:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ETH_IF -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ETH_IF -j MASQUERADE
[Peer]
# client1
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
محتوای server.key و client1.pub را در جاهای مشخصشده بچسبانید و ETH_IF را با نام رابط خود جایگزین کنید.
5. فعالسازی IP forwarding
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
6. باز کردن فایروال
sudo ufw allow 51820/udp
sudo ufw route allow in on wg0
sudo ufw reload
7. راهاندازی تونل
sudo systemctl enable --now wg-quick@wg0
sudo wg show
باید رابط را ببینید و، پس از اتصال یک کلاینت، آخرین handshake آن را.
8. پیکربندی کلاینت
روی دستگاه خود پیکربندیای شبیه این بسازید (برنامههای رسمی WireGuard برای Windows، macOS، Linux، iOS و Android میتوانند آن را از فایل یا کد QR وارد کنند):
[Interface]
Address = 10.8.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
استفاده از AllowedIPs = 0.0.0.0/0, ::/0 همه ترافیک را از تونل عبور میدهد. برای دسترسی فقط به شبکه خصوصی خود بهجای آن از 10.8.0.0/24 استفاده کنید.
9. آزمایش
- تونل را روی کلاینت فعال کنید.
sudo wg showرا روی سرور اجرا کنید و تأیید کنید یک handshake اخیر وجود دارد.- از کلاینت یک صفحه «IP من چیست» را باز کنید. باید آدرس سرور شما را نشان دهد.
- اگر حریم خصوصی هدف است، نشت DNS را بررسی کنید و اگر سرورتان IPv6 دارد، قوانین IPv6 اضافه کنید.
افزودن دستگاههای بیشتر
برای هر دستگاه جدید یک جفت کلید بسازید، یک بلوک [Peer] دیگر با آدرس جدیدی مانند 10.8.0.3/32 اضافه کنید و sudo wg syncconf wg0 <(wg-quick strip wg0) را اجرا کنید تا بدون قطع اتصالهای موجود اعمال شود.
انتخاب موقعیت
یک سرور WireGuard از هر یک از مکانهای ما کار میکند. برای سرعت، مکانی نزدیک به خودتان را انتخاب کنید، یا کشوری که میخواهید ترافیک شما از آدرس IP آن بیاید. نحوه انتخاب مکان VPS را ببینید. یک VPS کوچک برای تونل شخصی بیش از کافی است.