Устранение неполадок

Любую проблему сначала разделите на два вопроса: доходит ли трафик до Chute вообще (проблема перехвата) и может ли Chute его переслать (проблема пересылки)? Ответ даёт представление трафика в реальном времени — откройте Панель мониторинга (iOS) или вкладку Трафик главного окна (Mac) и походите по сайтам: если ничего не появляется, Chute не получает трафик; если соединения появляются, но завершаются с ошибкой, Chute не может их переслать. У этих двух половин совершенно разные способы решения.

Эта страница — про «не работает». Если вопрос звучит как «что оно делает» — читать запросы, сохранять тела, менять ответ, имитировать сбой, — начинайте с Отладки сети.

Ничего не появляется: проблемы перехвата

Chute iOS

  • Переключатель отказывается включаться, а панель Конфигурация трясётся — не выбрана конфигурация. Нажмите панель Конфигурация, нажмите на конфигурацию, чтобы появилась галочка, затем Готово («Пожалуйста, сначала выберите конфигурацию»).
  • Запрос разрешения VPN был отклонён — переключите ещё раз и одобрите. Если профиль VPN застрял (переключатель сразу возвращается назад), используйте Сброс конфигурации VPN в настройках приложения; следующий запуск заново создаст профиль и снова запросит разрешение.
  • Подключено другое VPN-приложение — iOS запускает только один VPN-туннель одновременно. Отключите другое приложение (или выключите его правила подключения по требованию, которые могут незаметно перехватить туннель обратно).

Chute Mac

  • Системный прокси включён, но приложение его игнорирует — многие инструменты (особенно терминальные программы) не соблюдают системный прокси. Направьте их на слушатель Chute явно (пункт меню Копировать команду export для терминала делает это для оболочек) или используйте Расширенный режим, который захватывает трафик на сетевом уровне.
  • Системный прокси или Расширенный режим не включается — оба зависят от привилегированного помощника Chute. При первой установке помощник нужно авторизовать — после того как Chute объяснит зачем (Chute требуется помощник); в macOS 13 и новее его, возможно, придётся ещё разрешить в Системные настройки → Основные → Объекты входа и расширения, на что Chute указывает окном Требуется разрешение или Разрешите Chute в объектах входа. Помощник должен быть той версии, которую ожидает приложение (сейчас 0.8.6): несовпадающий переустанавливается автоматически, поэтому после обновления Chute одобрите этот запрос.
  • Расширенный режим не запускается — в типе PacketTunnel одобрения требует ещё и сетевое расширение; точные пути в Системных настройках, случай «Системное расширение заблокировано» и сброс застрявшего VPN описаны в разделе устранение неполадок Расширенного режима.
  • Трафик к адресам локальной сети обходит Chute намеренно — проверьте skip-proxy в Прочих параметрах, прежде чем считать перехват сломанным. tun-excluded-routes здесь не ответ: его читают только туннели Chute iOS, Chute tvOS и Chute Android, а на macOS он не делает ничего. Чтобы включить диапазон локальной сети в Расширенный режим на Mac, укажите его в tun-included-routes — его учитывают оба типа Расширенного режима.

Соединения появляются, но завершаются ошибкой: проблемы пересылки

  • Изолируйте путь. Переключите группу политик на DIRECT: если страницы открываются напрямую, но не через прокси, проблема в прокси-сервере — неверный хост/порт/учётные данные/шифр, либо сервер не работает. Запустите тест задержки для группы; политика, которая никогда не проходит тест, пока другие проходят, и называет виновника.
  • Срабатывает не то правило. Посмотрите в представлении трафика в реальном времени, какое правило совпало для сбойного соединения, затем перечитайте порядок вычисления правил: правила вычисляются в два прохода, поэтому для запросов по имени хоста более позднее не-IP-правило может совпасть раньше более раннего IP-правила. Обычные подозреваемые — no-resolve и расположение FINAL.
  • Ответы DNS выглядят неверными. Проверьте раздел DNS: при шифрованном DNS убедитесь, что сам сервер DoH/DoT доступен без прокси; после смены серверов очистите кэш DNS (строка Очистить кэш DNS в Панели управления iOS, flushDNS из скрипта или DELETE /api/dns/cache в HTTP API управления).
  • Приложения, зависящие от UDP, ведут себя неправильно — убедитесь, что выбранная политика поддерживает ретрансляцию UDP (см. матрицу возможностей в разделе Прокси-сервер), и помните, что Tailscale не пересылает ICMP, поэтому ping через выходной узел останется без ответа.

Расшифровка HTTPS не расшифровывает

  • CA должен быть установлен и доверен — на iOS это два отдельных шага; второй (Настройки → Основные → Об этом устройстве → Доверие сертификатам) — тот, который все пропускают. См. Установка и доверие CA-сертификату.
  • Хост должен совпадать со списком hostname в [MITM] — расшифровываются только объявленные хосты и только на порту 443, если суффикс :port/:0 не говорит иного.
  • Некоторые приложения закрепляют собственные сертификаты и будут сбоить при расшифровке — исключите их хосты префиксом -, а не боритесь с ними.
  • QUIC/HTTP-3 расшифровать нельзя — см. block-quic, чтобы вернуть совместимые клиенты на TCP.
  • На iPhone, Apple TV и Android расшифровка — лицензируемая функция: без лицензии ничего не расшифровывается, о чём бы ни просили конфигурация или API управления, — см. Лицензия и активация. На iPhone переключатель — это строка MitM в панели управления. У Apple TV строки MitM нет вовсе, поэтому там расшифровка включается через enable = true в разделе [MITM] профиля либо во время выполнения — из веб-консоли, из Chute Dashboard или запросом PUT /api/features/mitm.

Чтение журналов

Когда предыдущие разделы не дали ответа, его обычно даёт журнал:

  • Временно повысьте уровень журналирования: loglevel = verbose (потом верните обратно — verbose работает медленно).
  • Chute Mac: вкладка Лог главного окна. Chute iOS: экран журнала сессии — кнопка «Поделиться» в навигационной панели отдаёт все части этого запуска. Chute tvOS: экран журнала сессии с фильтром по важности сверху (Все / Уведомления+ / Предупреждения+ / Критическая ошибка), так что пульта достаточно, чтобы сузить выборку. Chute Android: журнал движка там в файл не пишется — читайте его на странице Журналы консоли (следующий пункт), получите через Диагностический пакет среды выполнения или следите за ним через adb logcat. Вкладка Логи панели мониторинга и вкладка Лог сеанса в списке сеансов показывают только собственный служебный журнал приложения (запуски, остановки, смены сети), который очищает Очистить локальные логи в настройках.
  • На любой платформе: страница Журналы в консоли или GET /api/logs через HTTP API управления.
  • Интересные строки — предупреждения: неизвестные политики, отклонённые параметры и неразбираемые правила записываются в журнал как предупреждения при загрузке конфигурации.
  • Журнал разбивается на части по несколько мегабайт. Chute хранит самые свежие части одного запуска, поэтому новейший файл — это конец истории, а не вся она; берите их все. (Chute Android не разбивает на части: собственный журнал движка остаётся в кольцевом буфере в памяти, а приложение дописывает свой служебный журнал в единственный logs/runtime.log плюс копию каждого запуска в sessions/<run id>/, и то и другое — в его частном хранилище.)
  • На macOS сами файлы лежат в ~/Chute/Share/<run id>/ — см. Расположение файлов (macOS).

Отправка диагностического пакета

Когда нужно, чтобы посмотрел кто-то ещё, один архив лучше шести файлов, найденных через меню «Поделиться», и описания сбоя по памяти. Приложения различают два вида: диагностический пакет среды выполнения, который собирает работающий движок, и офлайн-диагностический пакет, который приложение собирает само. В обоих пароли, токены, cookie и учётные данные в URL заменены на <redacted>, а тела запросов и ответов не включаются.

Диагностический пакет среды выполнения — собирается работающим движком: очищенная копия конфигурации, снимок состояния движка (включая то, как завершился предыдущий запуск), заметные события этого запуска, загруженные правила и политики, DNS, трафик и хвост журнала (на Android — кольцевой журнал движка в памяти, поскольку сам движок не пишет файлов). Для него туннель должен работать.

  • Chute iOS: панель управления → последняя строка раздела «ЛОКАЛЬНЫЙ ПРОКСИ», Диагностический пакет среды выполнения — есть всегда, серая до подключения туннеля и не требует external-http-controller; нажатие собирает пакет и открывает меню «Поделиться»
  • Chute Android: панель управления → Диагностический пакет среды выполнения, под строками HTTP API — недоступен, пока не работает VPN
  • Chute Mac: строка меню → Сохранить диагностический пакет… — движок работает внутри приложения, поэтому пакет собирается на месте и доступен и при работающем, и при остановленном движке; он всегда относится к виду «среды выполнения», и офлайн-пакет Mac не собирает никогда
  • Chute tvOS: у этого устройства нет ни меню «Поделиться», ни файлового браузера, поэтому Скачать диагностический пакет в консоли — единственный путь: отсканируйте QR-код в приложении и откройте страницу Диагностика на устройстве, с которого можно отправить письмо
  • На любой платформе, из консоли: кнопка загрузки на странице Диагностика или POST /api/diagnostics/bundle

Офлайн-диагностический пакет — собирается приложением без движка, поэтому работает, когда туннель не поднят или ни разу не запускался: отчёт приложения о хосте (версия, устройство, состояние VPN, сводка конфигурации и страницы диагностики «Сеть / Прокси / Таблица маршрутов» в виде текста), маркер завершения предыдущего запуска (сообщается как «running», если движок на самом деле работает) и файлы журналов, до которых приложение может дотянуться.

  • Chute iOS: настройки → раздел «ДИАГНОСТИКА» → Офлайн-диагностический пакет
  • Chute Android: настройки → раздел «ДИАГНОСТИКА» → Сохранить офлайн-диагностический пакет
  • Chute tvOS: настройки → Офлайн-диагностический пакет — Apple TV собирает пакет и показывает QR-код; отсканируйте его телефоном в той же сети (или откройте показанный адрес на компьютере), чтобы скачать zip — ссылка работает, только пока этот экран открыт
  • Chute Mac: офлайн-пакета здесь нет, и он не нужен — Сохранить диагностический пакет… в строке меню собирает пакет среды выполнения даже при остановленном движке, сохраняя последнее завершение, хвост журнала и конфигурацию, а материалы, из которых он собирается, — обычные файлы, которые можно приложить напрямую: части журнала в ~/Chute/Share/<run id>/ и маркер запуска ~/Chute/Share/last-run.json — см. Расположение файлов (macOS)

На платформах, которые собирают оба вида, имя файла говорит, какой из них у вас: пакет среды выполнения — diagnostics-<timestamp>.zip, офлайн-пакет — diagnostics-offline-<timestamp>.zip; в обоих есть manifest.json, поле kind которого говорит то же самое. Пакет, сохранённый из Chute Mac, всегда относится к виду среды выполнения, поэтому в его имени никогда нет части offline-.

Прежде чем что-то отправлять, стоит прочитать строку Предыдущее завершение на странице Диагностика: Завершён из-за нехватки памяти означает, что Chute забрала сама ОС, а не то, что Chute дал сбой, — и это меняет, что искать дальше.

Почему моя перезапись ничего не делает?

У правила перезаписи, которое ни разу не совпало, нет симптома: ничего не происходит, и это выглядит ровно так же, как правило, которое совпало и не дало видимого эффекта. Консоль отвечает на это прямо: страница Правила перечисляет каждое правило перезаписи и имитации ответов, сработавшее за этот запуск, со счётчиком. Таблица отслеживает до 512 различных правил; сверх этого она сообщает, сколько ещё сработало без учёта (rewrite_hit_dropped_rules в API), и тогда показывает лишь часть картины.

  • Правило, отсутствующее в этом списке, ни разу не совпало — пока таблица не сообщает о неучтённых правилах. Сверьте шаблон с формами URL из Перезаписи URL; все семейства перезаписи, включая Перезапись заголовков, ищут шаблон в любом месте URL.
  • Правило, которое сработало, но ничего заметного не изменило, — другая задача: откройте соединение в консоли и прочитайте строки Применённые перезаписи, где правило названо собственным текстом.
  • Правила видят трафик HTTPS только тогда, когда для этого хоста включена расшифровка HTTPS.
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-30 15:11:19

Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.

results matching ""

    No results matching ""