التنقيح على Mac
على جهاز Mac يكون Chute والحركة التي تريد فحصها على الجهاز نفسه، فمعظم ما يستهلك خطوات في دليل iPhone — كابل ومستمع وكلمة مرور — غير لازم هنا. ويحلّ محلّه سؤال آخر: هل تصل الحركة إلى Chute أصلاً؟ لأن التطبيق على macOS يستطيع ببساطة أن يتجاهل البروكسي.
1. اجعل الحركة تمرّ عبر Chute
آليتان مستقلتان تماماً، والقائمة تعرض كلتيهما:
- بروكسي النظام — المفتاح في أعلى القائمة. يسجّل 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، فتتجاوز أدوات سطر الأوامر ما يتجاوزه بروكسي النظام بالضبط. ألصقه في الصدفة التي تختبر منها؛ وهو يسري على تلك الصدفة وحدها.
ما ينبغي أن تراه: تبويب Traffic في النافذة الرئيسية يمتلئ بالصفوف بينما تستخدم التطبيق. غياب الصفوف يعني أن الحركة لم تصل إلى Chute — ارجع إلى هذه الخطوة بدل البحث عن مشكلة في فك التشفير.
2. قراءة تبويب Traffic
يعرض Traffic الاتصالات الجارية مع حقل بحث وعدّاد (N active). ويبدّل Show columns ▾ التخطيط:
- Double-row (الافتراضي) — سطران لكل اتصال، مريح للتصفح.
- Wide table — صف واحد لكل اتصال عبر كل الأعمدة: المضيف، Process، القاعدة، السياسة، Proto، الرفع، التنزيل، Totals، الحالة. والنقر على العنوان يرتّب.
- Group by app — الاتصالات مجمّعة تحت التطبيق الذي فتحها، باسمه وأيقونته. وهذه أسرع طريقة للإجابة عن «مع من تتحدث هذه العملية».
النقر بالزر الأيمن على صف يعطي Show Details وCopy Host وCopy Details وFilter Logs (ينتقل إلى تبويب Log مُرشَّحاً على هذا الاتصال) وClose Connection.
ويفتح Show Details نافذة فيها مضيف الاتصال وعمليته وبروتوكوله والطرف البعيد والقاعدة والسياسة وإعادات الكتابة والرفع والتنزيل والحالة — كل ما يخصّ كيف جرى توجيهه.
لا يعرض تبويب Traffic أجسام الطلبات والاستجابات. تلك مهمة زر الطلبات والسجل في نافذة التفاصيل: فهو يفتح وحدة تحكم الويب التي تعرضها. وما يُفتح هو صفحة وحدة التحكم الرئيسية لا ذلك الاتصال بعينه.
3. اختبار قاعدة دون إرسال طلب
في تبويب Rules زر Test Rule.... اكتب رابطاً أو نطاقاً مجرداً واضغط Test، فيجيب Chute بالمضيف والمنفذ اللذين حلّلهما، ونتيجة DNS، والقاعدة المطابِقة، والسياسة التي اختارتها تلك القاعدة، وملاحظات.
استخدمه حين يكون السؤال «لماذا ذهب هذا مباشرة» أو «أي القاعدتين تفوز» — فهو يستشير مجموعة القواعد العاملة، ولذلك يخبرك بالمناسبة إن كانت الإعدادات التي حرّرتها هي المحمّلة فعلاً. وإن بدا الجواب قديماً فأعد تحميل الإعدادات (⌘R). والسؤال نفسه عبر الواجهة البرمجية هو POST /api/rules/match.
4. تشغيل التسجيل وفك التشفير
كلاهما في القائمة، وكلاهما يعمل على النواة العاملة:
- Traffic Capture (⌘B) — يحتفظ بأجسام الطلبات والاستجابات، أي الإعداد
replica. وهو مطفأ افتراضياً، ولا جسم لأي شيء قبل تشغيله. - Enable MitM (⌘M) — يشغّل فك التشفير للمضيفين المدرجين في
hostnameداخل[MITM].
ولا يُكتب أي منهما في ملف الإعدادات: بعد Reload Configuration أو إعادة التشغيل تكون الغلبة لـ replica و[MITM] enable في الملف.
وشهادة 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. التضييق إلى عملية واحدة
macOS هي المنصّة التي يعرف فيها Chute أي تطبيق فتح الاتصال، وتستطيع القواعد استخدام ذلك:
[Rule]
PROCESS-NAME,curl,DIRECT
PROCESS-NAME,MyApp,MyProxy
انظر قاعدة العملية لـ PROCESS-NAME وPROCESS-PATH وPROCESS-NAME-REGEX. ومع Group by app في تبويب Traffic يمكنك تمرير تطبيق واحد عبر بروكسي — أو عبر محاكاة — بينما يواصل بقية الجهاز عمله كالمعتاد.
6. ما لا يعمل إلا على Mac
- مسارات الملفات في
data=ضمن Map Local. يقرأ الملفَ الجهازُ الذي يشغّل Chute، وقت الطلب. وعلى Mac هذا الجهاز هو نفسه الذي تحرّر عليه، فالمسار الحقيقي يعمل، وتعديل الملف يغيّر الاستجابة التالية بلا إعادة تحميل. أما على الهاتف فالمسار نفسه لا يعني شيئاً — ولهذا يستخدم دليل iPhone صيغةbase64=. - الملفات على القرص. شظايا السجل وعلامة التشغيل والبيانات الملتقطة تقع تحت
~/Chute/Share/<run id>/؛ انظر مواقع الملفات (macOS). ويمكنك إرفاقها بتقرير خلل مباشرة دون المرور بورقة مشاركة. - خدمة أجهزة أخرى. مع تشغيل
allow-wifi-accessتستطيع أجهزة أخرى على الشبكة توجيه إعدادات البروكسي لديها إلى هذا الجهاز. وتظهر حركتها عندئذ في العروض نفسها، تحت Remote في الشريط الجانبي للعملاء في Dashboard — وهكذا تفحص جهازاً لا يعمل عليه Chute إطلاقاً، بما في ذلك حاسوب Windows محمول أو تلفاز ذكي.
7. حين لا يكفي تبويب Traffic
- وحدة تحكم الويب — شريط القوائم ← فتح وحدة تحكم الويب. فيها الأجسام وتصدير HAR وصفحة القواعد التي تقول أي إعادات كتابة عملت، ومجسّات التشخيص. وتحتاج
external-http-controllerفي[General]. - Chute Dashboard — تطبيق مجاني منفصل. للنواة المحلية اكتب في
[General]السطرexternal-controller-access = <كلمة المرور>@127.0.0.1:6170، ثم صِل تبويب Remote في Dashboard بـ127.0.0.1بالمنفذ وكلمة المرور نفسيهما. ويستحق ذلك من أجل لوحات أدوات MitM وتصدير HAR / curl بنقرة يمنى. - تبويب Log — ارفع المستوى أولاً بـ
loglevel = verboseثم أعده بعد الانتهاء. وFilter Logs على صف اتصال يضيّق التبويب إلى ذلك الاتصال وحده.
هذه الصفحة ترجمة للنسخة الإنجليزية. في حال وجود اختلاف، يُعتمد على النسخة الإنجليزية.
ملاحظة: التطبيق لا يدعم اللغة العربية حاليًا.