الرجوع إلى قائمة المقالات

خادم WireGuard على Proxmox: بناء شبكة إدارة من الصفر

خادم WireGuard على Proxmox خطوة بخطوة — أوامر جاهزة | مرام هوست - خادم WireGuard على Proxmox: بناء شبكة إدارة من الصفر

خادم النفق هو القطعة التي تلتقي عندها كل أبراجك. في هذا الجزء نبنيه من الصفر على Proxmox: حاوية خفيفة، وWireGuard، ومنفذ واحد مفتوح — وننتهي بنفق جاهز لاستقبال أول راوتر.

كل ما في هذه السلسلة مُنفَّذ فعلاً. بنينا المختبر على سيرفر Proxmox VE: خادم WireGuard على حاوية، وراوتر MikroTik RouterOS 7 على جهاز افتراضي يمثّل برجاً، وشبكة أجهزة سكتر خلفه. كل مخرج أمر في هذه المقالات مأخوذ من ذلك المختبر حرفياً — وقد استبدلنا العناوين العامة الحقيقية بعناوين التوثيق المخصّصة لهذا الغرض (RFC 5737) حفاظاً على أمان السيرفر.

ما الذي يحتاجه الخادم فعلاً؟

الموردالمطلوبلماذا
المعالجنواة واحدةتشفير WireGuard رخيص جداً
الذاكرة512 ميغابايتالنفق لا يحتفظ بحالة ثقيلة
القرص4 غيغابايتنظام وحزم فقط
العنوانعام وثابتهذا هو الشرط الحقيقي الوحيد
التوفّر‏24 ساعةهو نقطة اللقاء — إن سقط سقط وصولك لكل الأبراج

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

الخطوة 1: أنشئ الحاوية

pct create 150 local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst \
  --hostname vpn-hq \
  --memory 512 --cores 1 \
  --rootfs local-lvm:4 \
  --net0 name=eth0,bridge=vmbr0,ip=203.0.113.20/28,gw=203.0.113.1 \
  --nameserver 1.1.1.1 \
  --unprivileged 1 --onboot 1 --password 'كلمة-مرور-قوية'

pct start 150

لماذا حاوية LXC لا جهاز افتراضي؟ لأن WireGuard يعمل داخل نواة لينكس، والحاوية تستعمل نواة المضيف مباشرةً — فتحصل على الأداء نفسه بذاكرة أقل بكثير. تأكّد فقط أن وحدة wireguard محمّلة على المضيف: modprobe wireguard.

الخطوة 2: نصّب WireGuard وولّد المفاتيح

pct exec 150 -- bash

apt-get update
apt-get install -y wireguard-tools

# مفتاحا الخادم
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub
chmod 600 /etc/wireguard/server.key

cat /etc/wireguard/server.pub

احفظ المفتاح العام — ستضعه في كل راوتر تربطه لاحقاً. أما المفتاح الخاص فلا يغادر الخادم إطلاقاً.

الخطوة 3: ملف الإعداد

cat > /etc/wireguard/wg0.conf <<'EOF'
[Interface]
Address    = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <محتوى server.key>

# كل برج يُضاف هنا لاحقاً كـ [Peer]
EOF

chmod 600 /etc/wireguard/wg0.conf

ثلاثة أسطر تكفي: عنوان الخادم داخل شبكة النفق، والمنفذ الذي يستمع عليه، ومفتاحه الخاص.

اختيار شبكة النفق

‏10.8.0.0/24 اختيار جيد: بعيد عن الشبكات المنزلية الشائعة، وعن شبكات أبراجك التي ستكون 192.168.88.0/24 وما بعدها. الخطة المقترحة:

العنوانلمن
10.8.0.1الخادم
10.8.0.2 إلى 10.8.0.49راوترات الأبراج — واحد لكل برج
10.8.0.50 فما فوقأجهزة الفنّيين والمدير

الخطوة 4: التوجيه وتشغيل الخدمة

لأن الخادم سيمرّر حركةً بين النفق وشبكات الأبراج، فعّل التوجيه:

echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wg.conf
sysctl --system

systemctl enable --now wg-quick@wg0
wg show
مخرجات أمر wg show تعرض واجهة wg0 والمفتاح العام ومنفذ الاستماع 51820
الخادم يعمل: واجهة wg0 والمفتاح العام والمنفذ 51820 — ولا نظراء بعد

الخطوة 5: افتح منفذاً واحداً فقط

هذا كل ما يُفتح على الإنترنت في المعمارية كلها:

ufw allow 51820/udp comment 'WireGuard'
ufw allow 22/tcp comment 'SSH'
ufw enable
ufw status

منفذ UDP لا TCP. خطأ شائع يضيّع ساعة: تفتح 51820 على TCP فلا يعمل شيء ولا تظهر أي رسالة خطأ. WireGuard يعمل على UDP حصراً.

وميزة إضافية في WireGuard تستحقّ المعرفة: لا يردّ على من لا يملك مفتاحاً. فاحص المنافذ الذي يمرّ على عنوانك لا يرى منفذ 51820 مفتوحاً أصلاً — يبدو كأن لا شيء هناك. هذا وحده يُخرجك من قوائم الأهداف التي تبني الروبوتات عليها هجماتها.

الخطوة 6: تحقّق قبل أن تكمل

# الواجهة تعمل؟
wg show wg0

# تستمع على المنفذ الصحيح؟
ss -lunp | grep 51820

# تعمل بعد إعادة التشغيل؟
systemctl is-enabled wg-quick@wg0

الفحص الثالث هو الذي يُنسى ثم يكتشفه الناس بعد انقطاع كهرباء. تأكّد منه الآن.

إضافة أول نظير — الصيغة العامة

كل برج أو جهاز يُضاف بثلاثة أسطر:

[Peer]
PublicKey  = <المفتاح العام للطرف الآخر>
AllowedIPs = 10.8.0.2/32

أو بلا تعديل الملف يدوياً:

wg set wg0 peer <PUBLIC_KEY> allowed-ips 10.8.0.2/32
wg-quick save wg0    # لتثبيتها في الملف

AllowedIPs هو أهم حقل في WireGuard وأكثره سوء فهم. هو ليس «قائمة سماح» فقط، بل جدول توجيه: يقول للخادم «كل ما وجهته هذه العناوين، أرسله إلى هذا النظير». ولهذا حين نريد الوصول إلى شبكة برج كاملة سنكتب هنا 10.8.0.2/32,192.168.88.0/24 — وسنفعل ذلك في الجزء الرابع.

أخطاء شائعة وحلولها

العَرَضالسببالحل
wg-quick يفشل: Unable to access interfaceوحدة wireguard غير محمّلة على المضيفmodprobe wireguard على المضيف لا داخل الحاوية
الخدمة تعمل ولا اتصالالمنفذ مفتوح على TCPافتحه على UDP
النفق يقوم ثم يسقط بعد دقائقلا يوجد persistent-keepalive على الطرف خلف NATاضبطه 25 ثانية على طرف البرج
يعمل ولا يُقلع بعد إعادة التشغيلالخدمة غير مفعّلةsystemctl enable wg-quick@wg0
Permission denied عند القراءةصلاحيات ملفات المفاتيحchmod 600 /etc/wireguard/*
مصافحة تحدث ثم لا ترافكAllowedIPs لا يشمل الشبكة المقصودةراجع الحقل على الطرفين

أسئلة شائعة

هل أستطيع استعمال منفذ غير 51820؟

نعم، وقد يكون أفضل: بعض الشبكات تحدّ من المنفذ الافتراضي. اختر منفذ UDP عالياً وثبّته في كل الأطراف.

كم نظيراً يتحمّل الخادم؟

آلاف. الحدّ العملي هو عرض النطاق لا عدد النظراء — وحركة الإدارة صغيرة جداً.

هل أحتاج اسم نطاق للخادم؟

لا، العنوان يكفي. لكن استعمال اسم نطاق يجعل تغيير الخادم لاحقاً أسهل بكثير: تعدّل سجلاً واحداً بدل إعداد كل برج.

كيف آخذ نسخة احتياطية؟

مجلد /etc/wireguard كله — بضعة كيلوبايتات فيها كل شيء. احفظها في مكان آمن، فهي تحوي المفتاح الخاص.

وإن تسرّب مفتاح أحد الأبراج؟

احذف نظيره من الخادم بأمر واحد، وولّد للبرج مفتاحاً جديداً. بقية الأبراج لا تتأثر إطلاقاً — وهذه ميزة نموذج المفاتيح.

الخطوة التالية

الخادم جاهز ولا نظراء له. في الجزء الثالث نربط أول راوتر MikroTik ونثبت أن النفق يعمل في الاتجاهين.

هذه المقالة من سلسلة «أدر شبكتك من مكتبك» — بناء شبكة إدارة عن بُعد لمزوّدي الإنترنت ومكاتب الشبكات: ١. لماذا VPN أصلاً · ٢. خادم WireGuard · ٣. اربط راوتر البرج · ٤. أجهزة السكتر خلف الراوتر · ٥. اعزل شبكة المشتركين · ٦. صلاحية لكل فنّي · ٧. حين ينقطع النفق

Powered by WHMCompleteSolution