التنقيح على Mac
على جهاز Mac يكون Chute والحركة التي تريد فحصها على الجهاز نفسه، فمعظم ما يستهلك خطوات في دليل iPhone — كابل ومستمع وكلمة مرور — غير لازم هنا. ويحلّ محلّه سؤال آخر: هل تصل الحركة إلى Chute أصلاً؟ لأن التطبيق على macOS يستطيع ببساطة أن يتجاهل البروكسي.
1. اجعل الحركة تمرّ عبر Chute
آليتان مستقلتان تماماً، والقائمة تعرض كلتيهما:
- بروكسي النظام (System Proxy) — المفتاح في أعلى القائمة. يسجّل Chute بروكسي HTTP/SOCKS للنظام. التطبيقات التي تقرأ إعدادات بروكسي النظام (المتصفحات ومعظم التطبيقات الرسومية) تمرّ عبر Chute، والتي لا تقرؤها لا تتأثر.
- الوضع المحسن (Enhanced Mode) (⌘E) — يلتقط الحركة على مستوى طبقة الشبكة، فيصبح رأي التطبيق في البروكسي بلا أهمية. هذا ما تريده حين لا يدعم التطبيق البروكسي إطلاقاً. لمسار الموافقة ونوعَي التنفيذ انظر الوضع المحسن.
أدوات الطرفية هي المفاجأة المعتادة: curl وgit وnpm وأمثالها تقرأ HTTP_PROXY/HTTPS_PROXY من البيئة، لا من إعدادات النظام. ونسخ أمر تصدير Shell (Copy Shell Export Command) (⌘C) في القائمة يضع السطر الصحيح في الحافظة —
export HTTPS_PROXY=http://127.0.0.1:8118;export HTTP_PROXY=http://127.0.0.1:8118;export NO_PROXY=127.0.0.1,localhost,.example.com
— بمنفذ المستمع HTTP الحقيقي لديك، وNO_PROXY مبني من قائمة skip-proxy، فتتجاوز أدوات سطر الأوامر ما يتجاوزه بروكسي النظام بالضبط. ألصقه في الشل (shell) الذي تختبر منه؛ وهو يسري على ذلك الشل وحده.
ما ينبغي أن تراه: تبويب Traffic في النافذة الرئيسية يمتلئ بالصفوف بينما تستخدم التطبيق. (النافذة الرئيسية هي Open Dashboard... (⌘,) في القائمة؛ وعلى Mac كانت عليه إعدادات قبل الواجهة الحالية، فعّل أولاً Use New Main UI في القائمة نفسها.) غياب الصفوف يعني أن الحركة لم تصل إلى Chute — ارجع إلى هذه الخطوة بدل البحث عن مشكلة في فك التشفير.
2. قراءة تبويب Traffic
يعرض Traffic الاتصالات الجارية مع حقل بحث وعدّاد (N active). ويبدّل Show columns ▾ التخطيط:
- Double-row (الافتراضي) — سطران لكل اتصال، مريح للتصفح.
- Wide table — صف واحد لكل اتصال عبر كل الأعمدة: Host و Process و Rule و Policy و Proto و Upload و Download و Totals و State. والنقر على العنوان يرتّب.
- Group by app — الاتصالات مجمّعة تحت التطبيق الذي فتحها، باسمه وأيقونته. وهذه أسرع طريقة للإجابة عن «مع من تتحدث هذه العملية».
النقر بالزر الأيمن على صف يعطي Show Details وCopy Host وCopy Details وFilter Logs (ينتقل إلى تبويب Log مُرشَّحاً على هذا الاتصال) وClose Connection.
ويفتح Show Details نافذة فيها مضيف الاتصال وعمليته وبروتوكوله والطرف البعيد والقاعدة والسياسة وإعادات الكتابة والرفع والتنزيل والحالة — كل ما يخصّ كيف جرى توجيهه.
لا يعرض تبويب Traffic محتويات الطلبات والاستجابات. تلك مهمة زر الطلبات والسجل (Requests & History) في نافذة التفاصيل: فهو يفتح وحدة تحكم الويب التي تعرضها. وما يُفتح هو صفحة وحدة التحكم الرئيسية لا ذلك الاتصال بعينه.
3. اختبار قاعدة دون إرسال طلب
في تبويب Rules زر Test Rule.... اكتب رابطاً أو نطاقاً مجرداً واضغط Test، فيجيب Chute بالمضيف والمنفذ اللذين حلّلهما، ونتيجة DNS، والقاعدة المطابِقة، والسياسة التي اختارتها تلك القاعدة، وملاحظات.
استخدمه حين يكون السؤال «لماذا ذهب هذا مباشرة» أو «أي القاعدتين تفوز» — فهو يستشير مجموعة القواعد العاملة، ولذلك يخبرك بالمناسبة إن كانت الإعدادات التي حرّرتها هي المحمّلة فعلاً. وإن بدا الجواب قديماً فأعد تحميل الإعدادات (⌘R). والسؤال نفسه عبر الواجهة البرمجية هو POST /api/rules/match.
4. تشغيل التسجيل وفك التشفير
كلاهما في القائمة، وكلاهما يعمل على المحرك العامل:
- Traffic Capture (⌘B) — يحتفظ بمحتويات الطلبات والاستجابات، أي الإعداد
replica. وهو مطفأ افتراضياً، ولا محتوى لأي شيء قبل تشغيله. - Enable MitM (⌘M) — يشغّل فك التشفير للمضيفين المدرجين في
hostnameداخل[MITM].
ويُكتب كلاهما في ملف الإعدادات — replica، وenable تحت [MITM] — فيبقيان بعد إعادة التحميل وإعادة التشغيل. أما الإعداد البعيد فلا ملف محلياً له يُكتب فيه: يغيّر المفتاح المحرك العامل مع ذلك، ويبلغ التطبيق بـ Failed to Save Configuration. وتبدّل وحدة التحكم و Dashboard والـ API الإعدادين أنفسهما دون كتابة الملف؛ وبعد تبديل كهذا يُبقي Reload Configuration (⌘R) ما ضبطته ما لم يتغير الملف من تحته — فيُعاد تطبيق replica حين تتغير قيمته هو في الملف، و[MITM] enable حين يتغير أي مفتاح في قسم [MITM] أو تُعدَّل قائمة المضيفين من وحدة التحكم أو الـ API — أما إعادة التشغيل فتبدأ دائماً من الملف.
وشهادة CA خطوة واحدة على macOS. في نافذة الإعدادات افتح MitM:
- إنشاء شهادة جديدة (Generate New Certificate) (أو استيراد شهادة من ملف PKCS#12 (Import Certificate from PKCS#12 File)).
- تثبيت الشهادة في النظام (Install the Certificate to System) — يطلب macOS كلمة مرور مسؤول ويضيفها إلى سلسلة مفاتيح النظام كجذر موثوق. ولا توجد خطوة «وثوق» منفصلة كما في iOS.
- تصدير الشهادة (Export the Certificate) يكتب نسخة
.pem، وبها تنقل الشهادة نفسها إلى هاتف أو Apple TV أو حاوية.
5. التضييق إلى عملية واحدة
من بين منصّات Apple، macOS هي التي يعرف فيها Chute أي تطبيق فتح الاتصال، وتستطيع القواعد استخدام ذلك (ويعرفه Chute Android أيضاً، باسم الحزمة):
[Rule]
PROCESS-NAME,curl,DIRECT
PROCESS-NAME,MyApp,MyProxy
انظر قاعدة العملية لـ PROCESS-NAME وPROCESS-PATH وPROCESS-NAME-REGEX. ومع Group by app في تبويب Traffic يمكنك تمرير تطبيق واحد عبر بروكسي — أو عبر محاكاة — بينما يواصل بقية الجهاز عمله كالمعتاد.
6. ما لا يعمل إلا على Mac
- مسارات الملفات في
data=ضمن قواعد الاستجابة الوهمية. يقرأ الملفَ الجهازُ الذي يشغّل Chute، وقت الطلب. وعلى Mac هذا الجهاز هو نفسه الذي تحرّر عليه، فالمسار الحقيقي يعمل، وتعديل الملف يغيّر الاستجابة التالية بلا إعادة تحميل. أما على الهاتف فالمسار نفسه لا يعني شيئاً — ولهذا يستخدم دليل iPhone صيغةbase64=. - الملفات على القرص. شرائح السجل وقاعدة بيانات الاتصالات تقع تحت
~/Chute/Share/<run id>/، وعلامة التشغيل بجوارها في~/Chute/Share/؛ انظر مواقع الملفات (macOS). ويمكنك إرفاقها بتقرير خلل مباشرة دون المرور بورقة مشاركة. والمحتويات الملتقطة هناك أيضاً، تحتDUMP/، لكن ما دام المحرك يعمل فقط: فإيقافه يحذفها، فصدّر ما تحتاجه أولاً — تصدير HAR في وحدة التحكم، أو Export as bin في Dashboard. - خدمة أجهزة أخرى. مع تشغيل
allow-wifi-accessتستطيع أجهزة أخرى على الشبكة توجيه إعدادات البروكسي لديها إلى هذا الجهاز. وتظهر حركتها عندئذ في العروض نفسها، تحت Remote في الشريط الجانبي للعملاء في Dashboard — وهكذا تفحص جهازاً لا يعمل عليه Chute إطلاقاً، بما في ذلك حاسوب Windows محمول أو تلفاز ذكي.
7. حين لا يكفي تبويب Traffic
- وحدة تحكم الويب — شريط القوائم ← فتح وحدة تحكم الويب (Open Web Console). فيها المحتويات وتصدير HAR وصفحة القواعد التي تقول أي إعادات كتابة عملت، وفحوص التشخيص. وتحتاج
external-http-controllerفي[General]. - Chute Dashboard — تطبيق مجاني منفصل. لا يحتاج على هذا الـ Mac أي إعداد إطلاقاً: فـ Open Chute Dashboard... (⌘D) في القائمة يفتحه متصلاً بهذا الـ Mac مباشرة، وفي نافذته New Dashboard يفعل Connect to Local Machine الشيء نفسه. فهذا الطريق يصل إلى المحرك عبر مقبس محلي يفتحه النفق دائماً، فلا منفذ ولا كلمة مرور تضبطهما. ولا تحتاج الطريق البعيد إلا حين يعمل Dashboard على جهاز Mac آخر — عندئذ اكتب في
[General]السطرexternal-controller-access = <password>@0.0.0.0:6170، ثم Connect to Remote Machine بعنوان هذا الـ Mac وذلك المنفذ وتلك الكلمة. ويستحق ذلك في الحالتين من أجل لوحات أدوات MitM وتصدير HAR / curl بنقرة يمنى. - تبويب Log — ارفع المستوى أولاً بـ
loglevel = verboseثم أعده بعد الانتهاء. وFilter Logs على صف اتصال يضيّق التبويب إلى ذلك الاتصال وحده.
هذه الصفحة ترجمة للنسخة الإنجليزية. في حال وجود اختلاف، يُعتمد على النسخة الإنجليزية.
ملاحظة: التطبيق لا يدعم اللغة العربية حاليًا.