دليل كامل ل Cloudflared Tunnel
إزاي ده
دليل عملي شامل لتنصيب واستخدام وترقية ونسخ احتياطي Cloudflare Tunnel باستخدام cloudflared. يعمل على Windows و Linux. مكتوب ليكون نسخ مباشرة إلى محفظة أو قاعدة معرفة.
الفكرة الأساسية
cloudflared يخلق اتصال خارجي من جهازك إلى Cloudflare. لا توجد منافذ مفتوحة. DNS يشير إلى النفق، وليس إلى IP الخادم. إذا كانت بيانات اعتماد النفق موجودة، يمكن لأي جهاز تشغيله.
متطلبات
- حساب Cloudflare
- نطاق مضاف إلى Cloudflare
- cloudflared مثبت
تنصيب cloudflared
Windows
استخدام winget
winget install Cloudflare.cloudflared
أو تحميل الملف الثنائي من Cloudflare وإضافته إلى PATH. التحقق
cloudflared --version
Linux
Debian أو Ubuntu
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared jammy main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt update
sudo apt install cloudflared
التحقق
cloudflared --version
مصادقة مع Cloudflare
هذا يربط جهازك بحساب Cloudflare.
cloudflared tunnel login
يفتح متصفح. اختر النطاق. بعد النجاح يتم تخزين ملف شهادة محليًا. المواقع
- Windows: %USERPROFILE%.cloudflared\cert.pem
- Linux: ~/.cloudflared/cert.pem هذا الملف حرج.
إنشاء نفق
cloudflared tunnel create my-tunnel
ستحصل على
- Tunnel UUID
- ملف بيانات اعتماد JSON مثال
~/.cloudflared/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json
تكوين النفق
إنشاء config.yml
Windows
مسار
%USERPROFILE%\.cloudflared\config.yml
Linux
~/.cloudflared/config.yml
مثال تكوين
tunnel: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
credentials-file: /full/path/to/credentials.json
ingress:
- hostname: app.example.com
service: http://localhost:3000
- service: http_status:404
توجيه DNS
إنشاء سجل DNS يشير إلى النفق
cloudflared tunnel route dns my-tunnel app.example.com
مهم
- النوع هو CNAME
- الهدف هو النفق، وليس IP
- سجلات CNAME القديمة من الأنفاق المحذوفة ستكسر التوجيه
تشغيل النفق
cloudflared tunnel run my-tunnel
أو كخدمة
Windows
cloudflared service install
Linux
sudo cloudflared service install
مشاكل شائعة
الموقع غير متاح
- DNS CNAME يشير إلى نفق قديم
- Tunnel UUID خاطئ في التكوين
- مسار ملف بيانات اعتماد خاطئ
يعمل فقط محليًا
- التطبيق لا يستمع على localhost
- منفذ خاطئ في خدمة ingress
نسخ احتياطي وترقية إلى جهاز آخر
هذا هو الجزء الأكثر أهمية.
الملفات التي يجب نسخها احتياطيًا
من ~/.cloudflared أو %USERPROFILE%.cloudflared
- cert.pem
- config.yml
- tunnel-UUID.json بدون هذه، لا يمكن إعادة استخدام النفق.
نقل إلى جهاز آخر
- تنصيب cloudflared
- نسخ الملفات الثلاثة إلى نفس دليل cloudflared
- التأكد من صحة المسارات داخل config.yml
- تشغيل
cloudflared tunnel run my-tunnel
لا يلزم إنشاء نفق جديد.
استخدام نفس النفق على Linux و Windows
الأنفاق مستقلة عن المنصة. تختلف فقط المسارات. مثال مسار Windows
C:\Users\Ahmed\.cloudflared\credentials.json
مثال مسار Linux
/home/ahmed/.cloudflared/credentials.json
UUID وشهادة يبقوا نفسهم.
ملاحظات أمنية
- اعامل cert.pem مثل المفتاح الخاص
- أي شخص لديه cert.pem وcredentials.json يمكنه تشغيل نفقك
- احفظ النسخ الاحتياطية مشفرة
متى يجب إنشاء نفق جديد
- إذا كانت cert.pem مشكوك فيها
- إذا كنت تريد عزل صارم بين البيئات
- إذا قمت بحذف النفق من لوحة تحكم Cloudflare خلاف ذلك، أعد استخدام نفس النفق.
نموذج عقلي
cloudflared هو عميل، وليس خادمًا. DNS يشير إلى Cloudflare. Cloudflare يتحدث إلى نفقك. جهازك لا يفتح منفذًا أبدًا. هذا هو السبب في أن النسخ الاحتياطية مهمة أكثر من الجهاز نفسه.

