انتقل إلى المحتوى
العودة إلى المقالات

~/writing / من واقع التجربة

  • Coolify
  • Cloudflare Tunnel
  • cloudflared
  • CG-NAT
  • شبكات

ربط Coolify بالإنترنت عبر Cloudflare Tunnel دون فتح المنافذ

Mustafa Ramx pixel avatarبقلم Mustafa Ramx14 يونيو 20255 دقائق للقراءةآخر تحديث 12 نوفمبر 2025
صورة المقال ربط Coolify بالإنترنت عبر Cloudflare Tunnel دون فتح المنافذ
محتويات المقال8 أقسام
  1. لماذا لا يعمل Port Forwarding دائماً؟
  2. تعرّف إلى Cloudflare Tunnel
  3. إعداد Cloudflare Tunnel خطوة بخطوة
  4. تثبيت cloudflared على جهاز Ubuntu الذي يشغّل Coolify
  5. اختبار الإعداد عبر Grafana على Coolify
  6. تجربة Grafana
  7. ماذا عن الأمان؟
  8. أدلة Coolify ذات صلة

ثبّتَّ Coolify، البديل المفتوح المصدر لـHeroku، على جهاز Ubuntu افتراضي محلي داخل Parallels أو VirtualBox أو VMware، وفتحت المنفذين 80 و443، وكل شيء يعمل كما يجب داخل شبكتك.

لكن عندما تحاول فتح التطبيق من خارج المنزل، باستخدام هاتف متصل بشبكة 4G أو جهاز صديق، لا يتم تحميل أي شيء 💀

مرحباً بك في نادي مزودي الإنترنت الذين يحظرون منافذ الاستضافة المنزلية™.

بعض مزودي الإنترنت، وخصوصاً هنا في أستراليا 🇦🇺، يحظرون الاتصالات الواردة إلى المنفذين 80 و443. يبدو أنهم لا يحبون حرية الاستضافة 😅

لم تثبّت Coolify محلياً بعد؟ ابدأ بهذا الدليل التفصيلي: تشغيل Coolify على جهاز افتراضي محلي وإتاحته عبر الإنترنت.

أستخدم إعداد Cloudflare Tunnel هذا حالياً لإتاحة بيئة الاختبار المرحلي المبنية على Coolify عبر الإنترنت مجاناً. يفيدني في مشاركة العروض مع العملاء، واختبار SSL والتوجيه، ونشر الخدمات للمراجعة، وكل ذلك من دون فتح المنافذ أو التعامل مع قواعد جدار حماية معقدة. أوصي به للمطورين الذين يعملون على تطبيقات ذاتية الاستضافة أو بيئات CI/CD محلية.

لماذا لا يعمل Port Forwarding دائماً؟

قد تضبط كل شيء بطريقة صحيحة:

  • قواعد NAT.
  • Coolify يعمل بلا مشكلة.
  • جربت حيلة uptime.111.222.33.44.sslip.io.
  • راجعت إعدادات الأمان.

ومع ذلك لا يعمل الموقع من الهاتف أو الإنترنت العام.

يحدث ذلك لأن مزود الإنترنت يحظر منافذ الويب، أو لأن اتصالك يعمل خلف Carrier-Grade NAT (CG-NAT).

تعرّف إلى Cloudflare Tunnel

Cloudflare Tunnel، المعروف أيضاً بأداة cloudflared، خدمة مجانية تتيح لك ربط أي خادم محلي بالإنترنت بأمان، من دون فتح أي منفذ.

توفر لك:

  • استخدام نطاقك الخاص.
  • SSL مجانياً.
  • WAF مجانياً.
  • حماية DDoS مجانية.
  • عدم الحاجة إلى Port Forwarding.
  • عدم الحاجة إلى عنوان IP عام.
  • العمل حتى خلف جدران حماية صارمة ;)

إعداد Cloudflare Tunnel خطوة بخطوة

خلال أقل من عشر دقائق، ستكون لوحة Coolify متاحة عبر نطاق عام.

1. المتطلبات

  • حساب Cloudflare مجاني عبر dash.cloudflare.com.
  • نطاق تملكه، بأي امتداد مثل .com أو .xyz.
  • أن يستخدم النطاق Cloudflare DNS.
  • عنوان IP محلي ثابت، وغالباً يكون بالشكل 192.168.1.x.

مثال على النطاق الذي سنستخدمه:

coolify.mydomain.com

تثبيت cloudflared على جهاز Ubuntu الذي يشغّل Coolify

الإعداد من لوحة Cloudflare Zero Trust

إذا كنت تفضّل العمل من واجهة رسومية بدلاً من CLI، توفر Cloudflare مساراً كاملاً من لوحة التحكم.

افتح dash.cloudflare.com، وسجّل الدخول، ثم اختر Zero Trust من الصفحة الرئيسية. إذا كانت هذه زيارتك الأولى، فقد تطلب Cloudflare بطاقة ائتمانية للتحقق من الحساب، لكن الخدمة تظل مجانية.

إنشاء النفق

من لوحة Zero Trust:

  • انتقل إلى Networks → Tunnels.
  • اضغط Create a Tunnel.
  • اختر Cloudflared كنوع الموصل.
  • امنح النفق اسماً، مثل coolify_tunnel.
  • ستعرض Cloudflare الأوامر الدقيقة لتثبيت cloudflared وتشغيل الموصل.

إنشاء Cloudflare Tunnel باسم coolify_tunnel لربط خادم Coolify

تثبيت الموصل وتشغيله

ستطلب منك Cloudflare اختيار نظام التشغيل، ثم تعرض أوامر مشابهة لما يلي:

# Add the Cloudflare GPG key
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

# Add this repo to your apt repositories
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main' | sudo tee /etc/apt/sources.list.d/cloudflared.list

# Install cloudflared
sudo apt-get update && sudo apt-get install cloudflared

بعد تثبيت cloudflared، ثبّتها كخدمة حتى يعمل النفق تلقائياً عند تشغيل الجهاز:

sudo cloudflared service install eyJhIjoiNGRlYz......

أصبح خادمك الآن متصلاً بـCloudflare بأمان 🎉

تثبيت خدمة cloudflared بنجاح على خادم Ubuntu

ربط نطاق بالنفق

بعد أن يصبح النفق في حالة تشغيل، عد إلى لوحة التحكم:

  • افتح Public Hostnames.
  • أضف اسماً مثل coolify.mydomain.com.
  • وجّه الاسم إلى http://localhost.

إضافة Public Hostname يشير إلى http://localhost في Cloudflare Tunnel

تأكد أيضاً من استخدام النطاق نفسه في حقل Instance Domain داخل لوحة Coolify:

ضبط Instance Domain في Coolify على coolify.mydomain.com

ستنشئ Cloudflare سجل DNS وشهادة SSL تلقائياً. أصبحت لوحة Coolify الآن متاحة على الإنترنت عبر اتصال آمن ومن دون Port Forwarding 👏

إعداد SSL/TLS للوصول عبر HTTPS

حتى تعمل تطبيقات Coolify، مثل Uptime Kuma أو Grafana، عبر HTTPS بطريقة صحيحة، يجب ضبط إعدادات SSL/TLS في Cloudflare.

اتبع الخطوات التالية:

  1. افتح لوحة Cloudflare.
  2. اختر النطاق.
  3. انتقل إلى SSL/TLS → Overview.
  4. راجع وضع التشفير في SSL/TLS encryption.

الوضع الموصى به هو Full، لأنه يوفر تشفيراً بين Cloudflare والخادم أيضاً.

ضبط وضع تشفير SSL/TLS على Full داخل Cloudflare

هل تواجه timeout أو حلقة إعادة توجيه أو تعذّر الوصول؟

إذا ظهرت مشكلات مثل:

  • انتهاء مهلة الاتصال.
  • عدد كبير جداً من عمليات إعادة التوجيه.
  • أخطاء SSL.
  • عدم تحميل الموقع نهائياً.

جرّب التحويل إلى Flexible كحل سريع. يعطّل هذا الوضع التحقق الكامل من الاتصال بالخادم، لكنه قد يعيد الموقع إلى العمل فوراً، وهو مناسب للاختبار.

وكل ذلك متاح مجاناً عبر Cloudflare 😉

اختبار الإعداد عبر Grafana على Coolify

بعد تشغيل Coolify وربطه بالإنترنت عبر Cloudflare Tunnel، سننشر خدمة مفيدة وجذابة بصرياً: Grafana.

ما أجمل أن تراقب رسوماً ملونة لمؤشرات الخادم وأنت تحتسي القهوة وتتظاهر بأنك داخل فيلم خيال علمي؟

1. افتح لوحة Coolify

انتقل إلى رابط نسختك:

https://coolify.mydomain.com

2. أنشئ مشروعاً جديداً

اضغط + New Project.

  • Name: grafana
  • اختر Grafana من قائمة الخدمات.

إنشاء مشروع Grafana جديد داخل Coolify

تأكد من أن النطاق والإعدادات يطابقان الصورة التالية:

إعداد نطاق خدمة Grafana داخل Coolify

3. أضف Public Hostname لخدمة Grafana

عد إلى Cloudflare Tunnels، وافتح إعدادات النفق، ثم أضف سجل Public Hostname خاصاً بـGrafana كما في الصورة:

إضافة Public Hostname لخدمة Grafana داخل Cloudflare Tunnel

وهكذا انتهينا :D نشرنا Grafana باستخدام Coolify وشغّلناه مجاناً عبر Cloudflare Tunnel.

تجربة Grafana

  • Login: البيانات الافتراضية هي admin / admin.
  • سيطلب منك النظام تغيير كلمة المرور.
  • أنشئ أول لوحة مراقبة، أو اربط مصدراً للبيانات مثل Prometheus أو Loki.

هل تحتاج إلى دليل عن منظومة Grafana + Prometheus + Loki أيضاً؟ ربما يكون هذا موضوع المقال القادم 😉

ماذا عن الأمان؟

لا تقلق، اتصال Cloudflare Tunnel مشفّر من الطرف إلى الطرف، كما تحصل على حماية Cloudflare من DDoS وWAF.

ومع ذلك، ما زلت أوصي بإضافة CrowdSec إلى الخادم للحماية من الروبوتات وإساءة الاستخدام، مع Traefik AppSec WAF إذا كنت تحتاج إلى حماية أكثر جدية.

راجع دليل تأمين خادم Coolify ومواقعه باستخدام CrowdSec وnftables وTraefik.

أدلة Coolify ذات صلة

إذا أفادك هذا الدليل، يمكنك دعمي بفنجان قهوة. كل مساهمة تساعدني على مواصلة كتابة هذه الشروحات — وتُبقي ذهني يقظاً 😅

// شارك المقال

شارك على XLinkedIn