مقدمه
WireGuard یک پروتکل VPN سبک، سریع و امن است که محبوبیت زیادی بین مدیران شبکه و کاربران حرفهای پیدا کرده است. بااینحال، مانند هر سرویس شبکهای، ممکن است با مشکلات اتصال روبهرو شود. در این مقاله بهصورت گامبهگام متداولترین مشکلات اتصال WireGuard و روشهای رفع آن را بررسی میکنیم تا بتوانید سرعت عمل بیشتری در عیبیابی داشته باشید.

بخش 1 — مشکلات رایج اتصال WireGuard
- کلاینت به سرور متصل نمیشود (No handshake).
- اتصال برقرار میشود اما ترافیک عبور نمیکند (no traffic).
- اتصال قطع و وصل میشود (unstable).
- خطاهای مسیریابی (routing) و دسترسی به شبکه داخلی.
- ناسازگاری MTU یا بستههای خردشده (fragmentation).
بخش 2 — بررسی اولیه و پیشنیازها
- بررسی سرویس و وضعیت WireGuard
- در سرور و کلاینت از systemd/status استفاده کنید: sudo systemctl status [wg-quick@wg0]
- بررسی کنید که ماژول wireguard در کرنل لود شده باشد: lsmod | grep wireguard
- بررسی کلیدها و پیکربندیها
- مطمئن شوید public/private keys درست تولید و جایگذاری شدهاند و در هر طرف کلید متقابل (peer) صحیح وارد شده است.
- آدرسهای IP در بخش [Interface] و [Peer] منطبق و بدون تداخل با شبکههای محلی باشند.
بخش 3 — عیبیابی Handshake و اتصال اولیه
- بررسی لاگها
- در سرور و کلاینت لاگهای ژورنال را مشاهده کنید: sudo journalctl -u wg-quick@wg0 -e
- پیامهای مرتبط با handshake و خطاهای cryptographic را دنبال کنید.
- استفاده از wg show و wg-quick
- دستور wg show برای دیدن وضعیت handshake و آخرین زمان موفقیتآمیز آن: wg show
- اگر مقدار latest handshake صفر یا خیلی قدیمی است، اتصال برقرار نشده.
- پورت و فایروال
- مطمئن شوید پورت UDP ای که WireGuard استفاده میکند (مثلاً 51820) در سرور باز است و در NAT/router به سرور فوروارد شده است.
- بررسی iptables/nftables: sudo iptables -L -n -v یا sudo nft list ruleset
بخش 4 — مشکل اتصال اما عدم عبور ترافیک
- فعالسازی IP forwarding
- در سرور: sudo sysctl -w net.ipv4.ip_forward=1 و برای دائمی کردن آن، net.ipv4.ip_forward=1 را در /etc/sysctl.conf اضافه کنید.
- تنظیم NAT (Masquerade)
- اگر سرور قرار است ترافیک را به اینترنت NAT کند، یک قاعده iptables اضافه کنید:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- در nftables معادل آن را تنظیم کنید.
- بررسی جدول مسیریابی (Routing)
- مطمئن شوید مسیرهای مناسب برای شبکه WireGuard در جدول روت وجود دارد: ip route show
- در کلاینتها بررسی کنید که AllowedIPs درست تنظیم شدهاند (مثلاً 0.0.0.0/0 برای تونل کامل یا شبکه خاص برای روتینگ جزئی).
بخش 5 — مشکلات NAT و NAT Traversal
- اگر سرور پشت NAT است، تنظیم فوروارد پورت و STUN-like troubleshooting ضروری است.
- بررسی کنید که ISP یا روتر مبدأ فیلترینگ یا بلوک UDP انجام نمیدهد. در مواردی استفاده از پورت غیرمعمول (مثل 443 UDP) ممکن است کمک کند.
بخش 6 — MTU و fragmentation
- خطاهای ناشی از MTU میتواند باعث افت بستهها یا کاهش سرعت شود. مقدار MTU را کاهش دهید (مثلاً 1420 یا 1380) در تنظیمات Interface: MTU = 1420
- تست با ping و اندازه بسته: ping -M do -s 1372 <target> برای پیدا کردن اندازه مناسب.
بخش 7 — مشکلات DNS و دسترسی به منابع
- اگر اتصال برقرار است اما وبسایتها باز نمیشوند، ممکن است مشکل DNS باشد.
- در تنظیمات Interface روی کلاینت DNS مناسب (مانند 1.1.1.1 یا 8.8.8.8) را مشخص کنید یا از DNS داخلی استفاده کنید.
- بررسی کنید که DNS leak یا مشکل resolve در سمت کلاینت وجود نداشته باشد: dig @1.1.1.1 example.com
بخش 8 — مسائل امنیتی و کلیدها
- کلیدها را امن نگه دارید و از تولید مجدد کلیدها در صورت لو رفتن استفاده کنید.
- مطمئن شوید permissions فایلهای کلید مناسب است (chmod 600).
- در محیط چندکاربره، از AllowedIPs برای محدود کردن دسترسی Peerها استفاده کنید تا از برداشت ترافیک ناخواسته جلوگیری شود.
بخش 9 — تست و ابزارهای تشخیصی
- tcpdump و wireshark برای بررسی ترافیک WireGuard در سرور: sudo tcpdump -i eth0 udp port 51820 -w wg.pcap
- wg-quick strip و wg-quick up/down برای راهاندازی مجدد سریع.
- بررسی latency و packet loss با ابزارهایی مانند mtr یا ping.
بخش 10 — نمونه سناریوها و راهحلها
- سناریو: No handshake
- بررسی پورت و فورواردینگ روی روتر، اطمینان از public key صحیح، باز بودن UDP در فایروال.
- سناریو: اتصال اما بدون اینترنت در کلاینت
- چک کردن IP forwarding، تنظیم NAT و AllowedIPs به 0.0.0.0/0 (در صورت نیاز به دسترسی کامل).
- سناریو: قطع و وصل مکرر
- بررسی کیفیت لینک اینترنت، کاهش MTU، و تست با پورتهای متفاوت برای دورزدن محدودیت ISP.
نتیجهگیری
با دنبالکردن یک روند منظم عیبیابی — بررسی لاگها، مطمئن شدن از سلامت کلیدها، پیکربندی صحیح فایروال و مسیریابی، و تنظیم MTU/DNS — میتوانید بیشتر مشکلات اتصال WireGuard را حل کنید. WireGuard پروتکلی پایدار و امن است؛ بیشتر مشکلات از پیکربندی شبکه و NAT ناشی میشوند تا خود پروتکل.
فوتر / CTA پیشنهادی
- «اگر پیکربندی WireGuard شما خاص است یا نیاز به بررسی دقیق لاگها و فایلهای پیکربندی دارید، تنظیمات و خروجی دستور wg show را ارسال کنید تا تحلیل مفصلتری برای شما آماده کنم.»