
cloudflared v2026.8.1
عميل لـ Cloudflare Tunnel يتيح اتصالات آمنة وخارجة فقط إلى الأصول عبر بنية Zero Trust. يدعم حركة مرور HTTP وWebSocket وSSH وRDP دون تغييرات في جدار الحماية، مما يوفر التحكم في الوصول والمصادقة.
عميل Cloudflare Tunnel
يحتوي على عميل سطر الأوامر الخاص بـ Cloudflare Tunnel، وهو برنامج خفي (daemon) للنفق يعمل كوسيط (proxy) يمرر حركة المرور من شبكة Cloudflare إلى مصادرك (origins).
يجلس هذا البرنامج الخفي بين شبكة Cloudflare ومصدرك (مثل خادم ويب). تجذب Cloudflare طلبات العملاء وترسلها إليك
عبر هذا البرنامج الخفي، دون الحاجة إلى فتح ثقوب في جدار الحماية الخاص بك --- يمكن أن يبقى مصدرك مغلقًا قدر الإمكان.
يمكن العثور على وثائق موسعة في قسم Cloudflare Tunnel من وثائق Cloudflare.
جميع الاستخدامات المتعلقة بالتمرير عبر الوسيط إلى مصادرك متاحة ضمن cloudflared tunnel help.
يمكنك أيضًا استخدام cloudflared للوصول إلى مصادر Tunnel (المحمية بـ cloudflared tunnel) لحركة مرور TCP
في الطبقة 4 (أي ليس HTTP/websocket)، وهو أمر ذو صلة بحالات استخدام مثل SSH وRDP وغيرها.
هذه الاستخدامات متاحة ضمن cloudflared access help.
يمكنك بدلاً من ذلك استخدام عميل WARP
للوصول إلى المصادر الخاصة خلف Tunnels لحركة مرور الطبقة 4 دون الحاجة إلى أوامر cloudflared access على جانب العميل.
قبل أن تبدأ
قبل استخدام Cloudflare Tunnel، ستحتاج إلى إكمال بضع خطوات في لوحة تحكم Cloudflare: تحتاج إلى إضافة موقع ويب إلى حساب Cloudflare الخاص بك. لاحظ أنه اليوم من الممكن استخدام Tunnel دون موقع ويب (مثلاً للتوجيه الخاص)، لكن لأسباب تتعلق بالإرث القديم لا يزال هذا الشرط ضروريًا:
تثبيت cloudflared
التنزيلات متاحة كملفات ثنائية (binaries) مستقلة، وصورة Docker، وحزم Debian وRPM وHomebrew. يمكنك أيضًا العثور على الإصدارات هنا في مستودع cloudflared على GitHub.
- يمكنك التثبيت على macOS عبر Homebrew أو بتنزيل أحدث إصدار Darwin amd64
- الملفات الثنائية وحزم Debian وRPM لنظام Linux يمكن العثور عليها هنا
- صورة Docker لـ
cloudflaredمتاحة على DockerHub - يمكنك التثبيت على أجهزة Windows باتباع الخطوات هنا
- للبناء من المصدر، ثبّت الإصدار المطلوب من go، المذكور في قسم التطوير أدناه. ثم يمكنك تشغيل
make cloudflared.
يمكن العثور على وثائق المستخدم الخاصة بـ Cloudflare Tunnel على https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/
إنشاء Tunnels وتوجيه حركة المرور
بمجرد التثبيت، يمكنك مصادقة cloudflared في حساب Cloudflare الخاص بك والبدء في إنشاء Tunnels لتقديم حركة المرور إلى مصادرك.
- أنشئ Tunnel باتباع هذه التعليمات
- وجّه حركة المرور إلى ذلك Tunnel:
- عبر سجلات DNS العامة في Cloudflare
- أو عبر اسم مضيف عام (public hostname) موجّه بواسطة Cloudflare Load Balancer
- أو من حركة المرور الخاصة لعميل WARP
TryCloudflare
هل تريد اختبار Cloudflare Tunnel قبل إضافة موقع ويب إلى Cloudflare؟ يمكنك القيام بذلك باستخدام TryCloudflare عبر الوثائق المتاحة هنا.
التغييرات الكاسرة
يُعدّ حذف أعلام سطر الأوامر أو متغيرات البيئة أو مفاتيح التكوين أو الأوامر تغييرًا كاسرًا. يجب الإعلان عن عمليات الحذف هذه في سجل تغييرات Cloudflare Tunnel قبل الإصدار الذي يحذفها.
الإصدارات المهملة
تدعم Cloudflare حاليًا إصدارات cloudflared التي تقع ضمن سنة واحدة من أحدث إصدار. قد تُقدَّم تغييرات كاسرة غير مرتبطة بتوفر الميزات وستؤثر على الإصدارات الصادرة قبل أكثر من سنة. يمكنك قراءة المزيد حول ترقية cloudflared في وثائق المطورين الخاصة بنا.
على سبيل المثال، اعتبارًا من يناير 2023 ستدعم Cloudflare الإصدار 2023.1.1 حتى الإصدار 2022.1.1 من cloudflared.
التطوير
المتطلبات
- GNU Make
- capnp
- go >= 1.27.3
- أدوات اختيارية:
تحديث Go
يجب أن تحدد توجيهة go في go.mod الإصدار الكامل major.minor.patch
(على سبيل المثال، go 1.27.3). لا تحذف رقم التصحيح، بما في ذلك إصدارات .0.
هذا هو إصدار Go الدقيق المستخدم لبناء واختبار cloudflared: إذ يصدّر Makefile
GOTOOLCHAIN=go<version> منه، لذا يقوم make بتنزيل سلسلة الأدوات تلك كلما كان
Go المثبّت أقدم أو أحدث. الأدوات التي يشغّلها make عبر go run pkg@version تستخدم
أيضًا سلسلة الأدوات هذه. يتم تجاهل توجيهة toolchain في go.mod؛ لا تضف واحدة.
لاستخدام Go المثبّت بدلًا من ذلك، شغّل make <target> GOTOOLCHAIN=local.
عند ترقية Go، حدّث توجيهة go وجميع مراجع الإصدار المقابلة
في .gitlab-ci.yml و.ci/image/Dockerfile و.github/workflows/check.yaml وملفات
Dockerfiles. حدّث صورة مُنشئ CI لنظام Linux والبصمة (digest) في .ci/linux.gitlab-ci.yml
لتتطابق؛ إذ يحدد golangVersion الخاص بها عائلة صورة الإصدار الرئيسي/الفرعي. على macOS
وWindows، لا يكلّف عدم التطابق سوى تنزيل سلسلة أدوات. تفشل عمليات البناء التي تستخدم GOTOOLCHAIN=local
إذا كان Go الخاص بها أقدم من go.mod، وتستخدم Go الخاص بها إذا كان أحدث.
البناء
لبناء cloudflared محليًا شغّل make cloudflared
الاختبار
لتشغيل الاختبارات محليًا شغّل make test
فحص الشيفرة (Linting)
لتنسيق الشيفرة والحفاظ على جودة شيفرة جيدة استخدم make fmt وmake lint
المحاكيات (Mocks)
بعد إجراء تغييرات على الواجهات قد تحتاج إلى إعادة إنشاء المحاكيات، لذا شغّل make mocks
خطافات Git
لتجنّب أخطاء CI، يمكنك تثبيت خطافات pre-push التي تشغّل فحص الشيفرة والاختبارات قبل كل دفع:
make install-hooks
سيقوم هذا بتهيئة git لاستخدام الخطافات (hooks) الموجودة في .githooks/ التي تشغّل make fmt-check lint test قبل كل عملية push.