在 Ubuntu 22.04 上安装和配置 WireGuard:全面实用指南
در این راهنما به روش نصب و پیکربندی WireGuard بر روی Ubuntu 22.04 پرداخته شده است.

在 Ubuntu 22.04 上安装和配置 WireGuard:全面实用指南

本文将向您展示如何在 Ubuntu 22.04 上安装和配置 WireGuard。.
0 股票
0
0
0
0

چرا باید WireGuard را روی Ubuntu 22.04 انتخاب کنید؟

اگر به‌دنبال یک VPN مدرنسبکامن و با کارایی بالا برای اتصال سرورهای ابری، VPS مخصوص ترید، گیم یا دسترسی به کلاسترهای GPU هستید، WireGuard یکی از بهترین گزینه‌هاست.

این راهنما قدم‌به‌قدم نصب، پیکربندی، بهینه‌سازی و نکات امنیتی راه‌اندازی WireGuard روی Ubuntu 22.04 را پوشش می‌دهد. مثال‌های عملی، دستورات لینوکسی و پیکربندی سرور/کلاینت ارائه شده‌اند.

先决条件

پیش از شروع نیاز دارید به:

  • 服务器 Ubuntu 22.04 با دسترسی root یا کاربر sudo.
  • پورت UDP باز در فایروال (پیش‌فرض 51820).
  • دسترسی SSH به ماشین سرور.
  • پیشنهاد: استفاده از یکی از سرورهای VPS یا سرور ابری شرکت با 全球85多个地点 برای کمترین پینگ و بهترین مسیر BGP.

نصب WireGuard در Ubuntu 22.04

در Ubuntu 22.04 بسته wireguard معمولاً در مخازن رسمی موجود است. اگر نیاز به آخرین نسخه داشته باشید می‌توان از PPA یا backports استفاده کرد، اما بسته رسمی توزیع معمولاً کافی و پایدار است.

apt update && apt upgrade -y
apt install -y wireguard qrencode iptables-persistent

تولید کلیدها و ساختار فایل‌ها

مثال زیر تولید کلیدهای سرور و یک کلاینت نمونه را نشان می‌دهد. فایل‌ها باید با مجوز مناسب ذخیره شوند تا کلیدهای خصوصی محافظت شوند.

mkdir -p /etc/wireguard
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
wg genkey | tee client_private.key | wg pubkey > client_public.key
chmod 600 /etc/wireguard/*key

پیکربندی سرور — مثال عملی wg0.conf

یک نمونه فایل پیکربندی سرور در مسیر /etc/wireguard/wg0.conf به‌صورت زیر است. به‌جای مقادیر در براکت، مقدارهای واقعی کلید و gateway را قرار دهید. توجه کنید در محیط‌های cloud اسم اینترفیس شبکه ممکن است eth0 نباشد (مثلاً ens3 或者 ens5).

[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <محتوای سرور_private.key>
SaveConfig = true

# NAT هنگام بالا آمدن اینترفیس
PostUp = ip -4 rule add from 10.10.0.0/24 table 51820 || true
PostUp = ip -4 route add default via <SERIAL_IF_GATEWAY> dev eth0 table 51820 || true
PostUp = iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE

پیکربندی کلاینت (Linux، Windows، موبایل)

یک کانفیگ نمونه برای کلاینت لینوکس یا موبایل که تونل کامل (full-tunnel) ایجاد می‌کند:

[Interface]
PrivateKey = <محتوای client_private.key>
Address = 10.10.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = <محتوای server_public.key>
Endpoint = your.server.ip.or.hostname:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
MTU = 1420

برای تولید QR مخصوص موبایل:

qrencode -t ansiutf8 < client.conf

فعال‌سازی IP Forwarding و NAT

برای عبور ترافیک از سرور باید IP forwarding فعال باشد و قوانین NAT مناسب تنظیم شوند.

sysctl -w net.ipv4.ip_forward=1
# برای دائمی کردن:
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wg-forward.conf

فایروال (UFW / nftables / iptables)

نمونه تنظیمات برای UFW و nftables آمده است. اگر از UFW استفاده می‌کنید باید ip_forward را نیز فعال کنید و قوانین NAT را اضافه نمایید.

ufw allow 51820/udp
ufw allow OpenSSH
echo "net/ipv4/ip_forward=1" > /etc/ufw/sysctl.conf
# اضافه کردن قوانین NAT ممکن است در /etc/ufw/before.rules یا با iptables-persistent انجام شود

مثال nftables (جایگزین iptables):

nft add table ip wg
nft 'add chain ip wg postrouting { type nat hook postroute priority 100; }'
nft add rule ip wg postrouting oifname "eth0" ip saddr 10.10.0.0/24 masquerade

راه‌اندازی سرویس WireGuard

پس از پیکربندی می‌توانید سرویس را فعال و اجرا کنید و وضعیت آن را بررسی کنید.

systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
wg show
ip a show wg0

بهینه‌سازی MTU، Keepalive و AllowedIPs

MTU: مقدار پیش‌فرض 1420 اغلب مناسب است؛ در مواردی با overhead بیشتر ممکن است نیاز به کاهش به 1380 باشد.

PersistentKeepalive: مقدار 25 برای کلاینت‌ها مناسب است تا NAT timeouts جلوگیری شود.

AllowedIPs: در WireGuard هم نقش روتر و هم نقش فیلتر را دارد — آن را با دقت تنظیم کنید.

انواع تونل و AllowedIPs

دو الگوی رایج:

  • تونل کامل (Full tunnel): AllowedIPs = 0.0.0.0/0, ::/0
  • اسپلیت تونل (Split tunnel): AllowedIPs فقط شامل شبکه‌هایی است که باید از طریق VPN عبور کنند (مثلاً 10.10.0.0/24 یا 192.168.1.0/24).

توصیه‌های تخصصی برای موارد استفاده مختلف

۱) VPS مخصوص ترید (Forex/Crypto)

برای ترید، انتخاب لوکیشن نزدیک به سرورهای صرافی اهمیت دارد. از بین 85+ لوکیشن، نزدیک‌ترین دیتاسنتر با مسیر BGP کم‌تاخیر را انتخاب کنید تا latency کاهش یابد.

پیکربندی: تونل کامل با فایروال محدودکننده و MTU استاندارد، Keepalive ثابت.

安全: محدود کردن دسترسی SSH به IP داخلی VPN و استفاده از سرور اختصاصی یا VPS با Anti-DDoS.

۲) VPS مخصوص گیم

برای گیم، لوکیشن نزدیک به سرورهای بازی یا ISP گیمر انتخاب شود. اسپلیت تونل برای ارسال فقط ترافیک بازی از طریق VPN می‌تواند پینگ بهتری ایجاد کند.

کاهش پینگ: استفاده از UDP، MTU مناسب و سرور با رابط شبکه 10Gbps توصیه می‌شود.

۳) GPU Cloud، AI و رندرینگ

WireGuard برای دسترسی امن و سریع به سرورهای GPU یا کلاسترهای رندرینگ مناسب است. انتخاب لوکیشن با اتصال مستقیم به دیتاسنترهای AI یا backbone شبکه برای انتقال داده‌های بزرگ مهم است.

پیکربندی: AllowedIPs محدود به زیرشبکه کلاستر و استفاده از پارامترهای QoS در سطح شبکه.

۴) میزبانی وب و دیتابیس

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

امنیت، گردش کلید و مانیتورینگ

نکات کلیدی نگهداری و امنیت:

  • نگهداری کلید: private key هرگز نباید منتشر شود؛ استفاده از فایل‌سیستم رمزنگاری‌شده برای سرورهای حساس توصیه می‌شود.
  • گردش کلید (Key Rotation): برنامه زمان‌بندی برای تجدید کلیدها داشته باشید؛ قبل از حذف کلیدهای قدیمی، Peer جدید اضافه کنید تا اختلالی ایجاد نشود.
  • لاگ و مانیتورینگ: از ابزارهایی مانند wg، لاگ‌های iptables، fail2ban و Prometheus/Grafana برای مانیتورینگ استفاده کنید.
  • محدودسازی دسترسی: هر Peer را به IP/سرویس مشخص محدود کنید و از AllowedIPs سراسری بدون دلیل پرهیز کنید.

پیکربندی Multi-peer و استفاده در محیط تولید

برای اضافه کردن چند کلاینت کافی است در بخش [Peer] سرور یک بلوک برای هر کلاینت اضافه کنید. WireGuard برای تعداد بالایی از Peerها مناسب است، اما در مقیاس هزاران کلاینت از orchestration یا load-balancer استفاده شود.

[Peer]
PublicKey = <client1_pubkey>
AllowedIPs = 10.10.0.2/32

[Peer]
PublicKey = <client2_pubkey>
AllowedIPs = 10.10.0.3/32

عیب‌یابی سریع

دستورات و نکات برای عیب‌یابی:

  • wg show: بررسی وضعیت، آمار RX/TX و آخرین handshake.
  • journalctl -u wg-quick@wg0 -e: مشاهده لاگ‌های سرویس.
  • tcpdump -i wg0: بررسی بسته‌ها داخل تونل.
  • اگر handshake انجام نمی‌شود، مطمئن شوید پورت UDP روی فایروال و NAT provider باز است (بعضی شبکه‌های NAT خانگی نیاز به port forwarding دارند).

نکات عملی و تجربی

تجربیات کاربردی برای راه‌اندازی پایدار:

  • در شبکه‌هایی با Carrier NAT، ممکن است نیاز به پورت غیرمعمول یا استفاده از relay/bridge باشد.
  • برای کلاینت‌های موبایل و کلاینت‌های با IP پویا، استفاده از PersistentKeepalive کاربردی است.
  • قرار دادن gateway WireGuard در لوکیشن با اتصال مستقیم به CDN می‌تواند بار و تاخیر را بهینه کند.

ارتباط با خدمات شرکت (85+ لوکیشن و سرویس‌ها)

اگر می‌خواهید WireGuard را روی زیرساختی با پوشش جهانی پیاده کنید، از بین 85+ لوکیشن دیتاسنتر شرکت می‌توانید نزدیک‌ترین مکان را برای کاهش پینگ و بهبود مسیر انتخاب کنید. سرویس‌هایی که ارائه می‌شود شامل:

  • VPS مخصوص ترید با پینگ کم و Anti-DDoS
  • VPS مخصوص گیم با رابط شبکه کم‌تاخیر
  • سرور گرافیکی (GPU Cloud) برای AI و رندرینگ با دسترسی امن از طریق WireGuard
  • سرورهای اختصاصی و ابری با اتصال BGP/Direct Connect و CDN برای ترافیک وب
  • میزبانی GitLab و دیتابیس در شبکه داخلی WireGuard برای امنیت بیشتر

结论

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

برای امنیت همیشه private key را محافظت کرده، فایروال مناسب تنظیم کنید و AllowedIPs را محدود نگه دارید.

مشاهده پلن‌ها و پشتیبانی

برای راه‌اندازی روی زیرساخت با پوشش جهانی می‌توانید از بین پلن‌های VPS، سرور اختصاصی و GPU Cloud شرکت انتخاب کنید. تیم فنی شرکت در صورت نیاز برای پیکربندی حرفه‌ای، انتخاب لوکیشن بهینه و راه‌اندازی شبکه‌های WireGuard آماده ارائه پشتیبانی است.

常见问题解答

您可能也喜欢