معرفی Wireguard
WireGuard یک VPN سبک و یکپارچه با هسته لینوکس است که بر پایه کلیدهای عمومی و پیکربندی چند خطی کار میکند. کد آن کوتاه است و بنابراین بررسی و ممیزی آن از VPNهای قدیمی سادهتر است، و راهاندازی تونل تقریباً آنی است. هم توسعهدهندگان و هم تیمهای کوچکی از آن استفاده میکنند که میخواهند نقطه خروج خودشان را کنترل کنند.
هنگام تحویل VPS شما، پکیج wireguard نصب شده و یک اینترفیس wg0 پیکربندی و توسط wg-quick@wg0 راهاندازی شده است. سرور روی UDP و پورت 51820 گوش میدهد، با شبکه خصوصی 10.8.0.0/24 (سرور روی 10.8.0.1 است). مسیریابی IPv4 و NAT (masquerade) فعال شدهاند تا ترافیک کلاینتهای شما از آیپی عمومی سرور خارج شود.
نخستین کلاینت از قبل ساخته شده است، با یک کلید پیشاشتراکی علاوه بر کلیدهای معمول. پیکربندی آن در /root/wg-client.conf و QR code برای اپلیکیشن موبایل در /root/wg-client-qr.txt قرار دارد. فقط کافی است آن را ایمپورت کنید.
با Wireguard چه کارهایی میتوانید انجام دهید
تونل کامل از پیش پیکربندیشده
کلاینت تولیدشده از AllowedIPs = 0.0.0.0/0 استفاده میکند: کل ترافیک IPv4 از VPS عبور میکند. DNS کلاینت روی 1.1.1.1 تنظیم شده است.
پیکربندی کلاینت و QR code
فایل /root/wg-client.conf را میتوان همانطور که هست در کلاینتهای WireGuard ایمپورت کرد. QR code فایل /root/wg-client-qr.txt برای اپلیکیشن موبایل در ترمینال نمایش داده میشود.
کلید پیشاشتراکی برای هر پیر
کلیدی که با wg genpsk تولید میشود به تبادل کلیدهای عمومی اضافه میشود. این کلید حفاظت اتصال را تقویت میکند و فایلهای حساس با حالت 600 ساخته میشوند.
راهاندازی خودکار هنگام بوت
سرویس wg-quick@wg0 با systemd فعال شده است. تونل پس از راهاندازی مجدد سرور خودش برمیگردد.
NAT و forwarding از قبل برقرار
forwarding برای IPv4 در /etc/sysctl.d/99-wireguard.conf فعال شده است. قوانین iptables برای FORWARD و masquerade هنگام راهاندازی wg0 اعمال و هنگام توقف حذف میشوند.
شروع کار با Wireguard
از سفارش تا راهاندازی نهایی، در چند دقیقه.
- 1
سفارش VPS همراه با WireGuard
یک VPS لینوکسی در پاریس یا فرانکفورت انتخاب کنید (Debian 12، Debian 13، Ubuntu 20.04، 22.04 یا 24.04). در تب «Applications» فرم سفارش، WireGuard را تیک بزنید.
- 2
اتصال به سرور و دریافت کلاینت
پس از تحویل سرور، با اطلاعات دریافتی یک نشست SSH باز کنید. بررسی کنید تونل در حال اجراست و سپس QR code را نمایش دهید یا فایل پیکربندی را روی دستگاه خود کپی کنید.
Bashssh root@SERVER_IP systemctl status wg-quick@wg0 cat /root/wg-client-qr.txt # depuis votre poste : scp root@SERVER_IP:/root/wg-client.conf . - 3
ایمپورت پیکربندی و آزمایش
QR code را با اپلیکیشن موبایل WireGuard اسکن کنید یا wg-client.conf را در اپلیکیشن دسکتاپ ایمپورت کنید. در لینوکس یک دستور کافی است و سپس بررسی کنید که handshake انجام شده باشد.
Bashsudo wg-quick up ./wg-client.conf sudo wg show - 4
امنسازی برای محیط تولید
بررسی کنید پورت UDP شماره 51820 باز باشد و سایر پورتهای در معرض دید را محدود کنید. اگر نام را به آیپی ترجیح میدهید، پس از ساخت رکورد DNS، خط Endpoint کلاینت را با YOUR_DOMAIN:51820 جایگزین کنید. از /etc/wireguard بکاپ را خارج از سرور نگه دارید.
Bashtar czf wg-backup.tgz /etc/wireguard /root/wg-client.conf
کاربردهای Wireguard
محافظت از Wi-Fi عمومی
در هتل، قطار یا کافه، ترافیک IPv4 شما پیش از رسیدن به اینترنت از یک تونل رمزگذاریشده تا VPS شما عبور میکند.
داشتن یک آیپی خروجی ثابت
آیپی خروجی شما همان آیپی VPS میشود و به این ترتیب میتوانید فقط یک آدرس را روی فایروال، پایگاه داده یا یک API مدیریتی مجاز کنید.
اتصال دستگاههایتان به یکدیگر
کامپیوتر، تلفن و ماشینهای راه دور به شبکه 10.8.0.0/24 میپیوندند و میتوانند با آدرسهای خصوصی به هم برسند و سرور نقش نقطه مرکزی را دارد.
انتخاب پاریس یا فرانکفورت
با انتخاب لوکیشن VPS هنگام سفارش، منطقه خروج را خودتان تعیین میکنید، مثلاً برای آزمایش یک سرویس از فرانسه یا آلمان.
پرسشهای متداول درباره Wireguard
با SSH وارد شوید و /root/wg-client.conf را بخوانید، یا QR code را با cat /root/wg-client-qr.txt نمایش دهید. میتوانید فایل را با scp root@SERVER_IP:/root/wg-client.conf . هم روی دستگاه خود کپی کنید.
درباره Wireguard بیشتر بدانید
فایلها و سرویسهای نصبشده
/etc/wireguard/wg0.conf: پیکربندی سرور (کلید خصوصی، پیر client1، قوانین PostUp و PostDown)./root/wg-client.conf: پیکربندی نخستین کلاینت./root/wg-client-qr.txt: QR code این پیکربندی که باcatقابل نمایش است./etc/sysctl.d/99-wireguard.conf: گزینهnet.ipv4.ip_forwardرا فعال میکند./opt/install-wireguard.sh: اسکریپت نصبی که هنگام تحویل اجرا شده است.
کلاینت آدرس 10.8.0.2/32 را دریافت میکند. آدرس عمومی که در Endpoint قرار دارد، همان است که هنگام نصب شناسایی شده است.
افزودن دستگاهی دیگر
هر دستگاه باید جفت کلید و آدرس مخصوص خودش را داشته باشد (10.8.0.3، 10.8.0.4 و غیره). کلیدها را روی سرور تولید کنید و سپس یک بلوک [Peer] به wg0.conf اضافه کنید.
Bashcd /etc/wireguard umask 077 wg genkey | tee client2.key | wg pubkey > client2.pub wg genpsk > client2.psk
سپس محتوای client2.pub و client2.psk را همراه با AllowedIPs = 10.8.0.3/32 در /etc/wireguard/wg0.conf اضافه کنید و بدون قطع تونلهای موجود، دوباره بارگذاری کنید:
Bashwg syncconf wg0 <(wg-quick strip wg0)
فایل کلاینت را با الگوبرداری از /root/wg-client.conf بنویسید: PrivateKey و Address را تغییر دهید و PublicKey سرور و همچنین Endpoint را نگه دارید.
نکات قابل توجه
کلاینت تولیدشده فقط IPv4 را مسیریابی میکند (0.0.0.0/0). اگر دستگاه شما IPv6 دارد، این ترافیک از تونل عبور نمیکند: اگر برایتان اهمیت دارد، IPv6 را در سمت کلاینت غیرفعال کنید.
DNS کلاینت 1.1.1.1 است. برای استفاده از یک resolver دیگر، خط DNS فایل کلاینت را تغییر دهید. با /root/wg-client.conf مانند یک رمز عبور رفتار کنید: این فایل کلید خصوصی کلاینت را دارد. پس از ایمپورت، کپیهای غیرضروری را حذف کنید.
برای راهنماهای بیشتر درباره مدیریت سرور لینوکسی، آموزشهای ما یا صفحه VPS لینوکسی را ببینید.