Прочие параметры
[General]
ipv6 = true
loglevel = notify
skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
tun-included-routes = 192.168.1.12/32
Общие параметры
Включить полную поддержку IPv6 (По умолчанию: true)
ipv6 = true
loglevel (По умолчанию: warning)
loglevel = notify
Одно из: none, fatal, warning, notify, info или verbose. Не рекомендуется включать verbose при повседневном использовании, так как это значительно замедлит производительность.
skip-proxy
skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local
В версии iOS этот параметр заставляет соединения с этими диапазонами доменов/IP обрабатываться Chute TUN, а не Chute прокси. В версии macOS эти настройки будут применены к системе, когда включен "Set as System Proxy". Этот параметр используется для устранения проблем совместимости с некоторыми приложениями.
- Чтобы указать один домен, введите доменное имя - например, apple.com.
- Чтобы указать все веб-сайты в домене, используйте звездочку перед доменным именем - например, *apple.com.
- Чтобы указать конкретную часть домена, укажите каждую часть - например, store.apple.com.
- Чтобы указать хосты или сети по IP-адресам, введите конкретный IP-адрес, например 192.168.2.11, или диапазон адресов, например 192.168.2.* или 192.168.2.0/24.
Примечание: Если вы вводите IP-адрес или диапазон адресов, вы сможете обойти прокси только при подключении к этому хосту по этому адресу, но не при подключении к хосту по доменному имени, которое разрешается в этот адрес.
Прослушивание прокси-сервера
interface = 127.0.0.1
port = 8118
socks-interface = 127.0.0.1
socks-port = 8119
interface / port управляют адресом и портом прослушивания HTTP-прокси-сервера (по умолчанию 127.0.0.1:8118). socks-interface / socks-port управляют SOCKS5-прокси-сервером (по умолчанию 127.0.0.1:8119).
Псевдонимы совместимости:
doh-serverпринимается как псевдонимdoh;http-listen/socks5-listen(например,0.0.0.0:6152,[::]:6153или просто порт) отображаются на указанные выше настройки interface/port. Хост прослушивания с подстановочным значением (0.0.0.0,::или*) также устанавливаетallow-wifi-access = true.
Аутентификация входящих прокси-соединений
http-auth = username:password
Требует от клиентов аутентификации перед использованием HTTP- и SOCKS5-прокси-серверов Chute. Строку можно повторять, чтобы разрешить несколько учетных данных.
Обход системных запросов
bypass-system = true
Если включено, запросы, отправляемые системными процессами, обходят обработку Chute.
По умолчанию:
true.
Всегда реальный IP
always-real-ip = *.example.com, tracker.example.org
Когда Chute выдает поддельные IP-адреса для перехваченных DNS-запросов (см. hijack-dns), имена хостов, совпадающие с этим списком, разделенным запятыми, всегда получают в ответ свои реальные разрешенные IP-адреса. Поддерживаются подстановочные знаки.
Прерывание существующих соединений
interrupt-exist-connections = true
Если включено, изменение выбранной политики в любой группе политик (через URL Test, Fallback, Load Balance, SSID или ручной выбор) приведет к корректному завершению существующих соединений, использовавших старую политику. Это гарантирует, что соединения немедленно начнут использовать новый выбранный прокси, а не останутся на старом.
Каждое затронутое соединение закрывается корректно с 3-секундным тайм-аутом перед принудительным закрытием.
По умолчанию:
false. Это глобальная настройка — она влияет на все группы политик.
Network Framework (macOS / tvOS)
network-framework = true
Включает Apple Network.framework для исходящих соединений. Использование Network.framework может обеспечить лучшую производительность и современную интеграцию стека TLS на поддерживаемых платформах.
По умолчанию:
trueна macOS,falseна iOS и tvOS.
Исключение простых имен хостов
exclude-simple-hostnames = true
Если включено, запросы к простым именам хостов (однокомпонентные имена без точки, например, localhost) обходят правила прокси и разрешаются локально. Это помогает избежать ненужных DNS-запросов для имен локальной сети.
На Chute Mac одноразовая миграция включает эту опцию по умолчанию при первом запуске; явное отключение пользователем учитывается.
По умолчанию:
false.
Отключение записи в базу данных
disable-db-record = true
Если включено, Chute прекращает запись записей трафика в локальную базу данных. Это может улучшить производительность и уменьшить использование хранилища, но история трафика не будет доступна в Chute Dashboard.
По умолчанию:
false.
Отображение скорости в строке меню (только Mac)
menu-bar-show-speed = true
Если включено, Chute Mac показывает текущую скорость загрузки и отправки в строке меню.
По умолчанию:
false.
Перехват других DNS-серверов
hijack-dns = 8.8.8.8:53
По умолчанию Chute возвращает поддельные IP-адреса только для DNS-запросов, отправленных на адрес DNS Chute (198.18.0.2). Запросы, отправленные на стандартный DNS, просто пересылаются.
Некоторые устройства или программы всегда используют жестко заданный DNS-сервер. (Например, Google Speakers всегда используют 8.8.8.8). Вы можете использовать этот параметр для перехвата запроса и получения поддельного адреса.
Вы можете использовать hijack-dns = *:53 для перехвата всех DNS-запросов.
Исключенные маршруты
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
Chute VIF может обрабатывать только протоколы TCP и UDP. Используйте этот параметр для обхода определенных диапазонов IP, чтобы разрешить прохождение всего трафика.
Примечание: Этот параметр работает только для типа Расширенного режима VIF (utun) — он не действует при использовании типа PacketTunnel VPN. Запросы, обрабатываемые прокси-сервером Chute, не будут затронуты. Комбинируйте 'skip-proxy' и 'tun-excluded-routes', чтобы гарантировать, что определенный HTTP-трафик обходит Chute.
Этот параметр может вызвать системную ошибку ENOMEM (невозможно выделить память). Похоже, это ошибка в системе iOS. Пожалуйста, не используйте этот параметр, если это возможно.
Включенные маршруты
tun-included-routes = 192.168.1.12/32
По умолчанию интерфейс Chute VIF объявляет себя как маршрут по умолчанию. Но поскольку интерфейс Wi-Fi имеет меньший маршрут, некоторый трафик может не проходить через интерфейс Chute VIF. Используйте этот параметр для добавления меньшего маршрута.
Примечание: Этот параметр работает только для типа Расширенного режима VIF (utun) — он не действует при использовании типа PacketTunnel VPN.
Анализ протоколов
sniffing-enabled = true
sniffing-timeout = 100
Chute может определить фактический протокол соединения, проверяя начальные байты. Это позволяет правилам, таким как PROTOCOL,TLS,Proxy, работать корректно даже для входящих соединений не HTTP.
sniffing-enabled (По умолчанию: false)
sniffing-enabled = true
Включает определение протокола для TCP-соединений.
sniffing-timeout (По умолчанию: 100 мс)
sniffing-timeout = 200
Максимальное время в миллисекундах для ожидания начальных данных для определения протокола. Увеличьте это значение, если определение протокола не удается на медленных соединениях.
Блокировка QUIC
block-quic = auto
Определяет, должен ли Chute отклонять обнаруженный трафик QUIC, включая HTTP/3. QUIC работает поверх UDP и не может быть расшифрован механизмом HTTP MitM в Chute. Отклонение QUIC может заставить совместимые клиенты повторить соединение по TCP, после чего становятся доступны обработка TCP-трафика прокси и, если настроено, расшифрование HTTPS.
| Значение | Поведение |
|---|---|
off |
Не применять глобальную блокировку QUIC (по умолчанию). Обнаруженный трафик QUIC обрабатывается обычными правилами маршрутизации. |
on |
Отклонять каждый обнаруженный поток QUIC, включая трафик, направленный в DIRECT. |
auto |
Отклонять обнаруженный QUIC, только если итоговая исходящая политика является прокси. Трафик, направленный в DIRECT, разрешается; трафик, направленный в REJECT, по-прежнему отклоняется соответствующим правилом. |
Для трафика, поступающего через TUN, Chute отвечает на отклоненный поток QUIC сообщением ICMP/ICMPv6 Port Unreachable. Благодаря этому совместимые клиенты могут перейти на TCP, не дожидаясь тайм-аута QUIC.
Обнаружение QUIC для
block-quicвыполняется автоматически и не требуетsniffing-enabled; параметрsniffing-enabledуправляет определением протоколов TCP. Для обработки отдельных потоков QUIC правилами используйте правилоPROTOCOL,QUIC,....
Обход TUN
bypass-tun = 192.168.0.0/16, 10.0.0.0/8
Аналогично skip-proxy, но работает на уровне маршрутизации TUN/VIF. Соединения с этими диапазонами IP будут полностью обходить интерфейс TUN и проходить напрямую через системный сетевой стек.
Примечание: Этот параметр работает только для типа Расширенного режима VIF (utun). Он не действует при использовании типа PacketTunnel VPN.
Отображение страницы ошибки для Reject
show-error-page-for-reject = true
Если включено, Chute возвращает удобную страницу ошибки для отклоненных запросов вместо простого разрыва соединения.
Оптимистичный DNS
optimistic-dns = false
Если включено, Chute немедленно возвращает кэшированный результат DNS, обновляя запись в фоновом режиме. Это уменьшает задержку соединения ценой возможного возврата устаревших DNS-записей.
По умолчанию:
true. Установитеoptimistic-dns = false, чтобы отключить.
Разрешить доступ по Wi-Fi
allow-wifi-access = true
Предназначено для того, чтобы разрешить другим устройствам в той же сети Wi-Fi доступ к портам HTTP/SOCKS5-прокси Chute. Переключатель отображается в приложениях Chute, и значение сохраняется в конфигурации.
Внимание: Ядро в настоящее время хранит этот флаг, но пока не применяет его.
Управляемая конфигурация
#!MANAGED-CONFIG https://example.com/config.conf interval=86400 strict=false
Конфигурация, первая строка которой — заголовок #!MANAGED-CONFIG, автоматически повторно загружается с указанного URL. Параметры заголовка и поведение обновления описаны в разделе Управляемая конфигурация.
Реплика / Запись трафика
replica = true
Ключ replica в [General] (replica = true) включает запись трафика; секция [Replica] фильтрует то, что отображает Chute Dashboard — её ключи описаны в разделе Replica.
Внешний доступ контроллера (Chute Dashboard)
external-controller-access = password@0.0.0.0:6155
Запускает сервер удаленного управления, используемый Chute Dashboard. Значение имеет вид password@host:port; перед паролем может опционально указываться имя пользователя (user:password@host:port). На iOS сопутствующий USB-канал открывается на порту port + 1 (не на macOS).
HTTP Control API и веб-интерфейс
[General]
external-http-controller = 127.0.0.1:9090
external-http-secret = your-secret-token
external-http-ui = true
external-http-cors = false
Chute предоставляет встроенный HTTP API управления и веб-интерфейс управления, аналогичный панелям Clash и Surge. API предоставляет статус ядра, трафик, соединения, DNS, управление политиками и управление конфигурацией через конечные точки REST.
external-http-controller (По умолчанию: отключено)
external-http-controller = 127.0.0.1:9090
Адрес и порт для HTTP-сервера управления. Используйте 127.0.0.1 для доступа только локально. Привязка к конкретному не-loopback адресу (например, 192.168.1.5:9090) требует непустого external-http-secret — без него сервер отказывается запускаться и записывает предупреждение в журнал. Обратите внимание, что 0.0.0.0 проходит эту проверку, хотя слушает на всех интерфейсах: в сочетании с пустым секретом это открывает весь API сети без аутентификации, поэтому при привязке 0.0.0.0 всегда задавайте секрет.
external-http-secret (По умолчанию: пусто)
external-http-secret = your-secret-token
Bearer-токен, используемый для аутентификации API. Запросы должны включать заголовок Authorization: Bearer <secret> — токен принимается только в этом заголовке, никогда как параметр запроса, и сравнивается за постоянное время. Когда секрет пуст, все конечные точки обслуживаются без аутентификации. Сбои аутентификации возвращают 401 с {"ok": false, "error": {"code": "unauthorized", "message": "missing or invalid token"}}. Защищены только пути /api/* и Clash-совместимые псевдонимы; статические ресурсы веб-интерфейса обслуживаются всегда.
external-http-ui (По умолчанию: true)
external-http-ui = true
Если включено, Chute предоставляет встроенный веб-интерфейс по адресу контроллера. Веб-интерфейс предоставляет обзорную панель, управление соединениями, проверку DNS, мониторинг трафика, управление политиками и редактирование конфигурации. Установите false, чтобы сохранить API включенным, отключив интерфейс.
external-http-cors (По умолчанию: false)
external-http-cors = true
Включает заголовки CORS (Cross-Origin Resource Sharing) в ответах API. Полезно, когда веб-интерфейс или сторонние инструменты должны получать доступ к API из другого источника.
Конечные точки API:
| Метод | Конечная точка | Описание |
|---|---|---|
GET |
/api/status |
Статус выполнения, порты, время работы |
GET |
/api/traffic |
Глобальные счетчики трафика и счетчики по каждой политике |
GET |
/api/connections |
Текущие активные соединения |
DELETE |
/api/connections/:id |
Закрыть соединение |
GET |
/api/connections/history |
История записей соединений |
GET |
/api/connections/processes |
Статистика соединений по процессам |
GET |
/api/connections/:id/request |
Захваченные данные запроса для соединения |
GET |
/api/connections/:id/response |
Захваченные данные ответа для соединения |
GET |
/api/dns |
Записи кэша DNS |
DELETE |
/api/dns/cache |
Очистить кэш DNS |
DELETE |
/api/dns/records/:domain |
Удалить одну DNS-запись |
GET |
/api/config |
Текущая конфигурация |
PUT |
/api/config |
Перезагрузить конфигурацию |
GET |
/api/policies |
Группы политик и текущий выбор |
PUT |
/api/policies/:group |
Изменить выбор группы политик |
PUT |
/api/mode |
Установить режим исходящих соединений |
GET |
/api/features |
Состояния переключателей функций |
PUT |
/api/features/mitm |
Переключить MitM |
PUT |
/api/features/record-traffic |
Переключить запись трафика |
GET |
/api/rules |
Загруженные правила |
GET |
/api/logs |
Последние записи журнала |
Примечания к конечным точкам:
GET /api/connectionsпринимаетlimit(положительное целое, по умолчанию и максимум 1000) иcursor(возвращает только соединения сidбольше курсора). Полеdataответа содержитconnections,total,page_size,has_moreи — когда есть ещё страницы —next_cursor.GET /api/connections/historyпринимаетlimit(по умолчанию 100, максимум 1000) иcursor/before(синонимы; передача обоих отклоняется).GET /api/connections/:id/requestи.../responseвозвращают{"connection_id": <id>, "data": "<base64>"}. Захваты больше 2 МиБ возвращают413.GET /api/configвозвращает конфигурацию, в которой чувствительные значения (http-auth,external-http-secret,ca-p12,ca-passphrase, ключи WireGuard и подобные) заменены на<redacted>— не передавайте результат обратно вPUT /api/configкак есть, иначе эти заполнители будут буквально записаны в конфигурацию.PUT /api/configпринимает либо JSON{"configuration": "<полный текст>"}, либо сырой текст конфигурации в теле запроса (лимит 1 МБ). При успехе ядро перезагружается — или запускается, если оно не работало.PUT /api/policies/:groupберёт выбор из первого из ключей телаpolicy,name,selected,select; значением может быть имя политики или числовой индекс в виде строки. Специальное имя группыGLOBALустанавливает глобально выбранную политику.PUT /api/modeтребует число JSON:{"mode": 0}—0правила,1напрямую,2прокси.PUT /api/features/mitmиPUT /api/features/record-trafficпринимают{"enabled": true}.GET /api/logsпринимаетsince(секунды Unix); буфер в памяти хранит последние 1000 записей, каждая —{timestamp, level, section, message}.
Пример — прочитать статус, затем переключить группу политик:
curl -H "Authorization: Bearer your-secret-token" http://127.0.0.1:9090/api/status
{"ok":true,"data":{"running":true,"outbound_mode":0,"mitm":false, ...}}
curl -X PUT -H "Authorization: Bearer your-secret-token" \
-d '{"policy": "ProxyB"}' http://127.0.0.1:9090/api/policies/MainGroup
{"ok":true,"data":{"outbound_mode":0,"selectable_groups":[...], ...}}
Примечание: Эта функция отключена по умолчанию. Каждый ответ использует конверт
{"ok": true, "data": {...}}при успехе и{"ok": false, "error": {"code": "...", "message": "..."}}при ошибках; тела запросов ограничены 1 МБ.Конечные точки
PUTтакже принимаютPATCH. Для сторонних панелей доступны Clash-совместимые псевдонимы путей:/version,/traffic,/connections,/configs,/proxies,/rules— пути доступны, но ответы используют конверт и имена полей Chute, а не схему Clash (/versionвозвращает только{"name", "run_id"}), поэтому панели Clash не заработают «из коробки».
Отпечаток клиента
global-client-fingerprint = chrome
Задает отпечаток TLS-клиента для каждой политики, у которой нет собственного fingerprint. Значение самой политики всегда имеет приоритет, поэтому это значение по умолчанию, а не принудительная замена.
Поддерживаемые значения: chrome, firefox, safari и ios, а также edge,
360, qq, android и random — все они обрабатываются как Chrome.
Нераспознанное значение игнорируется, и используется TLS-стек платформы.
По умолчанию: пусто, то есть TLS-стек платформы. Его читают только политики Trojan, VMess, VLESS и ShadowTLS.
Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.