WireGuard — VPN مدرن و سبک
VPN ساده و سریع با الگوریتمهای ثابت و مدرن. هر همتا با کلید عمومیاش شناخته میشود و دستدهی فقط یک رفتوبرگشت است.
- لایهٔ OSI: 3 (شبکه)
- انتقال: UDP
- پورت: 51820
- استاندارد: Noise IK · هستهٔ لینوکس 5.6
- سطح: پیشرفته · حدود 6 دقیقه
نکتههای کلیدی
- WireGuard حدود ۴۰۰۰ خط کد دارد و بخشی از هستهٔ لینوکس است.
- الگوریتمها ثابتاند: Curve25519، ChaCha20-Poly1305 و BLAKE2s؛ مذاکرهای در کار نیست.
- AllowedIPs هم جدول مسیریابی و هم فیلتر مبدأ است.
مراحل شبیهسازی (5 بسته)
- Initiation: کلاینت پیام ۱۴۸ بایتی Noise_IK را با هویت رمزشده میفرستد. سرور به بستههای بدون کلید معتبر اصلاً پاسخ نمیدهد.
- Response: سرور با پیام ۹۲ بایتی پاسخ میدهد. پس از یک رفتوبرگشت کلیدهای انتقال ساخته شدهاند.
- دادهٔ تونل: بستهٔ IP داخلی (10.8.0.2 به 10.20.0.15) کامل با ChaCha20-Poly1305 رمز و در UDP گذاشته میشود.
- تحویل داخلی: سرور بسته را رمزگشایی و بررسی میکند که IP مبدأ در AllowedIPs همتا باشد، سپس به شبکهٔ داخلی تحویل میدهد.
- Keepalive: بستهٔ خالی ۳۲ بایتی هر ۲۵ ثانیه تا نگاشت NAT باز بماند.