صفحه اصلی وبلاگ خرید اشتراک
وایرگارد

رفع مشکلات اتصال WireGuard: راهنمای گام‌به‌گام و عیب‌یابی

مقدمه

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

تصویر داخل محتوا

بخش 1 — مشکلات رایج اتصال WireGuard 

  • کلاینت به سرور متصل نمی‌شود (No handshake).
  • اتصال برقرار می‌شود اما ترافیک عبور نمی‌کند (no traffic).
  • اتصال قطع و وصل می‌شود (unstable).
  • خطاهای مسیریابی (routing) و دسترسی به شبکه داخلی.
  • ناسازگاری MTU یا بسته‌های خردشده (fragmentation).

بخش 2 — بررسی اولیه و پیش‌نیازها

  1. بررسی سرویس و وضعیت WireGuard
    • در سرور و کلاینت از systemd/status استفاده کنید: sudo systemctl status [wg-quick@wg0]
    • بررسی کنید که ماژول wireguard در کرنل لود شده باشد: lsmod | grep wireguard
  2. بررسی کلیدها و پیکربندی‌ها
    • مطمئن شوید public/private keys درست تولید و جایگذاری شده‌اند و در هر طرف کلید متقابل (peer) صحیح وارد شده است.
    • آدرس‌های IP در بخش [Interface] و [Peer] منطبق و بدون تداخل با شبکه‌های محلی باشند.

بخش 3 — عیب‌یابی Handshake و اتصال اولیه

  1. بررسی لاگ‌ها
    • در سرور و کلاینت لاگ‌های ژورنال را مشاهده کنید: sudo journalctl -u wg-quick@wg0 -e
    • پیام‌های مرتبط با handshake و خطاهای cryptographic را دنبال کنید.
  2. استفاده از wg show و wg-quick
    • دستور wg show برای دیدن وضعیت handshake و آخرین زمان موفقیت‌آمیز آن: wg show
    • اگر مقدار latest handshake صفر یا خیلی قدیمی است، اتصال برقرار نشده.
  3. پورت و فایروال
    • مطمئن شوید پورت UDP ای که WireGuard استفاده می‌کند (مثلاً 51820) در سرور باز است و در NAT/router به سرور فوروارد شده است.
    • بررسی iptables/nftables: sudo iptables -L -n -v یا sudo nft list ruleset

بخش 4 — مشکل اتصال اما عدم عبور ترافیک

  1. فعال‌سازی IP forwarding
    • در سرور: sudo sysctl -w net.ipv4.ip_forward=1 و برای دائمی کردن آن، net.ipv4.ip_forward=1 را در /etc/sysctl.conf اضافه کنید.
  2. تنظیم NAT (Masquerade)
    • اگر سرور قرار است ترافیک را به اینترنت NAT کند، یک قاعده iptables اضافه کنید:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

  • در nftables معادل آن را تنظیم کنید.
  1. بررسی جدول مسیریابی (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 — نمونه سناریوها و راه‌حل‌ها 

  1. سناریو: No handshake
    • بررسی پورت و فورواردینگ روی روتر، اطمینان از public key صحیح، باز بودن UDP در فایروال.
  2. سناریو: اتصال اما بدون اینترنت در کلاینت
    • چک کردن IP forwarding، تنظیم NAT و AllowedIPs به 0.0.0.0/0 (در صورت نیاز به دسترسی کامل).
  3. سناریو: قطع و وصل مکرر
    • بررسی کیفیت لینک اینترنت، کاهش MTU، و تست با پورت‌های متفاوت برای دورزدن محدودیت ISP.

نتیجه‌گیری

با دنبال‌کردن یک روند منظم عیب‌یابی — بررسی لاگ‌ها، مطمئن شدن از سلامت کلیدها، پیکربندی صحیح فایروال و مسیریابی، و تنظیم MTU/DNS — می‌توانید بیشتر مشکلات اتصال WireGuard را حل کنید. WireGuard پروتکلی پایدار و امن است؛ بیشتر مشکلات از پیکربندی شبکه و NAT ناشی می‌شوند تا خود پروتکل.

فوتر / CTA پیشنهادی

  • «اگر پیکربندی WireGuard شما خاص است یا نیاز به بررسی دقیق لاگ‌ها و فایل‌های پیکربندی دارید، تنظیمات و خروجی دستور wg show را ارسال کنید تا تحلیل مفصل‌تری برای شما آماده کنم.»

ارتباط در واتس‌اپ

0917 481 9309