Конфигурация
Большинство функций Chute управляются файлом конфигурации. Вы можете редактировать его в собственном текстовом редакторе или во встроенном редакторе Chute iOS, Chute tvOS, Chute Mac (вкладка Конфигурация главного окна или Настройки... в прежнем интерфейсе) либо Chute Android. У Chute Dashboard редактора конфигурации нет — он правит правила работающего движка, но никогда не файл.
Chute iOS умеет синхронизировать файлы конфигурации через iCloud Drive; это лицензируемая возможность. У Chute Mac собственной синхронизации с iCloud нет: там «поделиться файлом» означает выбрать в панели импорта файл, который лежит в iCloud Drive, — и дальше на него ссылаются прямо по месту.
Разделы конфигурации
Файл конфигурации организован в именованные разделы:
| Раздел | Назначение |
|---|---|
[General] |
Глобальные настройки (логирование, IPv6, DNS, порты прокси и т.д.) |
[Proxy] |
Определения исходящих прокси-серверов |
[Proxy Group] |
Определения групп политик (select, url-test, fallback, load-balance, ssid, subnet) |
[Rule] |
Правила сопоставления и маршрутизации трафика |
[Host] |
Локальные сопоставления DNS «хост → IP» |
[DNS] |
Настройки DNS, принимающие как ключи DNS из [General], так и переопределения для отдельных доменов в стиле [Host] |
[URL Rewrite] |
Правила перезаписи URL |
[Header Rewrite] |
Правила перезаписи HTTP-заголовков |
[Body Rewrite] |
Правила поиска и замены в теле HTTP |
[Map Local] |
Правила имитации ответов |
[MITM] |
Настройки расшифровки HTTPS |
[Script] |
Определения скриптов JavaScript |
[SSID Setting] |
Настройки для отдельных сетей: приостановка и переопределение DNS для сети Wi-Fi или типа сети |
[Replica] |
Фильтры записи трафика |
[Module] |
Внешние файлы модулей |
[WireGuard <name>] |
Конфигурации туннелей WireGuard (требуется имя экземпляра, например [WireGuard HomeServer]) |
[AmneziaWG <name>] |
Конфигурации туннелей AmneziaWG, совместимых с WireGuard, с параметрами обфускации (требуется имя экземпляра, например [AmneziaWG HomeServer]) |
[Tailscale] |
Глобальная конфигурация Tailscale (глобально уникальна; заголовок [Tailscale <name>] читается как этот раздел) |
[Proxy Provider] |
Внешние источники списков прокси |
[Rule Provider] |
Внешние источники наборов правил |
[Ruleset <name>] |
Набор правил внутри конфигурации, используется через RULE-SET,<name> — см. Наборы правил |
Внимание: Разделы
[Panel],[Ponte],[MTProto],[Keystore],[Port Forwarding],[Testing],[DHCP]и[Snell Server]распознаются, чтобы конфигурация Surge не вызывала ошибку (для каждого в журнал пишется одно уведомление), и их строки сохраняются дословно при сохранении конфигурации, но в Chute они не имеют никакого эффекта.
Раздел DNS
Связанные с DNS ключи из [General] могут быть равнозначно записаны в разделе верхнего уровня [DNS]. Строки в этом разделе обрабатываются в зависимости от ключа:
| Строка | Обработка |
|---|---|
dns-server, direct-dns-server, proxy-dns-server, doh (псевдонимы doh-server, doh-service), dot, doq, doh3, encrypted-dns-server, allow-dns-svcb, encrypted-dns-follow-outbound-mode, hijack-dns, always-real-ip |
Точно так же, как в [General]; ключ сохраняется так, как если бы он был записан там |
| Любая другая строка | Разбирается по синтаксису отдельных доменов из [Host], например *.example.com = server:1.1.1.1 |
| Ключ, не относящийся ни к тем, ни к другим | Игнорируется с уведомлением в журнале; сама строка сохраняется |
[DNS]
doh = https://dns.google/dns-query
hijack-dns = 8.8.8.8:53
*.example.com = server:1.1.1.1
Примечание: Поскольку здесь принимаются обе формы строк, раздел
[DNS]может смешивать настройки DNS-серверов с переопределениями для отдельных доменов. Не повторяйте одну и ту же настройку в[General]и[DNS]: например, вторая строкаdohбудет отмечена как дублирующая конфигурация DoH.Примечание:
fallback-dns-serverиencrypted-dns-skip-cert-verificationчитаются и в разделе[DNS], хотя их нет в первой строке таблицы. Ключ, который не является настройкой DNS, здесь не игнорируется — он читается как переопределение для домена, поэтому по ошибке попавший сюда ключ[General]вродеoptimistic-dns = falseмолча превращается в сопоставлениеoptimistic-dns→false. Уведомление выдаётся только для строки, которую отвергает и парсер переопределений. См. DNS.
Подключение другого файла
Профиль может подтянуть другой файл. Surge пишет #!include <путь>, Shadowrocket — include = <other.conf> перед первым разделом. Читаются обе формы, и подключаемый файл вставляется там, где стоит директива, так что фрагмент [Rule] попадает внутрь назвавшего его раздела.
#!include Rulesets/company.list
- Путь разрешается относительно каталога файла, который его называет, и может содержать
*—#!include Rulesets/*.listподтягивает целый каталог фрагментов правил в порядке имён. - Подключения вкладываются на глубину до 8 уровней, а уже подтянутый файл — включая сам профиль — не подтягивается второй раз, так что цикл не может разрастись; профиль, подключающий сам себя, просто игнорируется.
- Подключение раскрывается, только если профиль был загружен из файла. Переданный движку как текст — а именно так конфигурация обычно попадает в туннель — он не имеет каталога для разрешения пути, поэтому профиль помечается как неполный, а не считается целым. Сама директива сохраняется при записи конфигурации: она записывается ровно так, как была прочитана, а содержимое подключённого файла никогда не записывается в профиль.
Комментарии
Строка, начинающаяся с #, ; или //, — комментарий. Те же три знака открывают и встроенный комментарий, но только сразу после пробела или табуляции и никогда внутри кавычек ("…" или '…', где \ экранирует следующий символ). Поэтому :// в URL, путь вроде a//b и значение base64 без кавычек, в котором случайно есть // или #, остаются целыми. Комментарии и пустые строки сохраняются при сохранении конфигурации.
В разделах перезаписи и в строках ssid / subnet раздела [Proxy Group] встроенные комментарии работают иначе:
| Где | # |
; |
// |
Кавычки |
|---|---|---|---|---|
[URL Rewrite] |
Как выше | Как выше | Как выше | Нет: строка делится по пробельным символам, и первое слово, начинающееся со знака комментария, завершает её |
[Header Rewrite] |
Никогда не комментарий, поэтому header-add X-Color #ff0000 сохраняет своё значение |
Никогда не комментарий | Как выше | "…" |
[Body Rewrite], [Map Local] |
Как выше | Никогда не комментарий | Как выше | "…"; в строке jq также '…' |
Строки ssid / subnet раздела [Proxy Group] |
Как выше | Как выше | Как выше | Только "…": апостроф — часть имени сети вроде Bob's iPhone |
Строки директив — #!include, #!MANAGED-CONFIG, #!IOS-ONLY и подобные — читаются как директивы прежде, чем вступает в силу что-либо из этого. Файлы, которые скачивает набор правил, набор доменов или провайдер прокси, не являются разделами конфигурации: комментарием в них может быть только целая строка.
Эта страница — перевод английской версии. При расхождениях приоритет имеет английская версия.