في هذا الشرح بنغطي خطوة بخطوة طريقة إعداد شبكة VPN باستخدام WireGuard على خادم Ubuntu. مناسب لأي شخص حاب يحمي اتصاله أو يربط عدة أجهزة بشبكة خاصة وآمنة.
1️⃣ تجهيز الخادم (Cloud Server)
أول شيء نحتاج خادم سحابي. إذا ما عندك واحد، تقدر تتبع هذا الدليل لإنشاء سيرفر على AWS:
شرح إنشاء خادم AWSيهمنا ضروري جدا تفعيل خطوة 7. إعداد قواعد الدخول (Inbound Rules) في الدليل السابق
بعد ما تدخل على الخادم عن طريق SSH، نبدأ بالتجهيزات.
2️⃣ تحديث النظام وتثبيت WireGuard
sudo apt update && sudo apt upgrade -y
sudo apt install wireguard -y
- يحدث النظام.
- يثبت برنامج WireGuard.
3️⃣ إنشاء مفاتيح WireGuard (Private & Public)
sudo bash -c "wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey"
🔑 هذا الأمر ينشئ مفتاح خاص (privatekey) ومفتاح عام (publickey).
bash -c؟عشان نقدر ننفذ أمر فيه بايب
| بصلاحيات sudo.
4️⃣ ضبط صلاحيات المفاتيح
sudo chmod 600 /etc/wireguard/privatekey
sudo ls -l /etc/wireguard
🔒 نحمي المفتاح الخاص من الوصول غير المصرح به.
5️⃣ معرفة واجهة الشبكة للسيرفر
ip a
ابحث عن الواجهة الحقيقية (غير lo) اللي فيها عنوان IP مثل:
2: eth0: ...
inet 192.168.1.5/24 ...
📌 في هذا المثال، اسم الواجهة هو eth0.
6️⃣ إنشاء وتعديل ملف الإعداد
sudo nano /etc/wireguard/wg0.conf
7️⃣ محتوى 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 = [Paste the private key here without spaces]
- غير
eth0لاسم واجهتك اللي طلع من الخطوة 5. - للحصول على المفتاح الخاص: اخرج من المحرر
Ctrl + Xثم نفذ الأمر التالي ونسخ المفتاح:
sudo cat /etc/wireguard/privatekey
8️⃣ حفظ الملف والخروج من Nano
- للحفظ:
Ctrl + Oثم Enter - للخروج:
Ctrl + X
📱 إعداد العميل (Client)
9️⃣ تثبيت تطبيق 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
1️⃣1️⃣ إضافة العميل على السيرفر
sudo wg set wg0 peer [public_key_client] allowed-ips 10.0.0.2/32
sudo wg-quick save wg0
استبدل [public_key_client] بالمفتاح العام للعميل(المفتاح اللذي انشائته في تطبيق الجوال).
1️⃣2️⃣ تشغيل WireGuard تلقائيًا عند الإقلاع
sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0
1️⃣3️⃣ التحقق من الاتصال
sudo wg show
إذا شفت المفاتيح والبيانات، معناته الاتصال شغال تمام.