شغّل VPN خاص بك على VPS خارجي
خدمات VPN التجارية تطلب منك الثقة بسياسة عدم الاحتفاظ بالسجلات التي كتبها قسم التسويق لديها. خادم VPS الخاص بك لا يسجّل شيئًا سوى ما تقوم بتهيئته بنفسك. إليك الإعداد الكامل لـ WireGuard — وقائمة صريحة بالمقايضات.
لماذا الاستضافة الذاتية تتفوق على VPN التجاري
إن "عدم الاحتفاظ بالسجلات" في VPN التجاري هو سياسة. أما عدم الاحتفاظ بالسجلات في خادمك الخاص فهو بنية. هذا الفرق أهم من أي شارة تدقيق:
- مزود VPN يرى كل شيء بطبيعته. حركة مرور آلاف المستخدمين تنتهي على خوادم تسيطر عليها الشركة بالكامل. أمر مختوم بالإضافة إلى تغيير صامت في سياسة التسجيل لا يمكنك رؤيته — وقد حدث هذا من قبل، لدى مزودين سمعت بهم.
- على خادمك الخاص، تتحكم في البنية بأكملها. sshd الخاص بك، وقرصك، وإعداد WireGuard الخاص بك. نحن لا نشغّل أي شيء داخل جهازك الافتراضي ولا نحتفظ بسجلات نشاط أو اتصال على مستوى الشبكة. لا يمكننا رؤية داخل VPS الخاص بك؛ شركة VPN تُعرَّف بقدرتها على رؤية داخل نفقها.
- الولاية القضائية تعمل لصالحك. نقطة الخروج تعيش حيث تنشرها — خارج تحالفات المراقبة إذا اخترت ذلك، وتحكمها محاكم الولاية القضائية للاستضافة بدلاً من بلد مقر شركة VPN.
والوزن المضاد الصريح: VPN ذاتي الاستضافة له عنوان IP مخصص يخصك وحدك. لن تعلّمه المواقع كـ VPN (ترقية حقيقية في جودة الحياة)، لكن كل حركة المرور الخاصة بك تتشارك عنوانًا واحدًا — أنت لا تندمج في حشد من الآلاف. إذا كان التمويه الجماعي هو المطلوب، استخدم Tor. إذا كانت البنية الموثوقة هي المطلوب، فلا شيء يتفوق على صندوق تتحكم فيه.
ما الذي نبنيه
هاتف ولابتوب → نفق WireGuard → خادم SV-Pro في الموقع الذي اخترته → الإنترنت المفتوح. توجيه IPv4 مع NAT على الخادم، وتوجيه كامل النفق على الأجهزة العميلة (0.0.0.0/0)، وDNS عبر 9.9.9.9. عنوان خادم المثال طوال الدليل: 185.220.101.14 — استبدله بعنوانك. نظام التشغيل الأساسي هو Debian 13؛ إذا لم تقم بتحصين الخادم بعد، فأنجز قائمة التحقق من 30 دقيقة أولاً، ثم عد.
إعداد الخادم على Debian 13
التثبيت وتوليد المفاتيح
apt update && apt install -y wireguard qrencode
cd /etc/wireguard
umask 077
# server keypair
wg genkey | tee server.key | wg pubkey > server.pub
# one keypair per client device (laptop shown; repeat for phone)
wg genkey | tee laptop.key | wg pubkey > laptop.pub
توليد مفاتيح العميل على الخادم مقبول للإعداد الأول لأنك تنقل ملفات الإعداد عبر SSH على أي حال. لنظافة أكثر صرامة، ولّد المفاتيح على كل جهاز والصق المفاتيح العامة فقط في إعداد الخادم.
اكتب wg0.conf
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <contents of server.key>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# laptop
[Peer]
PublicKey = <contents of laptop.pub>
AllowedIPs = 10.10.0.2/32
# phone — repeat the block with 10.10.0.3/32
تحقق من اسم واجهة الاتصال الصاعد باستخدام ip route | grep default — على صور VPSRento يكون eth0، لكن إذا كان مختلفًا لديك، عدّل أسطر MASQUERADE.
فعّل التوجيه وابدأ
# turn on IPv4 forwarding, persist across reboots
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wireguard.conf
sysctl -p /etc/sysctl.d/99-wireguard.conf
# firewall: one UDP port, nothing else
ufw allow 51820/udp comment 'WireGuard'
# bring it up, now and on boot
systemctl enable --now wg-quick@wg0
wg show
wg show يجب أن يعرض الواجهة ومنفذ الاستماع ونظراءك. لا توجد أسطر مصافحة بعد — ستظهر عندما يتصل عميل.
إعداد العميل
على اللابتوب، laptop.conf:
[Interface]
PrivateKey = <contents of laptop.key>
Address = 10.10.0.2/32
DNS = 9.9.9.9
[Peer]
PublicKey = <contents of server.pub>
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 185.220.101.14:51820
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0, ::/0 يوجّه كل الحركة عبر النفق — يمكنك لاحقًا تحويله إلى نفق منقسم إذا أردت. PersistentKeepalive يحافظ على المسار حيًا عبر NAT المنزلي. للهاتف، لا تكتب شيئًا: أنشئ ملف إعداد الهاتف على الخادم واعرضه كرمز QR في الطرفية:
# prints a scannable QR in the terminal — scan it with the WireGuard app
qrencode -t ansiutf8 < phone.conf
فعّل، ثم تحقق من أي عميل: curl ifconfig.me يجب أن يعيد عنوان IP الخاص بخادمك، واختبار تسرب DNS يجب أن يُظهر مشغّل 9.9.9.9 — وليس مزود خدمة الإنترنت لديك.
ملاحظات الأداء
يعيش WireGuard في النواة ويستخدم ChaCha20 — على عقد AMD EPYC، ينقل نفق واحد واقعيًا 600–900 ميجابت/ثانية عبر NAT، أي أنه يشبع المنفذ قبل أن يُجهد وحدة المعالجة المركزية بكثير. القيد الحقيقي ليس التشفير أبدًا؛ بل شروط النطاق الترددي للخطة. VPN نطاق ترددي خالص: كل جيجابايت تنزّلها تُحتسب مرة واردة ومرة صادرة. في الخطط المحدودة هذا الحساب مهم. في SV-Pro — $19.99/شهر، غير محدود بسرعة 1 جيجابت/ثانية — لا يهم، ولهذا نشير إلى SV-Pro كخطة مثالية لبناة VPN. أحد العملاء يدير إعدادًا عائليًا كاملًا على SV-Pro واحد في أمستردام ولم يجد سقفه بعد.
قفز متعدد: دخول في أمستردام، خروج في ريكيافيك
لطبقة ثانية، اربط خادمين عبر ولايات قضائية. عقدة دخول في هولندا (زمن استجابة منخفض لك)، نفق WireGuard بين الخادمين، عقدة خروج في آيسلندا (الولاية القضائية التي تريد أن تنطلق حركتك منها فعلًا). أجهزتك ترى نقطة نهاية واحدة في أمستردام؛ الإنترنت يرى عنوان IP في ريكيافيك؛ عقدة الدخول ترى فقط نصًا مشفرًا يمر عبرها. ميكانيكيًا، هي نفس الإعدادات التي كتبتها للتو، مرتين — واجهة wg ثانية على عقدة الدخول يكون مسارها الافتراضي موجهًا إلى نفق الخروج. التكلفة تقريبًا 40–60 مللي ثانية من زمن الاستجابة الإضافي وخادم $5.99–6.89 إضافي واحد. يستحق ذلك عندما يكون لنموذج التهديد ميزانية؛ زينة عندما لا يكون.
قيود صريحة
- أنت المشغّل الآن. التحديثات وتدوير المفاتيح ووقت التشغيل مسؤوليتك. unattended-upgrades و قائمة التحقق من التصلب تغطي معظم ذلك؛ والباقي هو apt upgrade عرضي يوم الأحد.
- عنوان IP واحد هو هوية واحدة. يمكن للمراقبين ربط كل ما يخرج من عنوانك. عندما يهم الأمر، أعد النشر في موقع آخر — بعد 55 ثانية تحصل على خروج جديد وعنوان IP جديد مُفحص ضد أكثر من 40 قائمة سوداء.
- VPS ليس Tor. هذا الإعداد يحميك من مزود الإنترنت الخاص بك، ومن شبكات Wi-Fi المعادية، ومن شركات VPN. ضد خصم على مستوى الدولة يراقب طرفي النفق، يوجد ارتباط توقيتي. اعرف المعركة التي تخوضها.