بديل ngrok المفتوح المصدر الذي بدأ المطورون بالانتقال إليه (Zrok)

BBetter Stack
Internet TechnologySmall Business/StartupsComputing/Software

Transcript

00:00:00في عالم مثالي، يجب أن تكون مشاركة المستضيفات المحلية (localhosts) سهلة، ولكن بطريقة ما تتحول إلى
00:00:05معضلة كبيرة.
00:00:06تفتح ngrok، فتصطدم بالحدود، وتحصل على رابط عشوائي، والآن ما كان ينبغي أن يستغرق 10 ثوانٍ فقط
00:00:11تسبب في تعطل كل شيء.
00:00:12أو الأسوأ من ذلك، أنك تريد مشاركة شيء ما مع شخص واحد ولكنك لا تريده أن يصبح
00:00:16عاماً.
00:00:17هذا هو zrock.
00:00:18إنه بديل مفتوح المصدر لـ ngrok مع خاصية "انعدام الثقة" المبنية على OpenZiti، والآن المزيد
00:00:24من المطورين ينتقلون إليه لأنه يعالج الجزء المزعج حقاً في عملية النفق (tunneling).
00:00:33إذاً، ما هو zrock؟
00:00:34بشكل أساسي، يتيح لك مشاركة تطبيقك المحلي، أو ملفاتك، أو حتى خدمات TCP و UDP بشكل علني
00:00:40أو خاص دون فتح منافذ، أو العبث بجهاز التوجيه، أو الحاجة إلى عنوان IP عام.
00:00:45وكل شيء مشفر من الطرف إلى الطرف، لذا الفكرة هي أنه يمكنك عرض ما تحتاجه فقط دون
00:00:50كشف أكثر مما تحتاجه بالفعل.
00:00:52إنه مجاني، وقابل للاستضافة الذاتية، ولأنه مبني على شبكة "انعدام الثقة"، فإن بياناتك
00:00:58لا تلمس الإنترنت العام إلا إذا أردت ذلك.
00:01:01لكنه أيضاً أكثر سلاسة، وهذا ما يعجبني.
00:01:03أشياء مثل النطاقات المخصصة، وأداء أفضل، وواجهة مستخدم جديدة.
00:01:07لكن لا يهم أي من ذلك إذا لم يكن سريعاً، لذا دعوني أريكم.
00:01:10إذا كنت تستمتع بالأدوات مفتوحة المصدر ونصائح البرمجة لتسريع سير عملك، فتأكد من الاشتراك
00:01:15في قناة Better Stack.
00:01:16لدينا فيديوهات تصدر طوال الوقت.
00:01:18حسناً، إعداد نظيف، لدي تطبيق Next.js بسيط يعمل على localhost.
00:01:23لا شيء معقد، مجرد صفحة افتراضية بسيطة.
00:01:26لذا قد تتوقع أن يستغرق هذا عدة خطوات، أليس كذلك؟
00:01:30منافذ، إعدادات، وربما بعض التجهيزات، ولكن شاهد هذا.
00:01:34أولاً أتأكد من تفعيل بيئة zrock الخاصة بي.
00:01:37هذا إعداد لمرة واحدة باستخدام أمر "zrock enable".
00:01:40بعد ذلك يمكنني تشغيل أمر واحد هنا.
00:01:44هذا كل ما في الأمر حقاً.
00:01:45لا توجد ملفات إعداد، ولا تجهيزات إضافية، وبشكل فوري تحصل على رابط https عام.
00:01:51يمكنني فتحه هنا، ونعم، إنه يعمل ببساطة.
00:01:55التطبيق متاح الآن على الإنترنت.
00:01:57لا يوجد توجيه للمنافذ (port forwarding).
00:01:58لا توجد تغييرات في جدار الحماية.
00:02:00في هذه المرحلة أصبح عاماً، ولكن هذا هو المكان الذي يمكن أن تبدأ فيه الأمور بالسير بشكل خاطئ.
00:02:05لذا لنوقف ذلك.
00:02:06Control C. الآن لنقم بالنسخة التي يريدها معظم المطورين حقاً.
00:02:10مشاركة خاصة، لنفس التطبيق، على نفس الجهاز، ولكن الآن بسلوك مختلف تماماً.
00:02:17بدلاً من رابط عام، نحصل على رمز (token)، وهذا هو الفرق الجوهري هنا، لأنه
00:02:23الآن الدخول ليس مفتوحاً.
00:02:25بل يتم منحه فعلياً باستخدام هذا الرمز.
00:02:28لذا يمكن لأي شخص أثق به تشغيل "zrock access private" مع الرمز الذي أعطيته إياه، وعندها
00:02:34فقط يمكنهم الوصول إليه.
00:02:36لا توجد برامج بوت تفحص نقطة النهاية الخاصة بك، ولا زيارات عشوائية تضرب تطبيقك، لا شيء من هذا القبيل.
00:02:42إنه مجرد وصول محكم.
00:02:44لذا بدلاً من كشف تطبيقك، فقد سمحت بالوصول إليه بشكل انتقائي بناءً على من تريد،
00:02:49وهذا هو الفرق الكبير بين الاثنين، والأمر لا يقتصر على التطبيقات فقط.
00:02:53نفس الفكرة تعمل مع الملفات والمجلدات أيضاً.
00:02:56يمكنني مشاركة أدلة كاملة كقرص قابل للتصفح باستخدام وضع الخلفية "drive".
00:03:02الأمر ليس مجرد إنشاء نفق، بل هو مشاركة محكمة.
00:03:04هذا هو ما يمنحه لنا zrock حقاً.
00:03:06الآن، لماذا يهم كل هذا؟
00:03:08لأن معظم أدوات الأنفاق تجبرك على تقديم تنازلات.
00:03:12ngrok مصقول، لكن الخطة المجانية فيه محدودة.
00:03:15أنفاق Cloudflare رائعة، لكنها تأتي مع إعدادات وخطوات إضافية.
00:03:19Tailscale ممتاز، لكنه قد يبدو مبالغاً فيه إذا كنت تريد مجرد مشاركة سريعة.
00:03:24لذا ينتهي بك الأمر بالاختيار بين السرعة والخصوصية والتحكم، وهذه هي المشكلة التي يحلها zrock.
00:03:29لا يوجد إعداد لجدار الحماية، رائع.
00:03:32لا توجد مشاكل في الـ NAT، حسناً هذا جيد.
00:03:35المشاركة الخاصة هي في الواقع خاصة، وهذا ما نريده هنا.
00:03:38دعم UDP لأشياء مثل خوادم الألعاب، و VOIP، وإنترنت الأشياء، ومشاركة ملفات مدمجة.
00:03:44هذا هو عمل المطورين اليومي.
00:03:46اختبار الـ Webhook، أليس كذلك؟
00:03:48كل هذه الأشياء جيدة حقاً ويمكننا استخدام zrock من أجلها.
00:03:52لذا بسرعة، دعونا نقارن بين zrock و ngrok.
00:03:54ngrok يبدو كمنتج مصقول، لأنه في الحقيقة كذلك.
00:03:58بينما zrock يبدو كأداة تمتلكها أنت بالفعل.
00:04:00هذا هو الفرق الرئيسي.
00:04:02ngrok مملوك لشركة، و zrock مفتوح المصدر.
00:04:05إنه قابل للاستضافة الذاتية.
00:04:06إذا كنت تهتم بالتحكم والخصوصية، فهذا أمر ضخم.
00:04:10ثم هناك المشاركة الخاصة.
00:04:12في ngrok، هي أقرب لكونها إضافة.
00:04:15ليست مدمجة بشكل أساسي.
00:04:16في zrock، هي جزء من الفكرة الجوهرية لكل شيء.
00:04:19البروتوكولات تهم أيضاً.
00:04:22ngrok يركز في الغالب على HTTP و TCP.
00:04:26بينما يدعم zrock كليهما مع دعم UDP أيضاً.
00:04:29لأكون منصفاً، لا يزال لدى ngrok ميزة إعادة تشغيل الطلبات وفحصها.
00:04:35بينما لا يملكها zrock.
00:04:36وقد يهم هذا الأمر في بعض الأحيان.
00:04:37zrock جيد.
00:04:38لكنه ليس مثالياً.
00:04:39الناس يحبونه لأنه يبدو بسيطاً.
00:04:41والخصوصية تأتي أولاً.
00:04:43هذا شيء عظيم.
00:04:44وإذا قمت باستضافته ذاتياً، فستحصل على تحكم كامل في كل شيء.
00:04:47ومع ذلك لا يزال يأتي مع تنازلات، مثل أي أداة مفتوحة المصدر.
00:04:50هناك منحنى تعليمي إذا تعمقت فيه، خاصة في جانب الاستضافة الذاتية.
00:04:55لا يوجد فحص طلبات مدمج مثل ngrok.
00:04:58واعتماداً على إعداداتك، قد تلاحظ القليل من التأخير (latency).
00:05:01ولكن حتى مع هذه السلبيات، فهو لا يزال الأنسب لمعظم المطورين.
00:05:05لذا، هل zrock يستحق العناء؟
00:05:06حسناً، هذا هو السؤال هنا.
00:05:08إذا كان ألمك يكمن في مشاركة شيء ما بسرعة، فنعم، إنه يستحق بالتأكيد.
00:05:12خاصة إذا لم نضطر للتخلي عن التحكم أو الخصوصية.
00:05:15zrock يحل ذلك.
00:05:16إذا كنت تستمتع بأدوات البرمجة مفتوحة المصدر والنصائح مثل هذه، فتأكد من الاشتراك في
00:05:20قناة Better Stack.
00:05:21سنراكم في فيديو آخر.

Key Takeaway

يعالج zrock قيود ngrok عبر توفير أداة مفتوحة المصدر وقابلة للاستضافة الذاتية تتيح مشاركة الخدمات المحلية وملفات النظام بشكل خاص وآمن باستخدام بروتوكولات UDP و TCP دون كشف البيانات للإنترنت العام.

Highlights

يوفر zrock نظام تشغيل مفتوح المصدر لإنشاء أنفاق آمنة لمشاركة المضيف المحلي دون الحاجة لفتح منافذ في جهاز التوجيه أو استخدام عناوين IP عامة.

يعتمد المشروع على شبكة OpenZiti التي تدعم مبدأ انعدام الثقة (Zero Trust) وتشفير البيانات من الطرف إلى الطرف لضمان الخصوصية الكاملة.

يتيح وضع المشاركة الخاصة منح الوصول لمستخدمين محددين فقط عبر رمز فريد (Token) باستخدام الأمر zrock access private لمنع مسح البوتات للروابط.

يدعم zrock بروتوكولات TCP و UDP و HTTP مما يجعله مناسباً لخوادم الألعاب وتطبيقات إنترنت الأشياء بخلاف المنافسين الذين يركزون على الويب فقط.

يسمح وضع drive بمشاركة أدلة الملفات والمجلدات بالكامل كأقراص قابلة للتصفح عبر الإنترنت بشكل فوري ومحكم.

تتطلب عملية التفعيل تشغيل أمر واحد فقط هو zrock enable لتهيئة البيئة قبل البدء في إنشاء الأنفاق العامة أو الخاصة.

Timeline

مفهوم zrock ومبدأ انعدام الثقة

  • يواجه المطورون تعقيدات في مشاركة المضيف المحلي بسبب الروابط العشوائية والقيود الأمنية في الأدوات التقليدية.
  • يعمل zrock كبديل مفتوح المصدر مبني على شبكة OpenZiti لتعزيز الخصوصية.
  • تظل البيانات معزولة عن الإنترنت العام بفضل تقنية انعدام الثقة ما لم يقرر المستخدم غير ذلك.

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

آلية الإعداد والمشاركة العامة

  • يتم تفعيل البيئة لمرة واحدة باستخدام أمر zrock enable دون الحاجة لملفات إعداد معقدة.
  • يوفر النظام رابط https عام بشكل فوري لمشاركة تطبيقات Next.js أو أي خدمات محلية أخرى.
  • يعمل الرابط دون الحاجة لتوجيه المنافذ (Port Forwarding) أو تعديل إعدادات جدار الحماية.

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

المشاركة الخاصة والتحكم في الوصول

  • تعتمد المشاركة الخاصة على إصدار رموز (Tokens) بدلاً من توليد روابط عامة.
  • يمنع هذا الوضع برامج البوت والزيارات العشوائية من الوصول إلى نقطة النهاية الخاصة بالتطبيق.
  • يمكن مشاركة المجلدات كأقراص قابلة للتصفح باستخدام وضع الخلفية drive.

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

مقارنة zrock مع الأدوات المنافسة والتحديات

  • تتميز أدوات مثل Cloudflare و Tailscale بقوتها لكنها تتطلب إعدادات إضافية أو قد تكون مبالغاً فيها للمهام السريعة.
  • يتفوق zrock بدعمه لبروتوكول UDP المفقود في أغلب خدمات الأنفاق الأخرى.
  • يفتقر zrock حالياً لميزة فحص وإعادة تشغيل الطلبات المتوفرة في ngrok.

بينما يعتبر ngrok منتجاً تجارياً مصقولاً، يركز zrock على منح المستخدم السيطرة الكاملة من خلال المصدر المفتوح. يدعم zrock حالات استخدام متنوعة مثل اختبار الـ Webhooks وخوادم الألعاب وخدمات VOIP. ومع ذلك، توجد بعض التنازلات مثل منحنى التعلم عند الاستضافة الذاتية واحتمالية وجود تأخير بسيط في الاستجابة اعتماداً على الإعدادات المستخدمة.

Community Posts

View all posts