نبذة عن Wireguard
WireGuard شبكة VPN خفيفة مدمجة في نواة لينكس، تعتمد على المفاتيح العامة وعلى ملف إعداد من بضعة أسطر. شيفرته قصيرة، ولذلك يسهل تدقيقها مقارنة ببروتوكولات VPN القديمة، ويبدأ النفق بالعمل بشكل شبه فوري. يستخدمه المطورون والفرق الصغيرة التي تريد التحكم في نقطة الخروج الخاصة بها إلى الإنترنت.
عند تسليم الـ VPS يكون الحزمة wireguard مثبّتة، والواجهة wg0 مضبوطة ومشغّلة عبر wg-quick@wg0. يستمع الخادم على المنفذ 51820 بروتوكول UDP، ضمن الشبكة الخاصة 10.8.0.0/24 (عنوان الخادم 10.8.0.1). تعمل إعادة توجيه IPv4 وخاصية NAT (masquerade) كي تخرج حركة عملائك عبر العنوان العام للخادم.
أُنشئ عميل أول مسبقًا، وله مفتاح مشترك مسبقًا (pre-shared key) إلى جانب المفاتيح المعتادة. تجد إعداده في /root/wg-client.conf، ورمز QR الخاص بتطبيق الجوال في /root/wg-client-qr.txt. كل ما عليك هو استيراده.
ما يمكنك فعله مع Wireguard
نفق كامل مُعدّ مسبقًا
يستخدم العميل المُنشأ القيمة AllowedIPs = 0.0.0.0/0، فتمر كل حركة IPv4 عبر الـ VPS. وخادم DNS الخاص بالعميل مضبوط على 1.1.1.1.
ملف إعداد العميل ورمز QR
يمكن استيراد الملف /root/wg-client.conf كما هو في تطبيقات WireGuard. أما رمز QR في /root/wg-client-qr.txt فيظهر في الطرفية ليمسحه تطبيق الجوال.
مفتاح مشترك مسبقًا لكل نظير
يُولَّد مفتاح بالأمر wg genpsk ويُضاف إلى تبادل المفاتيح العامة، مما يقوّي حماية الاتصال. وتُنشأ الملفات الحساسة بصلاحيات 600.
تشغيل تلقائي عند الإقلاع
الخدمة wg-quick@wg0 مفعّلة عبر systemd، فيعود النفق إلى العمل وحده بعد إعادة تشغيل الخادم.
NAT وإعادة التوجيه جاهزان
إعادة توجيه 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). في تبويب «التطبيقات» من نموذج الطلب، حدّد WireGuard.
- 2
اتصل بالخادم واحصل على العميل
بعد تسليم الخادم، افتح جلسة SSH بالبيانات التي وصلتك. تحقق من أن النفق يعمل، ثم اعرض رمز QR أو انسخ ملف الإعداد إلى جهازك.
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 بتطبيق WireGuard على الجوال، أو استورد الملف wg-client.conf في تطبيق سطح المكتب. وعلى لينكس يكفي أمر واحد، ثم تأكد من حدوث handshake.
Bashsudo wg-quick up ./wg-client.conf sudo wg show - 4
أمّن الخادم للاستخدام الفعلي
تأكد من أن المنفذ UDP 51820 مفتوح، وقلّل المنافذ الأخرى المكشوفة. إن فضّلت اسمًا على عنوان IP، فاستبدل سطر Endpoint في ملف العميل بـ YOUR_DOMAIN:51820 بعد إنشاء سجل DNS. واحفظ نسخة احتياطية من /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 بالأمر 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 لهذا الإعداد، ويمكن عرضه بالأمر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
بعد ذلك أضف في /etc/wireguard/wg0.conf محتوى client2.pub وclient2.psk مع AllowedIPs = 10.8.0.3/32، ثم أعد التحميل دون قطع الأنفاق القائمة:
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. ولاستخدام محلّل آخر، عدّل السطر DNS في ملف العميل. تعامل مع /root/wg-client.conf كما تتعامل مع كلمة مرور، فهو يحتوي على المفتاح الخاص بالعميل. وبعد الاستيراد احذف النسخ التي لا حاجة لها.
لمزيد من الأدلة حول إدارة خوادم لينكس، راجع الدروس التعليمية أو صفحة خوادم VPS لينكس.