انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

إعداد خادم WireGuard VPN: دليل خطوة بخطوة

أنشئ خادم WireGuard VPN: توليد المفاتيح، إعداد الخادم والعميل، توجيه IP، قواعد جدار الحماية وإعداد عملاء Windows/Linux/Android.

وقت القراءة: 15 دقيقة الأمان
wireguardvpnأمان الخادمنفقlinuxأمان الشبكةتشفيرإعداد vpn
الكاتب
REXE Teknoloji Network & Security Team
المحرر
REXE Teknoloji Technical Editorial
أول نشر
آخر تحديث

إعداد خادم WireGuard VPN: دليل خطوة بخطوة

WireGuard هو بروتوكول VPN حديث وسريع وآمن. مقارنةً بـ OpenVPN و IPSec، له بنية أبسط بكثير ويوفر أداءً عاليًا. سيرشدك هذا الدليل لإعداد خادم WireGuard VPN على خادم REXE الخاص بك.

لماذا تختار WireGuard؟

  • إعداد بسيط: بضعة أسطر فقط من الإعداد
  • أداء عالٍ: يعمل على مستوى النواة، زمن استجابة منخفض
  • تشفير حديث: ChaCha20, Poly1305, Curve25519
  • قاعدة كود صغيرة: ~4000 سطر (OpenVPN ~100,000 سطر)
  • متعدد المنصات: Linux, Windows, macOS, iOS, Android

التثبيت

hljs bash
# Ubuntu 20.04+
sudo apt update
sudo apt install wireguard -y

# CentOS/AlmaLinux 8+
sudo dnf install epel-release -y
sudo dnf install wireguard-tools -y

توليد المفاتيح

hljs bash
# توليد مفاتيح الخادم
cd /etc/wireguard

# توليد المفتاح الخاص
wg genkey | sudo tee /etc/wireguard/server_private.key

# اشتقاق المفتاح العام
sudo cat /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

# ضبط أذونات الملف
sudo chmod 600 /etc/wireguard/server_private.key

إعداد الخادم

hljs bash
# إيجاد واجهة الشبكة
ip route | grep default

# إنشاء ملف إعداد WireGuard
sudo nano /etc/wireguard/wg0.conf
hljs ini
# /etc/wireguard/wg0.conf — إعداد الخادم

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = المفتاح_الخاص_للخادم

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = المفتاح_العام_للعميل1
AllowedIPs = 10.0.0.2/32

[Peer]
PublicKey = المفتاح_العام_للعميل2
AllowedIPs = 10.0.0.3/32

استبدل eth0 باسم واجهة الشبكة الفعلية. اعثر عليها بـ ip route | grep default.

تفعيل توجيه IP

hljs bash
# تفعيل مؤقت
sudo sysctl -w net.ipv4.ip_forward=1

# تفعيل دائم
sudo nano /etc/sysctl.conf
# أضف أو أزل التعليق عن:
# net.ipv4.ip_forward=1

# تطبيق التغييرات
sudo sysctl -p

قواعد جدار الحماية

hljs bash
# مع UFW
sudo ufw allow 51820/udp
sudo ufw allow OpenSSH
sudo ufw enable

# مع iptables
sudo iptables -A INPUT -p udp --dport 51820 -j ACCEPT
sudo iptables -A FORWARD -i wg0 -j ACCEPT
sudo iptables -A FORWARD -o wg0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# حفظ القواعد بشكل دائم
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

تشغيل خدمة WireGuard

hljs bash
# تشغيل واجهة WireGuard
sudo wg-quick up wg0

# التشغيل التلقائي عند بدء النظام
sudo systemctl enable wg-quick@wg0

# فحص الحالة
sudo wg show

إعداد العميل

إعداد عميل Linux

hljs ini
# /etc/wireguard/wg0.conf — إعداد العميل

[Interface]
Address = 10.0.0.2/24
PrivateKey = المفتاح_الخاص_للعميل
DNS = 1.1.1.1

[Peer]
PublicKey = المفتاح_العام_للخادم
Endpoint = IP_الخادم:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

إعداد عميل Windows

  1. تنزيل وتثبيت WireGuard لـ Windows
  2. فتح التطبيق → "إضافة نفق" → "إضافة نفق فارغ"
  3. لصق الإعداد والنقر على "تفعيل"

إعداد عميل Android/iOS

hljs bash
# توليد رمز QR على الخادم
sudo apt install qrencode -y
qrencode -t ansiutf8 < /path/to/client.conf

إضافة عملاء جدد

hljs bash
# توليد مفاتيح العميل
wg genkey | tee /etc/wireguard/client3_private.key | wg pubkey > /etc/wireguard/client3_public.key

# إضافة للخادم (بدون إعادة تشغيل)
sudo wg set wg0 peer $(cat /etc/wireguard/client3_public.key) allowed-ips 10.0.0.4/32

# حفظ بشكل دائم
sudo wg-quick save wg0

استكشاف الأخطاء

hljs bash
# عرض سجلات WireGuard
sudo journalctl -u wg-quick@wg0 -f

# إحصائيات الاتصال
sudo wg show wg0

# فحص توجيه IP
cat /proc/sys/net/ipv4/ip_forward

# فحص قواعد جدار الحماية
sudo iptables -L -n -v
sudo iptables -t nat -L -n -v

بعد إنشاء اتصال WireGuard، يجب أن يكون حقل latest handshake في إخراج sudo wg show محدّثًا. إذا لم يكن هناك مصافحة، تحقق من IP/منفذ الخادم والمفاتيح وقواعد جدار الحماية.

الخلاصة

يوفر WireGuard حلًا VPN حديثًا وآمنًا. بإعداده البسيط وأدائه العالي، فهو مثالي للاستخدام الشخصي والشبكات المؤسسية على حد سواء.

الأسئلة الشائعة

ما المنفذ الذي يستخدمه WireGuard؟

يستخدم WireGuard منفذ UDP 51820 افتراضيًا. يمكنك تغييره — استبدل قيمة ListenPort في ملف الإعداد. لا تنسَ فتح نفس المنفذ في جدار الحماية.

ما الفرق بين WireGuard و OpenVPN؟

WireGuard أبسط بكثير (4000 سطر كود)، أسرع ويستخدم تشفيرًا حديثًا. OpenVPN أكثر نضجًا مع دعم أوسع للمنصات. يُنصح بـ WireGuard للإعدادات الجديدة.

كيف أوجّه كل حركة الإنترنت عبر VPN؟

استخدم AllowedIPs = 0.0.0.0/0, ::/0 في إعداد العميل. هذا يوجّه كل حركة IPv4 و IPv6 عبر نفق VPN. يجب تفعيل توجيه IP و NAT masquerade على الخادم.

كم عميلًا يمكن الاتصال؟

لا يوجد حد نظري لعدد العملاء في WireGuard. الحد العملي يعتمد على أجهزة الخادم. أضف كتلة [Peer] منفصلة لكل عميل وخصص عنوان IP فريدًا.

ماذا أفعل إذا انقطع اتصال WireGuard؟

تحقق من حالة الاتصال بـ 'sudo wg show'. إذا لم يكن حقل 'latest handshake' محدّثًا، فلا يوجد اتصال. تحقق من IP/منفذ الخادم والمفاتيح وقواعد جدار الحماية. أعد التشغيل بـ 'sudo wg-quick down wg0 && sudo wg-quick up wg0'.

مقالات ذات صلة

إعداد Fail2Ban: دليل حماية SSH من هجمات Brute-Force

احمِ خادمك من هجمات SSH Brute-Force باستخدام Fail2Ban. التثبيت، إعداد jail.local، جيلات Nginx/Apache، القائمة البيضاء للـ IP، مراقبة الحظر وتنبيهات البريد الإلكتروني.

13 دقيقة
fail2banbrute-forceأمان ssh

أمان شبكة Zero Trust: دليل الإعداد الأساسي

مبادئ أمان شبكة Zero Trust والتطبيق العملي: لا تثق أبدًا تحقق دائمًا، التجزئة الدقيقة، الوصول القائم على الهوية والتطبيق بأدوات Linux الموجودة.

14 دقيقة
zero trustأمان الشبكةتجزئة دقيقة
حركة الشبكةالداخل Gbpsالخارج Gbps