Прочие параметры

[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.


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

Позволяет другим устройствам в той же сети обращаться к портам HTTP- и SOCKS5-прокси Chute, расширяя адрес привязки обоих слушателей до 0.0.0.0. Конфигурации в стиле Surge — и сопоставление allow-lan при импорте из sing-box — несут только этот флаг и оставляют interface со значением по умолчанию 127.0.0.1, поэтому расширять адрес привязки должен сам флаг.

Флаг и явный шаблонный interface — две записи одного намерения, и Chute берёт их объединение: конфигурация, где уже написано 0.0.0.0, ведёт себя точно так же, как раньше. Изменение флага перепривязывает оба слушателя, поэтому отзыв доступа действует при перезагрузке конфигурации, а не при следующем запуске.

Это порты прокси, и без http-auth у них нет никакой аутентификации. В сети, которую вы не контролируете, задайте также учётные данные.


Управляемая конфигурация

#!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). Как подключить его, описано на странице Chute Dashboard.


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. Привязка к любому адресу вне петли (например, 192.168.1.5:9090) требует явно заданного external-http-secret — без него сервер откажется запускаться и запишет в журнал, чего не хватает.

Шаблонный адрес (0.0.0.0, ::, *) в этой проверке считается не-петлевым: он слушает все интерфейсы, то есть противоположность «только локально». Допустимые написания — 0.0.0.0:9090, *:9090 (то же самое) и для IPv6 [::]:9090; голое :::9090 берётся в скобки автоматически, а адрес, который не удаётся разобрать, сообщается как ошибка конфигурации, вместо того чтобы молча оставить контроллер выключенным. Петлевым считается весь диапазон 127.0.0.0/8, а не только 127.0.0.1.

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 = false их нет вовсе — страница отвечает 404).

Если ключ отсутствует, Chute генерирует токен, а не отдаёт API без аутентификации. Сгенерированный токен записывается в файл control-token в общей папке Chute — не рядом с конфигурацией: в контейнер группы приложений на iOS и tvOS, в закрытый каталог данных приложения на Android — с правами только для владельца, переиспользуется после перезапуска, и приложения показывают его — см. Открытие веб-консоли. Управляющий API может выдать базу соединений, записи которой содержат каждый URL, заголовок и имя процесса, встреченные за этот запуск; открытая панель управления — неразумное значение по умолчанию.

Если всё же нужно отдавать API без аутентификации, скажите это в конфигурации явно:

external-http-secret = none

Это принимается только при привязке к петле. Вне петли не хватит ни none, ни отсутствия ключа: сервер управления откажется запускаться и скажет, что ему нужно.

При обновлении: если вы полагались на то, что отсутствие external-http-secret означает «без аутентификации», локальные скрипты начнут получать 401. Либо прочитайте сгенерированный токен в приложении, либо напишите external-http-secret = none, чтобы намеренно сохранить прежнее поведение.

external-http-ui (По умолчанию: true)

external-http-ui = true

Если включено, Chute предоставляет встроенный веб-интерфейс по адресу контроллера. Веб-интерфейс предоставляет обзорную панель, управление соединениями, проверку DNS, мониторинг трафика, управление политиками и редактирование конфигурации. Установите false, чтобы сохранить API включенным, отключив интерфейс.

Открытие веб-консоли

Консоль отдаётся по адресу сервера управления, и каждое приложение может передать вам адрес и токен — включая сгенерированный, прочитать который иначе негде:

  • Chute Mac: строка меню → Открыть веб-консоль и Копировать токен веб-консоли. В окне сведений о соединении также есть Запросы и история, открывающая консоль — её главную страницу, а не это соединение.
  • Chute iOS: панель управления → строка Web UI → Открыть, Копировать адрес или Копировать токен доступа.
  • Chute tvOS: в панели управления под переключателем Web UI есть отдельная строка Адрес веб-интерфейса, показывающая хост и порт. При её выборе показывается QR-код, если слушатель доступен с других устройств — токен входа спрятан внутри кода, а не на экране, — а если контроллер привязан к петлевому адресу, вместо него выводится объяснение: петлевую консоль с телефона не открыть.
  • Chute Android: панель управления показывает адрес как подзаголовок переключателя HTTP API, а отдельная строка Сгенерированный токен доступа копирует его по нажатию — эта строка появляется только когда токен сгенерировало ядро; заданный вами секрет никогда не показывается.

Полученный адрес несёт токен в параметре запроса. Страница использует его при загрузке и убирает из адресной строки, так что открытие ссылки — это законченный вход, и никому не приходится переписывать 32 шестнадцатеричных знака.


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 Перезагрузить конфигурацию
POST /api/config/validate Разобрать конфигурацию и сообщить об ошибках, не загружая её
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 Загруженные правила и то, какие правила перезаписи срабатывали
POST /api/rules/match Куда был бы смаршрутизирован запрос, не отправляя его
GET /api/logs Последние записи журнала
GET /api/loglevel Текущий уровень журнала и записываемые разделы
PUT /api/loglevel Сменить уровень журнала или разделы без перезапуска
GET /api/health Здоровье движка: отказы, поколения, потребление памяти, прошлое завершение
GET /api/events Заметные события этого запуска
GET /api/tailscale Текущее состояние движка Tailscale
POST /api/diagnostics/ping Проверка доступности по ICMP или TCP
POST /api/diagnostics/dns-query Разрешить домен через работающий резолвер
POST /api/diagnostics/egress-probe Определить текущий исходящий IP
POST /api/diagnostics/url-test/:policy Запустить тест задержки политики
POST /api/diagnostics/bundle Собрать очищенный диагностический архив
GET /api/connections/export Экспорт соединений в HAR 1.2
GET /api/rewrites Все семейства перезаписи/Mock и список хостов MitM
GET /api/rewrites/:family Правила одного семейства
POST /api/rewrites/:family Добавить правило
DELETE /api/rewrites/:family/:id Удалить правило
DELETE /api/rewrites/:family Очистить семейство
GET /api/mitm/hosts Хосты, которые сейчас расшифровываются
POST /api/mitm/hosts Добавить хост
DELETE /api/mitm/hosts/:host Удалить хост
DELETE /api/mitm/hosts Очистить список

Примечания к конечным точкам:

  • 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": "<full text>"}, либо сырой текст конфигурации в теле запроса (лимит 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}.
  • GET /api/health сообщает, что движок сейчас удерживает и почему в последний раз что-то отклонил, а также как завершился предыдущий запуск (clean, unclean или suspected_memory — см. Устранение неполадок).
  • GET /api/events отдаёт кольцевой буфер в памяти; ?persisted=1 читает сохранённую историю этого запуска и отвечает available: false, если запись выключена.
  • Без секции [Tailscale] GET /api/tailscale отвечает state: "idle" — это нормальный ответ, а не ошибка.
  • Проверки POST /api/diagnostics/* берут аргументы из строки запроса или JSON-тела, ограничены десятью секундами и отвечают ровно один раз. url-test/:policy отклоняет имя несуществующей политики, а не измеряет REJECT.
  • POST /api/rules/match отвечает, куда пошёл бы запрос, не открывая соединения. Он принимает host (или url, из которого берутся хост и порт), port (по умолчанию 443), а также необязательные ip, protocol, process, process_path, src_ip, src_port, in_port, in_type, in_user, in_name, network, ssid, bssid, from_tun, user_agent — незнакомое поле не игнорируется, а отклоняется вместе со списком допустимых. В ответе есть правило matched (его строка, тип, названная им политика и resolved_policy, на которую в данный момент указывает группа), policy, need_resolve, а также rule_count и match_generation, относительно которых считался ответ. Поскольку домен сопоставляется дважды — сначала по имени, затем ещё раз, когда известен адрес, — в passes по одной записи на проход; без ip существует только проход до разрешения имени, и ответ говорит об этом в note. Добавьте explain=true, чтобы получить правила-кандидаты, которые тоже могли совпасть, до 50 штук, вместе с числом нераскрытых наборов правил.
  • POST /api/config/validate разбирает конфигурацию и выбрасывает её: работающее ядро не принимает из неё ничего. Отправьте её как {"configuration": "<full text>"} или сырым текстом. В ответе — valid, error_count, advisory_count, rule_count, policy_count и список errors из {line, severity, content, error}; severity отделяет отвергнутую строку от принятой с оговоркой, а content — это сама проблемная строка в отредактированном виде, потому что плохая строка [Proxy] обычно несёт тот самый пароль, который её и испортил. Пользуйтесь этим перед PUT /api/config, который перезапускает тот самый запуск, который вы отлаживаете.
  • GET /api/loglevel сообщает текущий level, nslog_level, записываемые в файл sections, а также available_levels / available_sections, которые можно задать. PUT (или PATCH) принимает level, sections либо и то и другое: sections — это массив имён разделов или строка "all", а пустой массив отклоняется; чтобы прекратить запись, используйте level со значением none. Смена уровня таким способом не перезапускает работающий процесс, и в этом весь смысл: loglevel = verbose в файле требует перезагрузки, а перезагрузка теряет как раз то, что вы пытались увидеть.
  • GET /api/rules дополнительно сообщает rewrite_hits — каждое правило перезаписи или Mock, сработавшее за этот запуск, со счётчиком. Правило, которого там нет, ни разу не совпало — это обычное объяснение перезаписи, которая как будто ничего не делает. Таблица отслеживает до 512 различных правил, а всё сверх этого сообщает в rewrite_hit_dropped_rules.
  • POST /api/rewrites/:family принимает {"rule": "<configuration line>"} — тот же текст, что вы написали бы в файле. Строка, которая не разбирается, отклоняется с 400, а не сохраняется как правило, которое никогда не совпадёт. :family — одно из url-rewrite, header-rewrite, body-rewrite, mock. Добавленные так правила живут только в работающем ядре и не записываются обратно в файл конфигурации.
  • GET /api/connections/export?format=har возвращает документ HAR 1.2, а POST /api/diagnostics/bundlezip. Оба являются файлами, поэтому, в отличие от остальных точек, не заворачиваются в {"ok": ..., "data": ...}. export принимает source (current по умолчанию или history), limit (по умолчанию 100, максимум 300), ids и bodies=1 для включения захваченных тел. Каждая запись несёт объект _kl с тем, для чего в HAR нет полей: выбранная политика, совпавшее правило и сработавшие перезаписи.

Пример — прочитать статус, затем переключить группу политик:

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":[...], ...}}

Пример — спросить, куда пойдёт запрос, прежде чем его отправлять:

curl -X POST -H "Authorization: Bearer your-secret-token" \
     -d '{"url": "https://api.example.com/v1/orders", "explain": true}' \
     http://127.0.0.1:9090/api/rules/match
{"ok":true,"data":{"policy":"MainGroup","matched":{"rule":"DOMAIN-SUFFIX,example.com,MainGroup", ...}, ...}}

Сузить журнал до одной подсистемы во время воспроизведения, не перезапуская процесс:

curl -X PUT -H "Authorization: Bearer your-secret-token" \
     -d '{"level": "verbose", "sections": ["MitM", "DNS"]}' \
     http://127.0.0.1:9090/api/loglevel

Примечание: Эта функция отключена по умолчанию. Каждый ответ использует конверт {"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.

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-05 01:01:42

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

results matching ""

    No results matching ""