Chute Dashboard

Chute Dashboard تطبيق macOS مجاني يتصل بنسخة عاملة من Chute — Chute iOS عبر Wi-Fi أو كابل USB، أو Chute Mac على الجهاز نفسه — ويعرض ما تفعله تلك النسخة: كل اتصال مع القاعدة والسياسة اللتين حسمتاه، والطلب والاستجابة مفكوكَي التشفير للمضيفين المشمولين بـفك تشفير HTTPS، وإجابات DNS، وجلسات UDP. ويتيح لك أيضاً تشكيل حركة المرور وأنت تراقبها: قائمة مضيفي MitM وكل عائلة من قواعد إعادة الكتابة والمحاكاة قابلة للتحرير مباشرة.

هذه ليست وحدة تحكم الويب. فوحدة التحكم تقدّمها النواة نفسها وتُفتح في متصفّح؛ أما Dashboard فتطبيق مستقل يخاطب النواة عبر قناة التحكم الثنائية، ولذلك يحتاج على الجهاز إلى external-controller-access لا إلى external-http-controller. يتداخل الاثنان، ولكلٍّ منهما ما ليس عند الآخر — انظر ما لا يصل إليه Dashboard.

واجهة Dashboard مترجمة إلى اللغات نفسها التي كُتب بها هذا الدليل باستثناء العربية؛ على نظام عربي تظهر بالإنجليزية.

السماح لـ Dashboard بالاتصال

لا شيء يستمع قبل أن يأذن الجهاز.

Chute iOS — في محرر الإعدادات افتح External Controller ← External Controller Access:

  1. فعّل Allow Chute Dashboard/Chute CLI to Connect.
  2. اضبط Port و Password. لا يجوز أن تكون كلمة المرور فارغة، ويجب أن تكون من اختيارك: المستمع الذي يمكن الوصول إليه من الشبكة يرفض البدء بكلمة مرور فارغة أو افتراضية.
  3. اترك Allow Access From Wi-Fi مطفأً ما لم تحتج إليه. الإطفاء هو الافتراضي ويعني أن المستمع يبقى على الهاتف نفسه — كابل USB يصل إليه، أما الأجهزة الأخرى على Wi-Fi فلا. أما التشغيل فيعني أن أي شخص على الشبكة يعرف كلمة المرور يستطيع قراءة كل ما رآه هذا التشغيل.
  4. احفظ، ثم ابدأ النفق (أو أعد تشغيله). تعرض لوحة التحكم الآن External Access Port: <port> — هذا السطر هو تأكيد أن المستمع يعمل.

Chute Mac — القيم الثلاث نفسها تُكتب في [General]:

[General]
external-controller-access = password@127.0.0.1:6170

127.0.0.1 يحصره في الـ Mac الذي تجلس أمامه، وهو ما يحتاجه Dashboard يعمل على الـ Mac نفسه؛ أما عنوان الشبكة المحلية أو 0.0.0.0 فيفتحه للأجهزة الأخرى. في قسم General من نافذة الإعدادات حقول للمفتاح نفسه.

الاتصال

يفتح Dashboard بنافذة Chute New Dashboard؛ ولكل اتصال نافذته، فيمكن فتح عدة أجهزة في آن واحد. طريقتان للدخول:

الحقول متى
Remote Host و Port و Password عنوان Wi-Fi للجهاز (iPhone: الإعدادات ← Wi-Fi ← ⓘ)، أو 127.0.0.1 لـ Chute Mac على هذا الجهاز. يتطلب تشغيل Allow Access From Wi-Fi على الهاتف.
USB Port و Password iPhone موصول بكابل ويثق بهذا الـ Mac. أدخل المنفذ نفسه الذي ضبطته — يعثر Dashboard على قناة الكابل بنفسه. يعمل مع إطفاء Allow Access From Wi-Fi، ويُظهر حركة الشبكة الخلوية أيضاً، إذ لا يلزم أن يكون الهاتف على Wi-Fi أصلاً.

الأجهزة التي اتصلت بها تُحفظ تحت Machine: للمرة القادمة.

إن كانت كلمة المرور خاطئة تقول النافذة Password does not match. وإن اختفى الجهاز — توقف النفق، أو انتُزع الكابل، أو غيّر الهاتف شبكته — تُبلّغ نافذة Dashboard Connection Closed وتعرض Reconnect؛ لا إعادة اتصال تلقائية.

النافذة

يبدّل شريط الأدوات بين خمس طرق عرض — Active و Recent و DNS و UDP و MitM — ويُظهر Filter شريط التصفية أو يخفيه. اللوحة في الأسفل يساراً هي سرعة الرفع والتنزيل الحيّة؛ انقرها لبسط الرسم البياني.

في طريقتي العرض Active و Recent يحمل شريط الأدوات أيضاً مفتاحين يعملان على النواة العاملة، تماماً كمفاتيح التطبيقات:

  • Record TrafficDisable Traffic Recorder: يشغّل التقاط أجسام الطلبات والاستجابات (الإعداد replica). بدونه تظهر الصفوف بمعلومات توجيهها، لكن تبويبات البيانات تبقى فارغة.
  • Enable MitM (N rules)Disable MitM (N rules): يشغّل فك تشفير HTTPS للمضيفين الـ N في قائمة مضيفي MitM. لا يفعل المفتاح شيئاً مفيداً قبل أن يكون على الجهاز CA موثوق ومضيف واحد على الأقل — انظر صفحة فك تشفير HTTPS.

لا يعدّل أيٌّ من المفتاحين ملف الإعداد؛ وإعادة التشغيل تعيد ما يقوله الملف.

يجمّع الشريط الجانبي الاتصالات حسب العميل: All Clients، ثم Local لعملاء الجهاز نفسه و Remote للأجهزة الأخرى التي تستخدم هذا الـ Chute بروكسياً. اختيار أحدها يحصر كل قائمة فيه. وحين يكون الجهاز Chute Mac، فالعملاء المحليون هم التطبيقات بالاسم والأيقونة، وفي قائمة السياق Show in Finder.

Active و Recent

Active هو المفتوح الآن؛ و Recent هو سجل الجهاز، الأحدث أولاً، يُقرأ من سجلات التشغيل. يتشارك الاثنان مجموعة أعمدة واحدة:

العمود
ID رقم الاتصال في النواة — الرقم نفسه الذي تعرضه وحدة التحكم والتطبيقات
Date، Duration متى بدأ، وكم يستمر أو استمر
Client العملية (Chute Mac) أو العنوان المحلي
Method، Server، Status سطر الطلب والجواب، مستخرجان من الطلب الملتقط
Policy السياسة التي اختارتها القاعدة
Upload، Download البايتات في كل اتجاه
Flags ما فعله Chute بالاتصال — انظر المفتاح أدناه

عمود Flags أسرع طريقة لمعرفة ما إذا كانت قاعدة كتبتها تُطبَّق:

العلامة المعنى
M مفكوك التشفير (اعترضه MitM)
H عُدّلت ترويسة
B عُدّل جسم
R عملت قاعدة إعادة كتابة
K أجابت محاكاة Map Local بدلاً من الخادم

يحتفظ Recent بما يصل إلى 5000 صف؛ Load Older في أسفل القائمة يجلب الصفحة التالية من الجهاز، والقائمة تحدّث نفسها كل بضع ثوانٍ. وحين تكون القائمة النشطة أطول مما تحمله حزمة تحكم واحدة، تقول ملاحظة تحت الجدول إن النواة اقتطعتها — الصفوف موجودة على الجهاز، وسيعرضها Recent متى أُغلقت.

النقر بالزر الأيمن على صف يعرض Copy curl Command و Export Selected as HAR… / CSV… و Export All as HAR… / CSV…؛ ويعرض الصف النشط أيضاً Kill Connection الذي يغلقه على الجهاز.

ملاحظة: الصف اتصال لا طلب. اتصال keep-alive حمل عدة طلبات يبقى صفاً واحداً، والبيانات الملتقطة تحوي تلك الرسائل كلها متتالية؛ والترويسات المعروضة هي لأحد تلك الطلبات. لذلك يُنتج متصفّح يفتح صفحة صفوفاً أقل من عدد موارد الصفحة.

شريط التصفية

يضيّق شريط التصفية ما يُعرض. لا يغيّر ما يسجّله الجهاز — لذلك استخدم [Replica] على الجهاز.

عنصر التحكم الخيارات
Filter Host/URL… نص يُطابَق مع المضيف والرابط
Method GET، POST، PUT، DELETE، PATCH، HEAD، OPTIONS، CONNECT
Status 1xx – 5xx
Traffic Active، Completed، Suspend
Type JSON، HTML، XML، Image، Text، Binary — من نوع محتوى الاستجابة
Duration < 100ms، 100ms–1s، 1s–5s، > 5s
Size < 1 KB، 1–100 KB، 100 KB–1 MB، > 1 MB
MitM Only الاتصالات مفكوكة التشفير فقط
Modified الاتصالات التي غيّرتها قاعدة — أيٌّ من H و B و R و K

Clear Filters يعيد كل شيء.

تفاصيل الاتصال

افتح صفاً لنافذة تفاصيله. التبويبات من اليسار إلى اليمين:

General — ما تعرضه القائمة، مبسوطاً: سطر الطلب ورمز الحالة؛ ووضع الخروج والسياسة والقاعدة المطابِقة؛ وحجم البيانات وذروة السرعة؛ والعنوانان المحلي والبعيد؛ ووقت البدء؛ وحالة SSL/MitM (Intercepted أو Header Modified أو Body Modified أو Mocked)؛ و Rules Fired — كل قاعدة إعادة كتابة أو محاكاة غيّرت هذا الاتصال، منقولة بنص القاعدة نفسها. القاعدة التي لا تظهر هنا لم تمسّ هذا الاتصال.

Timing — فيمَ صُرف إعداد الاتصال، كما قاسته النواة:

السطر يُحسب من ← إلى
Proxy Ready Cost وصول اتصال العميل ← جاهزية Chute لمعالجته
DNS Resolve ← تحليل الاسم (صفر حين لا تحتاج القاعدة إلى عنوان)
Rule Cost ← حسم جدول القواعد
Remote Ready Cost ← اتصال المخرج المختار وجاهزيته
Active كل ما بعد ذلك حتى إغلاق الاتصال

الطلب البطيء يكون بطيئاً غالباً في سطر واحد بالضبط، وأيّ سطر هو يدلّ على موضع البحث: DNS في قسم DNS، و Remote Ready في السياسة أو الخادم خلفها، و Active في التطبيق نفسه.

Req Hdr / Resp Hdr — الترويسات جدولاً، مع Query Parameters و Cookies مفصولةً للطلب و Cookies للاستجابة. الترويسة التي عدّلتها قاعدة مميّزة. Copy Selected ينسخ الصفوف المحددة.

Req Data / Resp Data — الجسم الملتقط بصيغة Hex أو Text أو JSON (شجرة قابلة للبسط مع بحث) أو Image (Fit / Actual Size)؛ وأجسام multipart تُقسَّم إلى أجزائها. Export as bin يحفظ البايتات الخام. لا توجد البيانات إلا إذا كان التسجيل مفعّلاً حين جرى الاتصال، ولمضيفين تسمح بهم مرشّحات [Replica].

ملاحظة: تُعرض الأجسام كما التُقطت. الاستجابة المضغوطة — Content-Encoding: gzip — لا تُفكّ هنا، فعرضها في Text و JSON ضجيج؛ أما عرض Hex و Export as bin فيعطيانك البايتات لفكّها في مكان آخر. يرفض الجهاز تسليم جسم يتجاوز 2 MiB، ويعرض Hex أول 1 MiB.

DNS و UDP

DNS هو مخبأ محلِّل الجهاز: كل نطاق مع العناوين التي حُلّ إليها، والخادم الذي أجاب أولاً (يسأل Chute كل الخوادم المضبوطة معاً — انظر DNS)، و TTL ونوع السجل. الزر الأيمن يعرض Copy Domain و Copy IPs و Copy DNS Server.

UDP يسرد جلسات UDP — المضيف والخادم والسياسة والحالة. لا أجسام لـ UDP.

أدوات MitM

تدير طريقة العرض MitM عائلات القواعد الخمس على الجهاز في خمس لوحات: MitM Rules و Header Rewrite و Body Rewrite و Map Local و Map Remote. ما يصحّ عليها جميعاً:

  • القائمة هي نسخة القواعد لدى النواة العاملة، وتبدأ بما أعلنه ملف الإعداد.
  • إضافة قاعدة ترسلها إلى الجهاز الذي يحلّلها كما يحلّل سطر إعداد؛ والسطر الذي لا يُحلَّل يُرفض بخطأ ولا يُخزَّن.
  • التغييرات تعيش في النواة العاملة فقط. لا تُكتب في ملف الإعداد، وإعادة التحميل أو التشغيل تعيد ما يقوله الملف. استخدم اللوحات لإيجاد القاعدة التي تعمل، ثم اكتبها في الإعداد.
  • هل تُطبَّق القاعدة؟ يظهر ذلك في عمود Flags بالقائمة (R، K) وفي Rules Fired بنافذة التفاصيل.

MitM Rules — نمط مضيف واحد لكل قاعدة، host[:port][/path]، مع البادئة - للاستثناء: *.google.com، api.example.com:8443، api.example.com/v2/*، -*.apple.com. القواعد النحوية نفسها لمفتاح hostname في صفحة فك تشفير HTTPS. والعدد على مفتاح MitM في شريط الأدوات هو طول هذه القائمة.

Header Rewrite — نموذج: URL Regex، و Request أو Response، و Add / Replace / Delete، و Header Name، و Header Value. يركّب Dashboard سطر الإعداد لك؛ والقواعد النحوية في صفحة إعادة كتابة الترويسات.

Body Rewrite — سطر إعداد واحد يُكتب كما تكتبه في الملف: url-regex type pattern replacement، والنوع response أو request أو jsonpath-response أو jsonpath-request. انظر إعادة كتابة المحتوى.

Map LocalURL Regex، و File Path (Browse…)، و Response Headers اختيارية، Name: Value واحد في كل سطر.

ملاحظة: مسار الملف يقرؤه الجهاز الذي يشغّل Chute وقت الطلب. المسار على الـ Mac له معنى حين يتصل Dashboard بـ Chute Mac على الجهاز نفسه، ولا معنى له حين يتصل بـ iPhone — فلا /Users/… على الهاتف. للجهاز البعيد ضع المحتوى مضمَّناً بصيغة base64= للقاعدة (انظر استجابة وهمية) عبر محرر الجهاز نفسه أو وحدة تحكم الويب، أو قدّم الملف من رابط واستخدم Map Remote.

Map RemoteURL Regex و Target و Type: header يعيد كتابة الطلب في مكانه (Map Remote عند Surge)، و 302 و 307 يعيدان توجيه العميل، و reject و reject-200 و reject-img و reject-dict تجيب دون الاتصال بالخادم. انظر إعادة كتابة الرابط.

التصدير

  • HAR — الزر الأيمن على القائمة: الصفوف المحددة أو كلها، ملف HAR 1.2 تفتحه في أدوات مطوّري المتصفّح (Network ← استيراد) أو Charles أو Proxyman. مُدخل لكل صف؛ وتُضمَّن الأجسام إن كان التسجيل مفعّلاً.
  • CSV — أعمدة القائمة لجدول بيانات.
  • Copy curl Command — استدعاء curl يكرّر الطلب من الـ Mac بترويساته.
  • Export as bin — جسم واحد كما التُقط.

يبني Dashboard ملف HAR مما جلبه. وتستطيع النواة بناء واحد بنفسها — بالقاعدة المطابِقة والسياسة وإعادات الكتابة التي عملت في كائن _kl لكل مُدخل، وبأزمنة إرسال واستقبال مأخوذة من الالتقاط — عبر Export HAR (تصدير HAR) في وحدة التحكم أو GET /api/connections/export?format=har.

ما لا يصل إليه Dashboard

يخاطب Dashboard قناة التحكم الثنائية للنواة، وبعض ما تستطيعه النواة موجود فقط في واجهة التحكم HTTP. لهذه استخدم وحدة تحكم الويب أو الواجهة البرمجية:

  • حزمة التشخيص والصحة وعدّادات الرفض والأحداث؛
  • مجاميع الإصابات لكل قاعدة في صفحة Rules بوحدة التحكم، والجواب الذي تعطيه: هل عملت هذه القاعدة يوماً؛
  • ملف HAR الذي تبنيه النواة نفسها، أعلاه؛
  • السجل.

وأمران آخران يجدر بك معرفتهما قبل الاعتماد عليه:

  • Chute Android لا يقدّم القناة الثنائية، فلا يستطيع Dashboard الاتصال به. لوحة Android البعيدة ووحدة تحكم الويب تغطّيان المجال نفسه.
  • على iPhone و Apple TV، فك تشفير HTTPS والتقاط الأجسام ميزتان مرخّصتان. بلا ترخيص يتصل Dashboard ويعرض كل اتصال بقاعدته وسياسته، لكن صفوف HTTPS تبقى أنفاق CONNECT معتمة، وتبويبات البيانات تبقى فارغة، ومفتاح MitM بلا أثر. انظر الترخيص والتفعيل.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-01 12:22:57

هذه الصفحة ترجمة للنسخة الإنجليزية. في حال وجود اختلاف، يُعتمد على النسخة الإنجليزية.

ملاحظة: التطبيق لا يدعم اللغة العربية حاليًا.

results matching ""

    No results matching ""