
أنشئ وصولاً آمناً عن بُعد إلى جهاز يتضمن قشرة تفاعلية (shell)، ونقل ملفات، ووكيل ويب عبر WebRTC من نظير إلى نظير بتشفير من الطرف إلى الطرف، باستخدام متصفح أو واجهة سطر أوامر (CLI) دون الحاجة إلى إعادة توجيه المنافذ أو إنشاء حسابات.
bitbang هي أداة متعددة الاستخدامات للوصول عن بُعد في صورة ملف تنفيذي ثابت واحد. من أي متصفح: وصول إلى صدفة تفاعلية ومتصفح ملفات على الجهاز البعيد. يمكنك أيضًا الوصول إلى تطبيقات الويب على شبكة ذلك الجهاز. وإلى جانب المتصفح، تقوم الأداة بإعادة توجيه منافذ TCP، ونسخ الملفات، ومشاركة الطرفية. لا تتطلب أي حساب أو إعدادات -- إنها تعمل مباشرة.

على الجهاز الذي تريد الوصول إليه:
curl -sSfL bitba.ng/install | sh
bitbang serve
serve يطبع عنوان URL. افتحه في أي متصفح فتحصل على طرفية، ومتصفح ملفات، ووكيل (proxy) إلى شبكة ذلك الجهاز -- أو يمكنك الوصول إلى الجهاز نفسه من طرفية أخرى باستخدام bitbang connect <url>، الذي يضيف إعادة توجيه المنافذ (-L) ونسخ الملفات (bitbang cp). الاتصال مشفّر من طرف إلى طرف ومباشر بين الطرفين (peer-to-peer)؛ خادم bitba.ng يعرّف الطرفين ببعضهما ثم ينسحب جانبًا.
bitbang هو ملف Go ثنائي ثابت واحد. وهو جزء من مشروع BitBang؛ وتغطي هذه الورقة البيضاء التصميم بعمق.
| ngrok | Tailscale | bitbang | |
|---|---|---|---|
| الإعداد قبل الاستخدام الأول | حساب + authtoken | حساب + تسجيل الدخول على كل جهاز | تشغيل أمر واحد |
| لمشاركة شيء ما، تشغّل | خادم ويب، بالإضافة إلى ngrok | عميلهم على كلا الجهازين | bitbang serve |
| ما يحصل عليه متصفح على الطرف البعيد | خادم الويب الذي كنت تشغّله بالفعل | لا شيء -- فهو يحتاج عميلهم | طرفية، ومتصفح ملفات، وتطبيقات ويب على الشبكة البعيدة |
| مسار البيانات | خوادمهم | P2P (مع تراجع إلى relay) | P2P (مع تراجع إلى relay) |
| مشفّر من طرف إلى طرف | ليس افتراضيًا | نعم | نعم |
الوصول إلى خدمة في المنزل
الدخول إلى جهاز
المشاركة مع شخص آخر
تتضمن المشاركة ببساطة إعطاء شخص ما عنوان URL فريدًا أو رمز QR يمنحه الوصول. يمكن تخصيص الأذونات وضبطها لتنتهي صلاحيتها خلال دقائق أو ساعات، إلخ.
التطوير والأجهزة
التقنيات
bitbangكل اتصال له طرفان: مستمع (bitbang serve، يعمل على الجهاز الذي يتم الوصول إليه) وموصّل (متصفح، أو أداة bitbang CLI، على الجهاز الذي يقوم بالوصول). عنوان URL واحد للمستمع يخدم كلا نوعي الموصّلات.
bitbang servebitbang serve # everything: shell + proxy + files + forward
bitbang serve shell # just a terminal
bitbang serve files ~/share # just a directory (-files-upload to allow uploads)
bitbang serve proxy localhost:8080 # just one web app, straight at the URL
bitbang serve proxy a.lan:80,b.lan:80 # ...or several, chosen in the browser
bitbang serve forward 127.0.0.1:22 # just TCP, for `connect -L`
bitbang serve shell files ~/share proxy nas.lan:8096 # any combination
كل منهما يطبع رمز QR وعنوان URL ورمز اقتران. يحدد الوضع ما يمكن للمستمع فعله على الإطلاق: serve shell لا يملك أي إعادة توجيه لمنحه، والمستمع المخصص لإعادة التوجيه فقط لا يبدأ صدفة أبدًا، لذا لا يوجد شيء للتصعيد إليه.
هناك إعداد افتراضي يستحق المعرفة: إعادة التوجيه والوكيل يصلان إلى أي host:port يمكن للمستمع الوصول إليه، وليس فقط الهدف الذي كان في ذهنك، لذا فإن رابطًا يُمنح لقاعدة بيانات يصل أيضًا إلى بقية تلك الشبكة. تسمية الأهداف بالكلمة تضيّق ذلك -- forward db.internal:5432 يصل إلى ذلك الهدف ولا شيء غيره.
bitbang shareserve shell يبدأ صدفة جديدة. أما share فينشر جلسة tmux قيد التشغيل بالفعل:
bitbang share # publish the current tmux session
bitbang share --read-only # publish without a control URL
bitbang share status|stop|rotate
يعود الأمر بعد النشر، لذا يعمل Ctrl-Z وbitbang share وfg
لمهمة قيد التنفيذ بالفعل. تتطلب الاستضافة tmux 3.2+ على Unix أو
WSL. يمكن لعملاء Windows الأصليين فتح عناوين URL لكن لا يمكنهم استضافة مشاركة.