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

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

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

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

Chute iOS

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

Chute Mac

  • Системный прокси включён, но приложение его игнорирует — многие инструменты (особенно терминальные программы) не соблюдают системный прокси. Направьте их на слушатель Chute явно (пункт меню Copy Shell Export Command делает это для оболочек) или используйте Расширенный режим, который захватывает трафик на сетевом уровне.
  • Расширенный режим не запускается — сетевому расширению или помощнику нужно одобрение; точные пути в Системных настройках, случай «Системное расширение заблокировано» и сброс застрявшего VPN описаны в разделе устранение неполадок Расширенного режима.
  • Трафик к адресам локальной сети обходит Chute намеренно — проверьте skip-proxy и tun-excluded-routes в Прочих параметрах, прежде чем считать перехват сломанным.

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

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

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

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

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

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

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

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

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

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

  • Chute iOS: панель управления → последняя строка раздела «ЛОКАЛЬНЫЙ ПРОКСИ», Диагностический пакет времени выполнения — есть всегда, серая до подключения туннеля и не требует external-http-controller; нажатие собирает пакет и открывает меню «Поделиться»
  • Chute Android: панель управления → Диагностический пакет времени выполнения, под строками HTTP API — недоступен, пока не работает VPN
  • Chute Mac: строка меню → Сохранить диагностический пакет… — движок работает внутри приложения, поэтому этот единственный пакет покрывает оба вида и доступен и при работающем, и при остановленном движке
  • Chute tvOS: у этого устройства нет ни меню «Поделиться», ни файлового браузера, поэтому Download diagnostic bundle (Скачать диагностический пакет) в консоли — единственный путь: отсканируйте QR-код в приложении и откройте страницу Diagnostics на устройстве, с которого можно отправить письмо
  • На любой платформе, из консоли: кнопка загрузки на странице Diagnostics или 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 которого говорит то же самое.

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

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

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

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

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

results matching ""

    No results matching ""