إعداد WireGuard VPN على سيرفر Ubuntu من الصفر

دليل شامل لإعداد سيرفر VPN خاص باستخدام WireGuard على Ubuntu. تعلم كيفية حماية اتصالك وإنشاء شبكة آمنة مع دليل خطوة بخطوة.

في هذا المقال
  1. تجهيز الخادم (Cloud Server)
  2. تحديث النظام وتثبيت WireGuard
  3. إنشاء مفاتيح WireGuard (Private & Public)
  4. ضبط صلاحيات المفاتيح
  5. معرفة واجهة الشبكة للسيرفر
  6. إنشاء وتعديل ملف الإعداد
  7. محتوى wg0.conf (مع الشرح)
  8. حفظ الملف والخروج من Nano
  9. إعداد العميل (Client): تثبيت تطبيق WireGuard
  10. إعداد ملف العميل
  11. إضافة العميل على السيرفر
  12. تشغيل WireGuard تلقائيًا عند الإقلاع
  13. التحقق من الاتصال

في هذا الشرح بنغطي خطوة بخطوة طريقة إعداد شبكة VPN باستخدام WireGuard على خادم Ubuntu. مناسب لأي شخص حاب يحمي اتصاله أو يربط عدة أجهزة بشبكة خاصة وآمنة.

تجهيز الخادم (Cloud Server)

أول شيء نحتاج خادم سحابي. إذا ما عندك واحد، تقدر تتبع هذا الدليل لإنشاء سيرفر على AWS:

شرح إنشاء خادم AWS

يهمنا ضروري جدا تفعيل خطوة 7. إعداد قواعد الدخول (Inbound Rules) في الدليل السابق

بعد ما تدخل على الخادم عن طريق SSH، نبدأ بالتجهيزات.

تحديث النظام وتثبيت WireGuard

Bash
# تحديث النظام وتثبيت WireGuard
sudo apt update && sudo apt upgrade -y
sudo apt install wireguard -y
  • يحدث النظام.
  • يثبت برنامج WireGuard.

إنشاء مفاتيح WireGuard (Private & Public)

Bash
# إنشاء مفاتيح WireGuard (Private & Public)
sudo bash -c "wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey"

🔑 هذا الأمر ينشئ مفتاح خاص (privatekey) ومفتاح عام (publickey).

ضبط صلاحيات المفاتيح

Bash
# ضبط صلاحيات المفاتيح
sudo chmod 600 /etc/wireguard/privatekey
sudo ls -l /etc/wireguard

🔒 نحمي المفتاح الخاص من الوصول غير المصرح به.

معرفة واجهة الشبكة للسيرفر

Bash
# معرفة واجهة الشبكة للسيرفر
ip a

ابحث عن الواجهة الحقيقية (غير lo) اللي فيها عنوان IP مثل:

Output
2: eth0: ...
    inet 192.168.1.5/24 ...

📌 في هذا المثال، اسم الواجهة هو eth0.

إنشاء وتعديل ملف الإعداد

Bash
# إنشاء وتعديل ملف الإعداد
sudo nano /etc/wireguard/wg0.conf

محتوى wg0.conf (مع الشرح)

INI
# محتوى wg0.conf
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = [الصق هنا المفتاح الخاص بدون مسافات]
  • غير eth0 لاسم واجهتك اللي طلع من الخطوة 5.
  • للحصول على المفتاح الخاص: اخرج من المحرر Ctrl + X ثم نفذ الأمر التالي ونسخ المفتاح:
Bash
# الحصول على المفتاح الخاص
sudo cat /etc/wireguard/privatekey

حفظ الملف والخروج من Nano

  • للحفظ: Ctrl + O ثم Enter
  • للخروج: Ctrl + X

إعداد العميل (Client): تثبيت تطبيق WireGuard

إعداد ملف العميل

داخل التطبيق:

  1. اضغط على + واختر Create from scratch.
  2. اختر اسم مناسب.
  3. اضغط Generate keypair.
  4. بيعطيك مفتاح خاص وآخر عام للعميل.
  5. في Address اكتب: 10.0.0.2/24
  6. في DNS اكتب: 1.1.1.1
  7. أضف peer جديد:

Peer:

  • Public key: الصق المفتاح العام اللي حصلته من السيرفر. تقدر تحصله عن طريق الامر التالي:
Bash
# الحصول على المفتاح العام
sudo cat /etc/wireguard/publickey
  • Endpoint: عنوان السيرفر مع البورت، مثل:
Output
54.67.153.151:51820

إضافة العميل على السيرفر

Bash
# إضافة العميل على السيرفر
sudo wg set wg0 peer [public_key_client] allowed-ips 10.0.0.2/32
sudo wg-quick save wg0

استبدل [public_key_client] بالمفتاح العام للعميل (المفتاح اللذي انشائته في تطبيق الجوال).

تشغيل WireGuard تلقائيًا عند الإقلاع

Bash
# تشغيل WireGuard تلقائيًا عند الإقلاع
sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0

التحقق من الاتصال

Bash
# التحقق من الاتصال
sudo wg show

إذا شفت المفاتيح والبيانات، معناته الاتصال شغال تمام.