إعداد WireGuard VPN على سيرفر Ubuntu من الصفر
دليل شامل لإعداد سيرفر VPN خاص باستخدام WireGuard على Ubuntu. تعلم كيفية حماية اتصالك وإنشاء شبكة آمنة مع دليل خطوة بخطوة.
- الفكرة الأساسية
- تعريف
- متى يُستخدم
- تنبيه
في هذا المقال
- تجهيز الخادم (Cloud Server)
- تحديث النظام وتثبيت WireGuard
- إنشاء مفاتيح WireGuard (Private & Public)
- ضبط صلاحيات المفاتيح
- معرفة واجهة الشبكة للسيرفر
- إنشاء وتعديل ملف الإعداد
- محتوى wg0.conf (مع الشرح)
- حفظ الملف والخروج من Nano
- إعداد العميل (Client): تثبيت تطبيق WireGuard
- إعداد ملف العميل
- إضافة العميل على السيرفر
- تشغيل WireGuard تلقائيًا عند الإقلاع
- التحقق من الاتصال
في هذا الشرح بنغطي خطوة بخطوة طريقة إعداد شبكة VPN باستخدام WireGuard على خادم Ubuntu. مناسب لأي شخص حاب يحمي اتصاله أو يربط عدة أجهزة بشبكة خاصة وآمنة.
تجهيز الخادم (Cloud Server)
أول شيء نحتاج خادم سحابي. إذا ما عندك واحد، تقدر تتبع هذا الدليل لإنشاء سيرفر على AWS:
يهمنا ضروري جدا تفعيل خطوة 7. إعداد قواعد الدخول (Inbound Rules) في الدليل السابق
بعد ما تدخل على الخادم عن طريق SSH، نبدأ بالتجهيزات.
تحديث النظام وتثبيت WireGuard
# تحديث النظام وتثبيت WireGuard
sudo apt update && sudo apt upgrade -y
sudo apt install wireguard -y
- يحدث النظام.
- يثبت برنامج WireGuard.
إنشاء مفاتيح WireGuard (Private & Public)
# إنشاء مفاتيح WireGuard (Private & Public)
sudo bash -c "wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey"
🔑 هذا الأمر ينشئ مفتاح خاص (privatekey) ومفتاح عام (publickey).
ضبط صلاحيات المفاتيح
# ضبط صلاحيات المفاتيح
sudo chmod 600 /etc/wireguard/privatekey
sudo ls -l /etc/wireguard
🔒 نحمي المفتاح الخاص من الوصول غير المصرح به.
معرفة واجهة الشبكة للسيرفر
# معرفة واجهة الشبكة للسيرفر
ip a
ابحث عن الواجهة الحقيقية (غير lo) اللي فيها عنوان IP مثل:
2: eth0: ...
inet 192.168.1.5/24 ...
📌 في هذا المثال، اسم الواجهة هو eth0.
إنشاء وتعديل ملف الإعداد
# إنشاء وتعديل ملف الإعداد
sudo nano /etc/wireguard/wg0.conf
محتوى wg0.conf (مع الشرح)
# محتوى 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ثم نفذ الأمر التالي ونسخ المفتاح:
# الحصول على المفتاح الخاص
sudo cat /etc/wireguard/privatekey
حفظ الملف والخروج من Nano
- للحفظ:
Ctrl + Oثم Enter - للخروج:
Ctrl + X
إعداد العميل (Client): تثبيت تطبيق WireGuard
- Android: 🔗 WireGuard من Google Play
- iOS: 🔗 WireGuard من App Store
إعداد ملف العميل
داخل التطبيق:
- اضغط على
+واختر Create from scratch. - اختر اسم مناسب.
- اضغط Generate keypair.
- بيعطيك مفتاح خاص وآخر عام للعميل.
- في Address اكتب:
10.0.0.2/24 - في DNS اكتب:
1.1.1.1 - أضف peer جديد:
Peer:
- Public key: الصق المفتاح العام اللي حصلته من السيرفر. تقدر تحصله عن طريق الامر التالي:
# الحصول على المفتاح العام
sudo cat /etc/wireguard/publickey
- Endpoint: عنوان السيرفر مع البورت، مثل:
54.67.153.151:51820
إضافة العميل على السيرفر
# إضافة العميل على السيرفر
sudo wg set wg0 peer [public_key_client] allowed-ips 10.0.0.2/32
sudo wg-quick save wg0
استبدل [public_key_client] بالمفتاح العام للعميل (المفتاح اللذي انشائته في تطبيق الجوال).
تشغيل WireGuard تلقائيًا عند الإقلاع
# تشغيل WireGuard تلقائيًا عند الإقلاع
sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0
التحقق من الاتصال
# التحقق من الاتصال
sudo wg show
إذا شفت المفاتيح والبيانات، معناته الاتصال شغال تمام.