Начало работы на Android
Chute Android работает на том же движке, что и другие издания, перенесённом на Kotlin, и читает тот же файл конфигурации. Эта страница описывает первый запуск; на странице Начало работы есть то же для iOS, macOS и tvOS, а показанная там минимальная конфигурация работает на Android без изменений.
1. Получите конфигурацию
При первом запуске без конфигураций Chute открывает мастер настройки («Давайте настроим Вашу первую прокси-конфигурацию») с тремя путями: URL подписки от провайдера, QR-код или данные вашего собственного сервера, после которых выбираются сайты для проксирования и DNS. Последний шаг, Создать и подключиться, сохраняет конфигурацию, выбирает её и запускает туннель. Пропустить закрывает мастер; пока конфигураций по-прежнему нет, он откроется снова при следующем запуске Chute, но не при повороте экрана и не при возврате в приложение. Показать вводный экран в настройках снова открывает мастер.
URL подписки должен быть адресом https://. Нативный профиль, который скачивает мастер, — по этому URL или по адресу из QR-кода — сохраняется как управляемая конфигурация и обновляется каждые 86400 секунд, как по умолчанию у Добавить подписку ниже. Профиль Clash или sing-box, пришёл ли он из подписки или из QR-кода, преобразуется в статический снимок, который не обновляется, как и на странице Конфигурации. QR-код читается так же, как его читает эта страница: ссылка chute://download (или import, install-config, subscribe) — это адрес для скачивания, код может нести и целую конфигурацию, а код chute://tv или chute://remote открывает на главном экране диалог удалённого репозитория.
Чтобы добавить конфигурацию позже, нажмите панель Конфиг на главном экране — откроется страница Конфигурации, — затем Добавить конфигурацию из...:
- Пустая конфигурация — сохраняет шаблон как
Untitled.conf, не открывая редактор; откройте его через Структурное редактирование или Текстовое редактирование в меню ⋮ этой строки. - Добавить подписку — скачивает URL провайдера и хранит его как управляемую конфигурацию, обновляемую с интервалом, который вы вводите в диалоге (по умолчанию 86400 секунд). Подписка Clash или sing-box преобразуется по пути и сохраняется статическим снимком без заголовка обновления, поэтому сама она не обновляется.
- Импорт из локального файла — импортирует файл Chute (
.conf), sing-box (.json) или Clash/mihomo (.yaml); ненативные форматы преобразуются. - Загрузка по URL, Загрузка по QR-коду, Загрузка файла по Wi-Fi — другие способы сделать то же самое. Страница загрузки через Wi-Fi показывает адреса, которые нужно открыть в браузере в той же сети, и защищена PIN-кодом.
- Удалённый сервер — загружает конфигурацию из удалённого репозитория конфигураций.
Ссылка chute://download?url=..., открытая извне приложения — нажатием или сканированием камерой, — тоже скачивает файл, а профиль Clash или sing-box преобразуется в статический снимок, как на странице Конфигурации; но подписки такая ссылка не добавляет: chute://subscribe?url=... — всего лишь псевдоним download. Нативный профиль, сохранённый по такой ссылке, приложение никогда не обновляет, хотя работающий движок каждые 24 часа заново загружает его URL и применяет новое содержимое в памяти, см. URL-схему. Если же отсканировать ту же ссылку на нативный профиль в мастере настройки, получится управляемая конфигурация, которую приложение обновляет каждые 86400 секунд.
Без лицензии Chute хранит одну локальную конфигурацию; добавление второй любым способом — функция Chute Pro, см. Лицензия и активация.
2. Выберите её
На странице Конфигурации нажмите на конфигурацию, чтобы она получила отметку Ожидание, затем нажмите Готово: именно эту конфигурацию и запускает Chute. Только что добавленная там конфигурация возвращается уже с отметкой Ожидание, как и конфигурация, добавленная ссылкой chute://, открытой извне приложения: Chute открывает эту страницу с отмеченной конфигурацией, и ничего не меняется, пока вы не нажмёте Готово, — такая ссылка никогда не переключает конфигурацию, которую выполняет Chute. Выбранную конфигурацию можно переключать и во время работы Chute, с лицензией или без неё; новая применяется перезапуском туннеля.
3. Запустите и разрешите
Нажмите переключатель (Нажмите, чтобы запустить VPN). При первом запуске Android спросит разрешение на запрос VPN-подключения — это системное согласие, нужное любому VPN-приложению; отказ оставит Chute остановленным. Что несёт туннель, определяют две настройки:
- Режим службы — VPN (по умолчанию) перехватывает трафик устройства через системный VPN; Локальный прокси запускает только слушатели HTTP и SOCKS5, на которые указывают другие приложения или устройства, без туннеля.
- Режим прокси приложений — Глобальный направляет все приложения, Прокси — только выбранные, Чёрный список — все, кроме выбранных.
Связанные переключатели в настройках: Запуск при загрузке (нужно однажды данное согласие на VPN), Только по Wi-Fi (только в режиме VPN: приостанавливает туннель, когда нижележащая сеть лимитная, и возобновляет, когда она обычная, — Android сообщает именно это, а не тип подключения, поэтому лимитный Wi-Fi тоже приостановит туннель, а безлимитный сотовый тариф — нет) и Постоянный VPN, открывающий список VPN в Android, поскольку на саму страницу постоянного VPN приложение перейти не может; включите там «Постоянный VPN» для Chute. Извне приложения туннель запускают и останавливают ярлыки главного экрана Запуск, Стоп и Переключить, широковещательные Intent и плагин Tasker/Locale, а также плитка быстрых настроек — если только Быстрые действия в настройках не переключили её с VPN на Режим (перебор режимов исходящих соединений) или Группа (перебор политик группы, выбранной в Группа виджета, где групп с hidden=true нет, кроме уже выбранной). Виджет на главном экране показывает, работает ли туннель, и политику этой группы; нажатие на него переводит группу на следующую политику.
При включённом «Постоянном VPN» Android сам запускает туннель — когда эта настройка включается, при загрузке устройства и после обновления Chute — с выбранной конфигурацией и всегда как VPN, даже если Режим службы — Локальный прокси. Кроме того, если Android завершит процесс Chute во время работы VPN, туннель сам вернётся с выбранной конфигурацией — если только вы сами его не остановили, не отключили в настройках VPN Android или не отдали разрешение VPN другому приложению. То же верно и для режима Локальный прокси: работавшие слушатели возвращаются, если вы сами их не остановили, — хотя Android 12 и новее может отказать в таком перезапуске, пока Chute в фоне, и тогда запуск отображается как неудавшийся.
4. Проверьте
Оставьте режим исходящих соединений на По правилам (режимы Напрямую / Глобальный обходят или принудительно применяют прокси целиком) и откройте сайт. Панель мониторинга на главном экране показывает трафик в реальном времени во вкладках Статистика, Туннели, DNS, UDP и Логи; нажатие на туннель открывает детали его запроса и ответа. Панель управления содержит переключатели времени выполнения — локальные слушатели HTTP и SOCKS5, HTTP API управления и веб-консоль, MitM, Запись трафика, Определение протокола, Optimus DNS — а также Очистить кэш DNS и Диагностический пакет среды выполнения.
Отличия платформы
- Правила процессов сопоставляются с именами пакетов.
PROCESS-NAMEсравнивается с именем пакета приложения, открывшего соединение, напримерPROCESS-NAME,com.android.chrome,Proxy; Chute спрашивает у Android, какому приложению принадлежит каждое TCP-соединение, проходящее через интерфейс VPN. У соединений, которые вместо этого приходят на слушатели, — всех в режиме Локальный прокси и соединений приложений, использующих Системный HTTP-прокси, — имени пакета нет, поэтому правило с ними никогда не совпадает. - Для расшифровки HTTPS нужен собственный CA. Генератора сертификатов нет: на странице редактора Настроить CA в группе MitM кнопка Импортировать P12 записывает PKCS#12 в
ca-p12конфигурации в base64 — так же, как Chute записывает его на устройствах Apple, поэтому конфигурация переносит свой CA на любое устройство, — а Установить CA, как только заполнен пароль, открывает установщик сертификатов Android для его сертификата CA. Сама страница редактора не лицензируется, но движок — да: без Chute Pro ничего не расшифровывается, чего бы ни требовал[MITM] enable = trueв профиле, и переключатель MitM времени выполнения в панели управления и на панели мониторинга тоже закрыт лицензией. - Функции на основе SSID работают — группы политик
ssid, правилаSUBNETи[SSID Setting]— при наличии разрешения, которое система требует для чтения имени сети: геолокация (Android 12 и ниже) или устройства Wi-Fi поблизости (Android 13 и новее). Chute запрашивает это разрешение, когда вы запускаете туннель главным переключателем, а в конфигурации есть группа политикssidилиsubnet, правилоSUBNET,SSID:илиSUBNET,BSSID:либо раздел[SSID Setting]/[SSID Suspend]. Запуск, который не может показать запрос, — плитка быстрых настроек, ярлык, Запуск при загрузке, широковещательный Intent, «Постоянный VPN» — вместо этого публикует уведомление Нужно разрешение SSID, по одному на конфигурацию, а нажатие на него выводит запрос. Движок перечитывает сеть каждую минуту, так что выданное разрешение начинает действовать в течение минуты, без перезапуска. ПравилаSUBNETвнутри внешнего набора правил не обнаруживаются: если они там, выдайте разрешение из системных настроек. В режиме VPN записьsuspendиз SSID Suspend отключает интерфейс VPN, пока устройство находится в подходящей сети; режим Локальный прокси её игнорирует. - Tailscale доступен; в редакторе для него есть страница Tailscale.
- Платформенные директивы — строки
#!IOS-ONLY,#!MACOS-ONLYи#!TVOS-ONLYздесь являются комментариями, поэтому ни одна из них не действует на Android. - Строки Trojan из старых версий. Политике Trojan на любой платформе нужен явный
tls=true. Старые версии Chute Android подразумевали TLS для Trojan, а их редактор по умолчанию эту опцию не записывал, поэтому первый запуск после обновления добавляетtls=trueкаждой политике Trojan в ваших локальных конфигурациях, где нет никакой опцииtls, и записывает каждое изменение в служебный журнал приложения. Управляемая конфигурация не трогается — её заменит источник, — как и строка, в которой написаноtls=false. - Два журнала. Журнал движка остаётся в памяти: читайте его на странице Logs веб-консоли или через
GET /api/logs, получите его через Диагностический пакет среды выполнения (панель управления, при работающем туннеле) или следите за ним черезadb logcat. На диск приложение пишет только собственный служебный журнал — запуски и остановки, приостановки, смены сети, отправленные им уведомления — вlogs/runtime.logв своём личном хранилище, с копией для каждого запуска вsessions/<run id>/. Вкладка Логи панели мониторинга показывает последние 80 строк этого файла, а вкладка Лог сессии — копию её запуска; Сохранить офлайн-диагностический пакет в Настройки → ДИАГНОСТИКА включает этот файл в пакет, а Очистить локальные логи в настройках удаляет его, но не копии запусков, — см. Устранение неполадок. - Chute Dashboard на Mac подключается к телефону по USB через
adbили по сети — см. Chute Dashboard. - Уведомления охватывают те же события движка, что и в других приложениях (Настройки → Уведомления); «Сеть не передаёт трафик» подчиняется переключателю Массовый сбой соединений. Отправляются они только в режиме VPN: в режиме Локальный прокси уведомлений о событиях движка нет.
- Нет на Android: эксклюзивные для Mac Расширенный режим и VIF, синхронизация iCloud и URL-действия
chute://start/stop/toggle— широковещательные Intent, заменяющие их, см. в URL-схеме. Широковещательный Intent не может вызвать диалог согласия на VPN, поэтомуSTART_VPNмолча отбрасывается, пока согласие не дано хотя бы раз;TOGGLE_VPNвместо этого открывает приложение, где диалог вызывается нажатием на переключатель, а режиму Локальный прокси согласие не нужно вовсе.
Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.