الشروحات · قراءة 4 دقيقة

كيفية إعداد WireGuard على Debian 13

مقدمة

‏WireGuard بروتوكول VPN سريع وحديث وقوي من الناحية التشفيرية، ومدمج مباشرة في نواة لينكس. وعلى خلاف البدائل الأثقل مثل OpenVPN أو IPSec، فإن WireGuard خفيف وسهل الإعداد ويقدم أداءً ممتازًا، ما يجعله الخيار الأمثل لتأمين حركة البيانات عبر خادم VPS الخاص بك لدى AVS ISP.

يتضمن Debian 13 «Trixie» (الصادر في 9 أغسطس 2025) دعمًا أصليًا لـ WireGuard في مستودعاته الافتراضية، فلا حاجة إلى backports ولا إلى مصادر خارجية.


المتطلبات

قبل أن تبدأ، تأكد من توفر ما يلي:

  • خادم VPS بنظام Debian 13 (Trixie) من AVS ISP
  • صلاحية root أو sudo على الخادم
  • جهاز محلي يعمل بوصفه عميل WireGuard (لينكس، ويندوز، macOS، أندرويد، iOS)
  • فتح منفذ UDP رقم 51820 في جدار الحماية أو مجموعة الأمان لخادمك لدى AVS ISP

الخطوة 1 — تحديث النظام

سجّل الدخول إلى الخادم عبر SSH وحدّث جميع الحزم:

apt update && apt upgrade -y

الخطوة 2 — تثبيت WireGuard

‏WireGuard متوفر في المستودعات الافتراضية لـ Debian 13:

apt install -y wireguard wireguard-tools iptables

تحقق من التثبيت:

wg --version

الخطوة 3 — توليد مفاتيح الخادم

اضبط umask صارمًا لحماية ملفات المفاتيح الخاصة، ثم ولّد زوج مفاتيح الخادم:

umask 077
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub

اعرض مفاتيحك واحفظها:

cat /etc/wireguard/server.key   # المفتاح الخاص بالخادم (احتفظ به سرًا)
cat /etc/wireguard/server.pub   # المفتاح العام للخادم (يُشارَك مع العملاء)

الخطوة 4 — توليد مفاتيح العميل

ولّد زوج مفاتيح لأول عميل مباشرة على الخادم:

wg genkey | tee /etc/wireguard/client.key | wg pubkey > /etc/wireguard/client.pub
cat /etc/wireguard/client.key   # المفتاح الخاص بالعميل
cat /etc/wireguard/client.pub   # المفتاح العام للعميل

الخطوة 5 — تحديد واجهة الشبكة

اعرف اسم واجهة الشبكة الرئيسية لخادمك (غالبًا eth0 أو enp1s0):

ip address show

دوّن اسم الواجهة، فستحتاج إليه في الخطوة التالية.


الخطوة 6 — إعداد خادم WireGuard

أنشئ ملف إعداد الخادم:

nano /etc/wireguard/wg0.conf

الصق ما يلي بعد استبدال القيم النائبة:

[Interface]
# عنوان VPN الخاص بالخادم
Address = 10.8.0.1/24

# منفذ UDP الذي يستمع عليه WireGuard
ListenPort = 51820

# الصق هنا المفتاح الخاص بالخادم
PrivateKey = <SERVER_PRIVATE_KEY>

# تفعيل توجيه IP و NAT عند تشغيل النفق
# استبدل eth0 بواجهة الشبكة الفعلية لديك (مثل enp1s0)
PostUp   = echo 1 > /proc/sys/net/ipv4/ip_forward; \
           iptables -A FORWARD -i wg0 -j ACCEPT; \
           iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = echo 0 > /proc/sys/net/ipv4/ip_forward; \
           iptables -D FORWARD -i wg0 -j ACCEPT; \
           iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# ── القرين (العميل) ────────────────────────────────────────
[Peer]
# الصق هنا المفتاح العام للعميل
PublicKey = <CLIENT_PUBLIC_KEY>

# عنوان VPN المخصص لهذا العميل
AllowedIPs = 10.8.0.2/32

احفظ الملف وأغلقه (Ctrl+O ثم Enter ثم Ctrl+X).


الخطوة 7 — جعل توجيه IP دائمًا

عدّل الملف /etc/sysctl.conf ليبقى توجيه IP فعّالًا بعد إعادة التشغيل:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

الخطوة 8 — تشغيل WireGuard وتفعيله عند الإقلاع

شغّل خدمة WireGuard وفعّلها عند الإقلاع:

systemctl start wg-quick@wg0
systemctl enable wg-quick@wg0

تأكد من أن الواجهة تعمل:

wg show
ip address show wg0

من المفترض أن ترى الواجهة wg0 بالعنوان 10.8.0.1.


الخطوة 9 — إعداد العميل

على جهاز العميل، أنشئ ملف إعداد WireGuard (مثل wg0.conf، أو استورده إلى تطبيق WireGuard):

[Interface]
# عنوان VPN الخاص بالعميل
Address = 10.8.0.2/32

# المفتاح الخاص بالعميل (المولَّد في الخطوة 4)
PrivateKey = <CLIENT_PRIVATE_KEY>

# اختياري: استخدام الخادم بوصفه محلل DNS
# DNS = 10.8.0.1

[Peer]
# المفتاح العام للخادم (من الخطوة 3)
PublicKey = <SERVER_PUBLIC_KEY>

# عنوان IP العام لخادمك لدى AVS ISP ومنفذ WireGuard
Endpoint = <YOUR_VPS_PUBLIC_IP>:51820

# توجيه كل حركة البيانات عبر VPN
# للنفق المجزأ (شبكة VPN الفرعية فقط) استخدم: 10.8.0.0/24
AllowedIPs = 0.0.0.0/0, ::/0

# إبقاء الاتصال حيًا عبر جدران الحماية التي تستخدم NAT
PersistentKeepalive = 25

شغّل النفق على العميل:

# عميل لينكس
wg-quick up wg0

على ويندوز / macOS / أندرويد / iOS، استورد ملف الإعداد أو رمز QR إلى تطبيق WireGuard الرسمي.


الخطوة 10 — فتح المنفذ في جدار الحماية

إذا كان على خادمك لدى AVS ISP جدار حماية محلي مثل ufw أو iptables، فاسمح بمنفذ UDP رقم 51820:

# باستخدام ufw
ufw allow 51820/udp
ufw reload

# مباشرة عبر iptables
iptables -A INPUT -p udp --dport 51820 -j ACCEPT

تأكد أيضًا من أن المنفذ مفتوح في لوحة تحكم AVS ISP ضمن إعدادات جدار الحماية أو مجموعة الأمان لخادمك.


الخطوة 11 — التحقق من الاتصال

على العميل، شغّل النفق واختبر الاتصال:

wg-quick up wg0
ping 10.8.0.1         # اختبار بوابة خادم VPN
curl https://ifconfig.me  # ينبغي أن يعيد عنوان IP العام لخادمك لدى AVS ISP

وعلى الخادم، تأكد من جلسات الأقران النشطة:

wg show

من المفترض أن ترى القرين مدرجًا مع طابع زمني حديث في latest handshake.


إضافة عملاء آخرين

لكل عميل إضافي، كرّر الخطوتين 4 و 9، ثم أضف كتلة [Peer] جديدة إلى الملف /etc/wireguard/wg0.conf على الخادم:

[Peer]
PublicKey  = <NEW_CLIENT_PUBLIC_KEY>
AllowedIPs = 10.8.0.3/32

أعد تحميل إعدادات WireGuard دون قطع الاتصالات القائمة:

wg addconf wg0 <(wg-quick strip wg0)
# أو أعد تشغيل الخدمة
systemctl restart wg-quick@wg0

أوامر مفيدة

الإجراء الأمر
عرض حالة النفق wg show
تشغيل النفق systemctl start wg-quick@wg0
إيقاف النفق systemctl stop wg-quick@wg0
إعادة تشغيل النفق systemctl restart wg-quick@wg0
عرض سجلات WireGuard journalctl -u wg-quick@wg0 -f
فحص وحدة النواة lsmod | grep wireguard

نصائح أمنية

  • لا تشارك مفاتيحك الخاصة أبدًا. لا يُتبادل بين الأقران سوى المفاتيح العامة.
  • قيّد الوصول عبر SSH بعنوان IP محدد، أو اسمح بالمصادقة بالمفاتيح فقط.
  • فكّر في تغيير منفذ WireGuard الافتراضي (51820) إلى منفذ UDP غير قياسي للتقليل من ضجيج ماسحات المنافذ.
  • بدّل أزواج المفاتيح دوريًا في عمليات النشر الطويلة الأمد.
  • استخدم PersistentKeepalive = 25 على العملاء خلف NAT لتفادي انقطاع الجلسة.

دليل مكتوب لعملاء خوادم VPS من AVS ISP الذين يستخدمون Debian 13 «Trixie». ‏WireGuard® علامة تجارية مسجلة باسم Jason A. Donenfeld.

العودة إلى الشروحات