دليل عملي
كيفية إعداد خادم VPN باستخدام WireGuard على Ubuntu عبر سكربت
ابدأ بخادم Ubuntu جديد وانتهِ باتصال VPN شخصي. يشرح الدليل إعداد الخادم وملفات الأجهزة والتحقق من مرور اتصال الإنترنت عبر النفق.
تم اختبار إعداد الخادم والاتصال من حاوية Linux وسرعة Windows. اختبارات macOS وUbuntu Desktop وiPhone وAndroid على الأجهزة نفسها لم تكتمل بعد.
1. اختر الخادم وجهّز الوصول
يشرح الدليل التثبيت من الصفر على VPS بنظام Ubuntu 26.04 LTS. تحتاج إلى IPv4 عام وكلمة مرور root أو مفتاح SSH. اختر المزوّد والمنطقة المناسبين لك.
نستخدم Vultr Shared CPU بموارد: 1 vCPU وذاكرة 1 GB وSSD بسعة 25 GB وحصة نقل شهرية 1 TB.
اختر IPv4 للاتصال من شبكات لا تدعم IPv6. الخادم الذي يملك IPv6 فقط يحتاج ترتيبات إضافية للوصول إلى مواقع IPv4 فقط، ولا يغطيه هذا الدليل.
2. تحقق من تسجيل الدخول عبر SSH
Windows: ابحث عن PowerShell في Start وافتحه. Mac: اضغط Command+Space واكتب Terminal ثم Enter. Ubuntu Desktop: اضغط Ctrl+Alt+T.
استبدل SERVER_IP في جميع الأوامر بعنوان IPv4 العام من لوحة الخادم. مثلًا ssh root@SERVER_IP يتصل بحساب root.
اختر أمر كلمة المرور أو أمر المفتاح إذا كان لديك مفتاح SSH. استبدل مسار المفتاح النموذجي بمسارك.
قد يسأل SSH أول مرة هل تثق بالخادم. تحقق أن العنوان يخص VPS الذي أنشأته، ثم اكتب yes واضغط Enter. أدخل كلمة مرور root عند الطلب؛ لن تظهر الأحرف أثناء الكتابة.
بعد الدخول، شغّل أمر الخادم أدناه للتحقق من Ubuntu، ثم exit للعودة إلى حاسوبك.
ssh root@SERVER_IPssh -i ~/.ssh/id_ed25519 root@SERVER_IPcat /etc/os-release
exitإذا لم يُعثر على الأمر ssh
في Windows، افتح PowerShell بخيار Run as administrator ونفّذ الأمر أدناه. بعد التثبيت أغلقه وافتح PowerShell عاديًا. في Ubuntu استخدم أمر Ubuntu. يتضمن macOS عميل SSH.
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0انسخ الأمر كما هو. OpenSSH.Client~~~~0.0.1.0 معرّف مكوّن Windows؛ لا تغيّر علامات التلدة أو الأرقام.
sudo apt update
sudo apt install openssh-client3. نزّل حزمة التثبيت وافحصها
نزّل ZIP وفك ضغطه. احتفظ بالسكربتات الخمسة معًا في مجلد wireguard-guide. اتبع مسار Windows أو Mac أو Ubuntu فقط حسب حاسوبك.
يثبّت السكربت WireGuard على VPS وينشئ ملف اتصال لجهازك. قد تُطلب كلمة مرور الخادم عدة مرات.
4a. إعداد الخادم من Windows
افتح مجلد wireguard-guide المستخرج في File Explorer. اكتب powershell في شريط العنوان واضغط Enter لفتحه في المجلد الصحيح.
نفّذ أحد الأمرين. استبدل SERVER_IP بعنوان VPS، واستبدل مسار المفتاح إن كنت تستخدمه.
windows بعد -Device هو اسم ملف الجهاز. لحاسوب ثانٍ اختر اسمًا مختلفًا مثل laptop. لكل جهاز ملف مستقل، لتتمكن من إلغاء وصوله دون قطع الأجهزة الأخرى.
بعد الانتهاء، أدخل %USERPROFILE%\WireGuard في شريط عنوان File Explorer. افتح المجلد المسمى بالخادم والجهاز للوصول إلى windows.conf. يعرض السكربت المسار الكامل أيضًا. تفعيل VPN في الخطوة 5.
.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows.\Connect-WireGuardServer.ps1 -Server SERVER_IP -Device windows -IdentityFile "$HOME\.ssh\id_ed25519"إذا منع PowerShell السكربت
إذا قالت الرسالة إن الملف المنزّل غير موقّع رقميًا، نفّذ هذا الأمر في المجلد نفسه ثم أعد أمر الإعداد.
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1إذا كان تشغيل السكربتات معطّلًا، نفّذ الأوامر ووافق على الطلب ثم أعد المحاولة. ينتهي هذا التغيير عند إغلاق نافذة PowerShell.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Unblock-File -LiteralPath .\Connect-WireGuardServer.ps1إذا بقي خطأ السياسة، توقّف واحتفظ بالرسالة للتشخيص.
4b. إعداد الخادم من Mac
افتح Terminal واكتب cd ثم مسافة. اسحب مجلد wireguard-guide من Finder إلى Terminal واضغط Enter.
نفّذ أحد الأمرين مع bash في البداية. استبدل SERVER_IP ومسار المفتاح إن استُخدم. mac اسم الملف؛ استخدم اسمًا آخر مثل macbook لجهاز Mac ثانٍ.
بعد الانتهاء، اضغط Command+Shift+H في Finder لفتح مجلدك الشخصي. افتح WireGuard ثم مجلد الخادم والجهاز؛ ستجد mac.conf. يظهر المسار الكامل في مخرجات السكربت أيضًا.
bash ./connect-wireguard-server.sh SERVER_IP macbash ./connect-wireguard-server.sh SERVER_IP mac 22 ~/.ssh/id_ed255194c. إعداد الخادم من Ubuntu Desktop
اضغط Ctrl+Alt+T. اكتب cd ثم مسافة، واسحب مجلد wireguard-guide إلى Terminal ثم اضغط Enter.
استبدل SERVER_IP وشغّل أحد الأمرين. ubuntu اسم ملف الجهاز. لا يحتاج هذا المشغّل أو تسجيل دخول SSH إلى sudo.
افتح Home في مدير الملفات، ثم WireGuard ومجلد الخادم والجهاز. الملف ubuntu.conf موجود في ~/WireGuard/SERVER_IP-ubuntu/ubuntu.conf مع عنوان خادمك الحقيقي. سنستخدم NetworkManager للاتصال.
bash ./connect-wireguard-server.sh SERVER_IP ubuntubash ./connect-wireguard-server.sh SERVER_IP ubuntu 22 ~/.ssh/id_ed255195a. توصيل Windows أو macOS
ثبّت تطبيق WireGuard الرسمي لنظامك. استورد ملف .conf الناتج ووافق على إذن VPN ثم فعّل النفق. قد تختلف تسمية الاستيراد باختلاف إصدار التطبيق.
يوجّه الملف IPv4 إلى النفق ويتضمن مسارًا افتراضيًا لـIPv6 لمنع تجاوزه للـVPN. لا يوفر الخادم اتصال إنترنت IPv6. تحقّق من سلوك جهازك بالاختبارات أدناه.
يحتوي الملف على مفتاح خاص. من يملك نسخة يمكنه محاولة استخدام هوية VPN لهذا الجهاز. لا تضعه في طلبات الدعم أو مولدات QR على الإنترنت، ولا تشاركه بين الأجهزة.
5b. توصيل Ubuntu Desktop عبر NetworkManager
يستورد NetworkManager الملف ويدير DNS والمسارات دون الاعتماد على نسخة واجهة الاستيراد الرسومية. شغّل الأوامر على حاسوبك لا داخل SSH إلى VPS. تأكد أولًا من توفر nmcli وتشغيل NetworkManager.
يُنشئ ubuntu.conf اتصالًا باسم ubuntu. إذا كان الاسم موجودًا فاختر اسم جهاز آخر وعدّل الأوامر. استورد مرة واحدة؛ بعد ذلك استخدم up وdown. الإعداد أدناه يعطّل الاتصال التلقائي عند بدء الحاسوب.
تعطي إعدادات DNS الأولوية لهذا الاتصال لكل الأسماء أثناء تشغيله. قد يستخدم المتصفح DNS آمنًا مختلفًا. نفّذ فحوص IP وDNS وIPv6 في الخطوة 7. هذه الطريقة لم تُختبر بعد على Ubuntu Desktop فعلي؛ اختبار الحاوية لا يثبت سلوك DNS وIPv6 على سطح المكتب.
لا تُفعّل الملف نفسه أيضًا عبر wg-quick، فقد تتعارض المسارات. يمكنك الفحص وقطع الاتصال عبر nmcli ولو اختلف عرضه في الواجهة.
nmcli --version
systemctl is-active NetworkManagersudo nmcli connection import type wireguard file "$HOME/WireGuard/SERVER_IP-ubuntu/ubuntu.conf"
sudo nmcli connection modify ubuntu connection.autoconnect no ipv4.dns-priority -50 ipv4.dns-search "~."sudo nmcli connection up ubuntu
nmcli connection show --activesudo nmcli connection down ubuntu6. توصيل iPhone أو Android برمز QR
ثبّت تطبيق WireGuard الرسمي من رابط App Store أو Google Play أدناه.
من حاسوبك، ادخل مجددًا إلى VPS باستخدام ssh root@SERVER_IP أو أمر مفتاح SSH. أمر الهاتف أدناه ينشئ ملفًا ويعرض رمز QR.
في WireGuard على الهاتف، اختر إضافة نفق بمسح QR. امسح الرمز المعروض على الحاسوب وسمّ الاتصال ووافق على إذن VPN ثم فعّله.
استخدم ملفًا منفصلًا لكل هاتف. لا تشارك QR فهو يمنح وصولًا إلى VPN. إذا تقطّعت أسطر الرمز، كبّر نافذة Terminal واعرضه مجددًا.
python3 /root/internetspeed-wireguard/manage-client.py add iphone
qrencode -t ANSIUTF8 < /etc/wireguard/clients/iphone.confpython3 /root/internetspeed-wireguard/manage-client.py add android
qrencode -t ANSIUTF8 < /etc/wireguard/clients/android.conf7. تحقق من مرور الإنترنت عبر VPN
قبل تشغيل VPN، افتح My IP عبر الرابط أدناه وسجّل عنوانك. فعّل WireGuard وحدّث My IP وقارن النتيجة بعنوان IPv4 العام للخادم.
إذا فُتحت الصفحة وعرضت عنوان VPS، فاتصال المتصفح يمر عبر VPN. إذا بقي العنوان القديم، راجع قسم حل المشكلات.
هذا يثبت اتصال المتصفح، وليس كل التطبيقات أو الحماية عند انقطاع VPN. الفحوص الإضافية أدناه تخص DNS وIPv6.
اختياري: فحص IPv6 وDNS
IPv6: افتح Test IPv6 قبل الاتصال وسجّل هل يظهر عنوان IPv6. فعّل VPN وكرّر الاختبار. يُفترض ألا يعمل إنترنت IPv6 في هذا الإعداد. ظهور عنوان IPv6 المعتاد يعني أنه يتجاوز النفق. إن لم يكن IPv6 متاحًا أصلًا، فلا يكشف الاختبار السلوك على شبكة تدعمه.
DNS: مع تشغيل VPN، نفّذ Standard test في DNS Leak Test. يستخدم الملف Cloudflare DNS. إذا ظهر مزوّد الإنترنت المنزلي، افحص DNS الجهاز. قد يأتي مزوّد آخر من Secure DNS في المتصفح؛ يستدعي ذلك التحقيق ولا يثبت تسربًا تلقائيًا. لا تضمن هذه النتائج حماية كل التطبيقات.
8. حل مشكلات الاتصال
إذا عرض My IP عنوانك المعتاد، تحقق من تشغيل الاتصال المستورد في WireGuard. أوقفه وشغّله مرة ثم حدّث الصفحة.
إذا توقفت المواقع مع VPN، أوقفه وجرب الصفحة نفسها. إن فشلت أيضًا بدونه، أصلح الإنترنت العادي أولًا. إن نجحت بدونه، نفّذ الفحوص أدناه.
للمقارنة، صِل الحاسوب بنقطة اتصال الهاتف وجرب VPN. على الهاتف عطّل Wi-Fi وجرب بيانات الجوال. هذه مقارنة مؤقتة وقد تُحتسب رسوم بيانات. نجاحه على الجوال فقط يربط المشكلة باتصال Wi-Fi لكنه لا يحدد السبب بدقة.
إذا توقف الإعداد بخطأ، احتفظ بآخر رسالة. بعد إصلاح السبب، أعد الأمر بنفس اسم الجهاز؛ يحتفظ السكربت بالملف الموجود.
تحقق من تشغيل خادم VPN
ادخل عبر SSH كما في الخطوة 2 ونفّذ الأمر. النتيجة المتوقعة active. عند inactive أو failed أعد التشغيل بالأمر ثم افحص مجددًا. إن لم تصبح active، احتفظ بالخطأ.
systemctl is-active wg-quick@wg0systemctl restart wg-quick@wg0
systemctl is-active wg-quick@wg0تقطع إعادة التشغيل اتصال الأجهزة لفترة قصيرة.
تحقق من وصول الجهاز إلى الخادم
فعّل VPN وافتح My IP ثم نفّذ wg show على الخادم. ابحث عن latest handshake تحت الجهاز. مثلًا 10 seconds ago يعني إنشاء اتصال مشفر مؤخرًا. غياب السطر يعني عدم تسجيل اتصال ناجح لهذا الجهاز بعد.
إذا لم يظهر اتصال حديث، افحص Endpoint في الملف: عنوان VPS متبوعًا بـ:51820. افتح Firewall أو Security groups في لوحة VPS. إذا وُجد جدار ناري مرتبط به، اسمح بوارد UDP على المنفذ 51820. تختلف الشاشة حسب المزوّد؛ السكربت يضبط جدار Ubuntu بالفعل.
إذا ظهر handshake حديث والمواقع لا تعمل، سجّل النتيجة وخطأ التطبيق أو سجله. تغيير إعدادات متقدمة عشوائيًا قد يصعّب التشخيص.
wg show9. ما السرعة المتوقعة؟
في اختبار Windows حققنا تنزيلًا نحو 350–400 Mbps ورفعًا 450–500 Mbps بنفس طريقة اختبارات VPN الأخرى في المشروع. المسار: المستخدم في سان دييغو ← خادم VPN في منطقة خليج سان فرانسيسكو ← خادم القياس في سياتل.
الخادم Vultr Shared CPU vc2-1c-1gb: 1 vCPU وRAM 1 GB وSSD 25 GB وترافيك شهري 1 TB؛ بسعر 5 دولارات أمريكية شهريًا عند إنشائه.
هذه نتائج هذا الإعداد. تعتمد سرعتك على اتصالك والخادم والموقع. لم نقارن بعد باقات VPS أو مزوّدين آخرين.
10. التكاليف والخصوصية وحدود المزوّد
يمنحك VPN الخاص التحكم بالإعداد وموقع خروج واحد. أنت مسؤول عن التحديثات والفواتير ووصول الأجهزة والاستعادة. لا يجعلك مجهولًا لدى مزوّد الاستضافة ولا يغني عن HTTPS.
التصفح والفيديو والتنزيل والرفع واختبارات السرعة تستهلك حصة VPS. راقب المتبقي في لوحة الاستضافة. قد يؤدي التجاوز إلى رسوم أو قيود حسب الباقة.
قبل P2P، راجع شروط الاستخدام الحالية والقانون المطبق. البروتوكول وحقوق المحتوى مسألتان منفصلتان. نزّل وشارك فقط ما يحق لك؛ لا تسمح كل الاستضافات بكل استخدامات P2P.
قد تواجه عناوين مراكز البيانات CAPTCHA أو قيود خدمات وبث. WireGuard العادي لا يضمن الوصول من كل شبكة مفلترة. VPS واحد يعني نقطة تعطل واحدة دون مجموعة مواقع وخوادم بديلة كالمزوّدين الكبار.
11. إضافة أجهزة وإلغاء الوصول وصيانة الخادم
خصص ملفًا لكل جهاز. للهاتف المفقود، احذف peer باسمه من الخادم ونسخ الملف الباقية، ثم أنشئ ملفًا بديلًا. حذف ملف الهاتف وحده لا يلغي الوصول في الخادم.
حافظ على تحديثات أمان Ubuntu وافحص الحاجة لإعادة التشغيل. أعد التشغيل بوقت مناسب وتحقق من عودة VPN. احمِ حساب الاستضافة وSSH؛ غيّر مصادقة SSH كخطوة منفصلة مع وسيلة دخول بديلة مجرّبة.
يوقف سكربت الإزالة هذا VPN ويحذف إعداداته وقواعد الجدار التي يديرها. يبقي SSH وUFW والحزم. يبقى تمرير الحزم نشطًا حتى تطبيق سياسة النظام عند إعادة التشغيل. إزالة VPN لا تلغي فاتورة VPS؛ احفظ المطلوب ثم احذف الخادم لدى المزوّد عندما لا تحتاجه.
python3 /root/internetspeed-wireguard/manage-client.py remove iphoneapt update
apt list --upgradable
test ! -f /var/run/reboot-required || cat /var/run/reboot-requiredbash /root/internetspeed-wireguard/remove-server.sh --confirm