Отладка сети
Chute — это прокси, но запускают его на собственных устройствах обычно не ради маршрутизации. Ради того, что теперь каждый запрос проходит через место, которое вы контролируете: можно наблюдать, что приложение отправляет на самом деле, сохранять тела и читать их потом, менять запрос или ответ на лету и заставить исправный бэкенд выглядеть сломанным, чтобы увидеть, что приложение станет с этим делать.
Справочные страницы каждого механизма находятся в других разделах руководства: Расшифровка HTTPS, Имитация ответов, Перезапись URL, Сценарии JS. Этот раздел выстраивает их в том порядке, в каком ими действительно пользуются, и говорит, что меняется от платформы к платформе.
Четыре окна в одно и то же ядро
Работающий Chute один, а взглядов на него четыре. Выбрать не то окно — обычная причина того, что чего-то «нет».
| Где работает | Тела запросов и ответов | Меняет работающее ядро | Требуется | |
|---|---|---|---|---|
| Само приложение | На устройстве | iOS — да; macOS и tvOS — нет | Только переключатели | Ничего |
| Веб-консоль | Браузер на любом устройстве | Да | Хосты MitM, все семейства перезаписи, политики, конфигурация | external-http-controller |
| Chute Dashboard | Mac | Да | Хосты MitM, все семейства перезаписи, два переключателя | external-controller-access |
| HTTP Control API | Всё, что говорит по HTTP | Да, в base64 | Всё, что может консоль | external-http-controller |
Консоль и Dashboard сильно пересекаются, но добираются до них по-разному: консоль отдаёт само ядро и открывают её в браузере, Dashboard — приложение для Mac, говорящее по двоичному каналу. Ни одно не является надмножеством другого; различия перечислены в разделе До чего Dashboard не дотягивается.
Сначала правильно выставить четыре переключателя
Почти каждое «соединение вижу, а запрос — нет» упирается в один из этих четырёх пунктов, именно в таком порядке:
- Трафик вообще доходит до Chute. Строка в представлении трафика и есть доказательство. Совсем ничего — это проблема перехвата, а не отладки, см. Устранение неполадок.
- CA установлен и является доверенным. На iOS это два отдельных шага, на macOS — один, а на tvOS ни одного из них в приложении нет, см. Установка CA-сертификата и доверие к нему.
- Хост есть в списке MitM. Chute расшифровывает объявленные хосты и больше ничего. Строка с
CONNECT, без метода и без статуса, никогда не расшифровывалась. - Запись включена.
replica = trueили переключатель (Traffic Capture на Mac, Сохранение данных на iOS и tvOS). Без него у каждой строки по-прежнему есть правило, политика и тайминги — не хватает только полезной нагрузки.[Replica]затем сужает, что именно из этого сохраняется.
Пункты 3 и 4 переключаются на ходу и из консоли, и из Dashboard, и через API, но ни один из этих способов не пишет в файл конфигурации: после перезапуска побеждает файл.
Что даёт каждая платформа
| Chute iOS | Chute Mac | Chute tvOS | |
|---|---|---|---|
| Изучение в приложении | Экран Dashboard — обзор, запрос, ответ, с телами | Вкладка Traffic — только маршрутизация, без тел | Список сессий — только маршрутизация, без тел |
| Переключить MitM в приложении | Переключатель на панели управления (нужна лицензия) | Строка меню → Enable MitM (⌘M) | На этой платформе переключателя нет |
| Переключить запись в приложении | Панель управления → Сохранение данных (нужна лицензия) | Строка меню → Traffic Capture (⌘B) | Панель управления → Сохранение данных (нужна лицензия) |
| Установка CA | В приложении, затем доверие в настройках | В приложении, один шаг | Только MDM или Apple Configurator |
| Как достаёт Chute Dashboard | Кабель USB или Wi-Fi | 127.0.0.1 на том же Mac |
Wi-Fi |
| Как забрать файл с устройства | Меню «Поделиться» | Файловая система | Только консоль, по QR-коду |
Куда двигаться дальше
- Отладка iPhone с Mac — весь путь целиком, от чистого телефона до расшифрованного тела на экране Mac.
- Отладка на Mac — собственный трафик Mac, включая терминальные инструменты и разделение по процессам.
- Отладка Apple TV — устройство без браузера, без меню «Поделиться» и без возможности самому установить сертификат.
- Реплика — какие соединения сохраняют тела и как перестать записывать всё подряд.
- Имитация и внедрение сбоев — заготовленные ответы, коды ошибок, внесённая задержка и то, что Chute действительно не умеет.
Если вопрос звучит как «не работает», а не «что оно делает», начинайте с Устранения неполадок — в частности с раздела Почему моя перезапись ничего не делает?, вопроса, который этот раздел порождает чаще всего.
Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.