خادم النفق جاهز. الآن نربط به أول راوتر MikroTik في برج — بأربعة أوامر على الراوتر وأمر واحد على الخادم. وحين ننتهي ستفتح Winbox من مكتبك على عنوان داخلي، بلا أن يكون للراوتر أي منفذ إدارة مفتوح على الإنترنت.
كل ما في هذه السلسلة مُنفَّذ فعلاً. بنينا المختبر على سيرفر Proxmox VE: خادم WireGuard على حاوية، وراوتر MikroTik RouterOS 7 على جهاز افتراضي يمثّل برجاً، وشبكة أجهزة سكتر خلفه. كل مخرج أمر في هذه المقالات مأخوذ من ذلك المختبر حرفياً — وقد استبدلنا العناوين العامة الحقيقية بعناوين التوثيق المخصّصة لهذا الغرض (RFC 5737) حفاظاً على أمان السيرفر.
قبل أن تبدأ: تحقّق من الإصدار
WireGuard متاح في RouterOS 7 فقط:
/system/resource/print
إن كان الإصدار 6 فرقِّ أولاً. وإن تعذّرت الترقية، استعمل L2TP/IPsec بالمنطق نفسه — لكن لا تستعمل PPTP إطلاقاً.
الخطوة 1: أنشئ واجهة النفق على الراوتر
/interface/wireguard/add name=wg-hq listen-port=13231 comment="tunnel to HQ"
/ip/address/add address=10.8.0.2/24 interface=wg-hq
سطران: واجهة النفق، وعنوان الراوتر داخل شبكة النفق. ولاحظ أن listen-port هنا لا يحتاج أن يكون مفتوحاً من الإنترنت — الراوتر هو من سيخرج نحو الخادم، لا العكس.
الخطوة 2: خذ المفتاح العام للراوتر
/interface/wireguard/print detail
انسخ قيمة public-key. المفتاح الخاص يبقى في الراوتر ولا يخرج منه.
الخطوة 3: عرّف الخادم كنظير على الراوتر
/interface/wireguard/peers/add \
interface=wg-hq \
public-key="<المفتاح العام للخادم>" \
endpoint-address=203.0.113.20 \
endpoint-port=51820 \
allowed-address=10.8.0.0/24 \
persistent-keepalive=25s \
comment="HQ WireGuard server"
persistent-keepalive ليست اختيارية هنا. أغلب الأبراج خلف NAT عند مزوّد الإنترنت، وجداول NAT تنسى الاتصالات الخاملة بعد دقائق. هذه القيمة ترسل حزمة صغيرة كل 25 ثانية تبقي المسار مفتوحاً. بدونها سيعمل النفق ثم «يختفي» كلما هدأت الحركة — وهو أكثر عطل محيّر في هذا الإعداد.
الخطوة 4: عرّف الراوتر كنظير على الخادم
# على خادم النفق
wg set wg0 peer <المفتاح العام للراوتر> allowed-ips 10.8.0.2/32
wg-quick save wg0
الخطوة 5: التحقّق
# من الراوتر
/ping 10.8.0.1 count=3
# من الخادم
ping -c 3 10.8.0.2
wg show wg0
وعلى الخادم يظهر النظير بحالته الكاملة:
كيف تقرأ حالة النفق؟
| ما تراه في wg show | معناه |
|---|---|
| لا يوجد latest handshake | الطرفان لم يتصلا قط — راجع المفاتيح والعنوان والمنفذ |
| مصافحة قديمة (دقائق) | كان يعمل ثم انقطع — غالباً keepalive ناقص |
| مصافحة حديثة وtransfer صغير | النفق حيّ لكن لا حركة — طبيعي في الراحة |
| مصافحة حديثة وترافك يزيد | كل شيء سليم |
| endpoint يتغيّر كثيراً | عنوان البرج متغيّر — طبيعي، وWireGuard يتكيّف تلقائياً |
الخطوة 6: أغلق الأبواب القديمة
هذه الخطوة هي الغاية من كل ما سبق — ولا تُنجز المهمة بدونها:
# اسمح بالإدارة من شبكة النفق فقط
/ip/service/set winbox address=10.8.0.0/24
/ip/service/set ssh address=10.8.0.0/24
/ip/service/set www address=10.8.0.0/24
# وأطفئ ما لا تستعمله
/ip/service/disable telnet,ftp,api,www-ssl
لا تنفّذ هذا إلا بعد أن تتأكّد أن النفق يعمل — وإلا قطعت نفسك عن الراوتر وستحتاج النزول إلى الموقع. الترتيب الآمن: ابنِ النفق ← جرّب الدخول عبره ← ثم أغلق الوصول العام. واحتفظ بمنفذ إنقاذ إن كان الموقع بعيداً.
الآن جرّب من مكتبك
أضف جهازك كنظير على الخادم (بالطريقة نفسها)، ثم:
ping 10.8.0.2 # الراوتر
ssh [email protected] # سطر الأوامر
# وWinbox: اتصل بـ 10.8.0.2
الفرق أن العنوان 10.8.0.2 لا وجود له على الإنترنت. من لا يملك مفتاحاً لا يصل إليه ولا يعرف أنه موجود.
ربط بقية الأبراج
كرّر الخطوات نفسها، وغيّر رقمين فقط:
| البرج | عنوان النفق | على الخادم |
|---|---|---|
| المنصور | 10.8.0.2/24 | allowed-ips 10.8.0.2/32 |
| الشعلة | 10.8.0.3/24 | allowed-ips 10.8.0.3/32 |
| الجادرية | 10.8.0.4/24 | allowed-ips 10.8.0.4/32 |
ولكل برج مفتاحه الخاص. لا تعِد استعمال مفتاح واحد في أكثر من جهاز — لأن سحب الثقة من برج واحد حينها يعني قطع الجميع.
أخطاء شائعة وحلولها
| العَرَض | السبب | الحل |
|---|---|---|
| لا مصافحة إطلاقاً | مفتاح عام منسوخ ناقصاً أو فيه مسافة | انسخه كاملاً بما فيه = في آخره |
| لا مصافحة والمفاتيح صحيحة | المنفذ مغلق أو مفتوح على TCP | UDP 51820 على الخادم |
| يعمل ثم يتوقّف بعد دقائق | keepalive ناقص | persistent-keepalive=25s على طرف البرج |
| مصافحة تحدث وping يفشل | allowed-address لا يشمل العنوان المقصود | راجع الحقل على الطرفين |
| قطعت نفسك عن الراوتر | أغلقت الإدارة قبل اختبار النفق | النزول إلى الموقع — أو منفذ إنقاذ جهّزته مسبقاً |
| النفق يعمل والإنترنت انقطع عن البرج | وجّهت كل الترافك عبر النفق | allowed-address = شبكة النفق فقط، لا 0.0.0.0/0 |
أسئلة شائعة
هل يؤثّر النفق على ترافك المشتركين؟
لا، لأن allowed-address محصور بشبكة النفق. ترافك المشتركين يخرج بمساره الطبيعي ولا يمرّ بالنفق إطلاقاً.
كم يستهلك من معالج الراوتر؟
حركة الإدارة صغيرة، والأثر لا يُلاحظ حتى على راوترات ضعيفة. WireGuard من أخفّ البروتوكولات.
هل يعمل والبرج خلف CGNAT بلا عنوان عام؟
نعم — وهذه أقوى ميزة. الراوتر يخرج نحو الخادم، ولا يحتاج أن يكون مرئياً من الإنترنت إطلاقاً.
وإن تغيّر عنوان البرج العام؟
لا شيء يحدث. WireGuard يحدّث endpoint تلقائياً مع أول حزمة من العنوان الجديد.
هل أستطيع ربط راوترين في برج واحد؟
نعم، لكل واحد مفتاحه وعنوانه في شبكة النفق. أو اربط الأساسي فقط واجعل الثاني خلفه — وهذا موضوع الجزء التالي.
الخطوة التالية
الآن تصل إلى الراوتر. لكن البرج فيه سكترات وأجهزة لاسلكية بعناوين محلية خلفه. في الجزء الرابع نجعلها كلها متاحة من مكتبك — بلا عنوان عام لأي منها وبلا منفذ إضافي.
هذه المقالة من سلسلة «أدر شبكتك من مكتبك» — بناء شبكة إدارة عن بُعد لمزوّدي الإنترنت ومكاتب الشبكات: ١. لماذا VPN أصلاً · ٢. خادم WireGuard · ٣. اربط راوتر البرج · ٤. أجهزة السكتر خلف الراوتر · ٥. اعزل شبكة المشتركين · ٦. صلاحية لكل فنّي · ٧. حين ينقطع النفق