Наборы правил

Вы можете использовать набор правил из URL, из настроенного провайдера правил (Rule Provider) или из раздела в самой конфигурации. Chute также предоставляет два встроенных набора правил.

Встроенные наборы правил

SYSTEM

RULE-SET,SYSTEM,DIRECT

Включает правила для большинства запросов, отправляемых самой macOS и iOS. Запросы от App Store, iTunes и других контент-сервисов не включены.

USER-AGENT,*com.apple.mobileme.fmip1
USER-AGENT,*WeatherFoundation*
USER-AGENT,%E5%9C%B0%E5%9B%BE*
USER-AGENT,%E8%AE%BE%E7%BD%AE*
USER-AGENT,com.apple.geod*
USER-AGENT,com.apple.Maps
USER-AGENT,FindMyFriends*
USER-AGENT,FindMyiPhone*
USER-AGENT,FMDClient*
USER-AGENT,FMFD*
USER-AGENT,fmflocatord*
USER-AGENT,geod*
USER-AGENT,locationd*
USER-AGENT,Maps*
DOMAIN,api.smoot.apple.com
DOMAIN,captive.apple.com
DOMAIN,configuration.apple.com
DOMAIN,guzzoni.apple.com
DOMAIN,smp-device-content.apple.com
DOMAIN,xp.apple.com
DOMAIN-SUFFIX,ess.apple.com
DOMAIN-SUFFIX,push-apple.com.akadns.net
DOMAIN-SUFFIX,push.apple.com
DOMAIN,aod.itunes.apple.com
DOMAIN,mesu.apple.com
DOMAIN,api.smoot.apple.cn
DOMAIN,gs-loc.apple.com
DOMAIN,mvod.itunes.apple.com
DOMAIN,streamingaudio.itunes.apple.com
DOMAIN-SUFFIX,lcdn-locator.apple.com
DOMAIN-SUFFIX,lcdn-registration.apple.com
DOMAIN-SUFFIX,ls.apple.com
PROCESS-NAME,trustd

Эти правила могут обновляться с обновлениями Chute. Актуальный список подправил см. в описании внутри приложения.


LAN

RULE-SET,LAN,DIRECT

Включает правила для IP-адресов локальной сети и суффикса .local. Обратите внимание, что этот набор правил вызовет DNS-запрос.

DOMAIN-SUFFIX,local
IP-CIDR,192.168.0.0/16
IP-CIDR,10.0.0.0/8
IP-CIDR,172.16.0.0/12
IP-CIDR,127.0.0.0/8
IP-CIDR,100.64.0.0/10
IP-CIDR,255.0.0.0/8
IP-CIDR,fc00::/7
IP-CIDR,::1/128
IP-CIDR,fe80::/10

Внешние наборы правил

Набор правил из http(s) URL. Файл набора правил должен быть текстовым файлом. Каждая строка содержит объявление правила без политики.

Внимание: Файлы наборов правил поддерживают только простые (нелогические) типы правил. Логические правила (AND/OR/NOT), SCRIPT и строки DOMAIN-SET отбрасываются. Строка RULE-SET в файле, загруженном по RULE-SET,<url>, инертна: парсер оставляет только встроенные значения SYSTEM и LAN, да и те никогда не разворачиваются, так что такая строка не совпадает никогда. Вложенные ссылки работают в полезной нагрузке [Rule Provider] и во разделе [Ruleset] в самой конфигурации. Строка, содержащая только CIDR (например, 1.2.4.0/24), принимается как правило IP-CIDR.

RULE-SET,https://example.com/my-rules.txt,Proxy
RULE-SET,https://example.com/my-rules.txt,Proxy,update-interval=86400

Необязательный параметр update-interval задаёт в секундах, насколько старой может стать загруженная копия. Таймера нет: первое сопоставление с набором после того, как копия стала старше этого значения, скачивает её заново в фоне. При загрузке конфигурации кэшированная копия моложе этого значения используется как есть, без скачивания, а копия старше него не используется, так что набор должен скачаться, прежде чем начнёт совпадать. Без update-interval кэшированная копия сохраняется, и набор скачивается, только когда копии нет. Записанная в строке RULE-SET опция no-resolve применяется к каждому правилу на основе IP в наборе.

Пример файла набора правил:

DOMAIN,exampleA.com
DOMAIN,exampleB.com

Чтобы использовать локальный файл, определите запись в разделе [Rule Provider] с параметром path= и ссылайтесь на неё по имени:

[Rule Provider]
my-rules = type=file, path=/path/to/my-rules.txt, format=native

[Rule]
RULE-SET,my-rules,Proxy

Параметры провайдера правил: type (http или file; для http требуется url=), behavior (classical для объявлений правил, domain для набора доменов, ipcidr для списка CIDR без типа правила — также применимо к провайдерам Clash/mihomo, чьи данные с CIDR без типа правила принимаются; по умолчанию classical), format (native — или surge — для строк правил Chute, mihomo-yaml для YAML-файла rule-provider в формате Clash/mihomo, sing-box-source — или sing-box, source — для набора правил sing-box в формате source (JSON); по умолчанию mihomo-yaml) и interval (в секундах, по умолчанию 86400). Положительный interval заново скачивает данные при каждой загрузке конфигурации, а кэшированная копия старше этого значения не используется; 0 скачивает их, только если кэшированной копии нет; при отрицательном значении данные не скачиваются никогда — даже по update-interval строки RULE-SET, — так что провайдер остаётся неактивным, если нет кэшированной копии. Пока Chute работает, провайдер обновляется только через строку RULE-SET, которая ссылается на него по имени и содержит update-interval: первое сопоставление после того, как кэшированная копия стала старше этого значения, скачивает её заново из собственного источника провайдера. В строке [Rule Provider] нет ключа, который нёс бы правила, поэтому type=inline там даёт пустой провайдер; набор правил внутри конфигурации записывайте как раздел [Ruleset <name>].

policy=<name> загружает полезную нагрузку через эту политику или группу — это proxy: в mihomo, — например my-rules = type=http, url=https://example.com/rules.yaml, policy=Proxy; для группы используется её выбор на момент начала загрузки. Без него или с policy=DIRECT полезная нагрузка загружается напрямую. Неопределённое имя отклоняет загрузку, а не загружает напрямую.

GET /api/rules/providers в HTTP API управления сообщает о каждой записи [Rule Provider] и каждом разделе [Ruleset]: загрузились ли они, почему нет и какие были предупреждения конвертации. Его rule_count считает строки раздела [Ruleset] и остаётся 0 для загружаемого или файлового провайдера. RULE-SET,<url> и DOMAIN-SET,<url> в список не входят; неудачная загрузка такого набора видна только в журнале.

На iPhone, Apple TV и Android у полезной нагрузки провайдера правил — загруженной или прочитанной из файла — есть предел размера, потому что у туннеля там почти нет свободной памяти: 400 КБ для sing-box-source и 1 МБ для всех прочих форматов. Полезная нагрузка сверх предела не загружается, а причина указывается в состоянии провайдера. RULE-SET,<url> и DOMAIN-SET,<url> читаются без преобразования в памяти, и предела у них нет. На настольных системах предела нет, поэтому большой опубликованный набор (geosite/cn и подобные) загружается как провайдер только там. На этих платформах индекс наборов правил держит открытыми одновременно не более 24 соединений с базой данных (128 на компьютере).

Если данные mihomo-yaml не удаётся разобрать, но они выглядят как обычный список строк правил, они читаются как native, а в журнал записывается уведомление. Строка данных mihomo с поведением classical не указывает политику, поэтому всё, что следует за её значением, читается как параметры: no-resolve сохраняется, а любой другой параметр — например, src из mihomo — отбрасывается. Логическое правило и правило …-REGEX сохраняют остаток строки как своё значение.

Данные, представляющие собой объект JSON, сначала пробуются как набор правил sing-box, поэтому набор правил sing-box, объявленный с форматом по умолчанию, тоже загружается. В наборе правил sing-box правило, все условия которого одного вида, превращается в одну строку на каждое значение. Виды такие: назначение (domain, domain_suffix, domain_keyword, domain_regex, ip_cidr, geoip и ip_is_private, которое превращается в диапазоны частных адресов с no-resolve), порт назначения (port, port_range), адрес источника (source_ip_cidr, source_ip_is_private), порт источника (source_port, source_port_range), а также protocol, network, process_name и process_path — каждый как отдельный вид. clash_mode: rule игнорируется, поскольку Chute работает только в режиме правил; любой другой clash_mode отбрасывает правило. Правило, сочетающее разные виды (например, домен и порт), правило с invert и правило logical нельзя записать одной строкой: они пропускаются и перечисляются в предупреждениях набора. Скомпилированные двоичные форматы прочитать нельзя. Провайдер .srs из sing-box распознаётся как таковой — по format=srs, по format=binary или по расположению, оканчивающемуся на .srs, — и остаётся неактивным со статусом, который советует указать на исходную (.json) форму sing-box. .mrs из mihomo не распознаётся: его полезная нагрузка просто не декодируется как текст, поэтому набор остаётся неактивным с общим статусом об ошибке загрузки. На macOS импортёр перенаправляет двоичный набор на исходную (source) версию рядом с ним, если издатель её предлагает; на iOS, Apple TV и Android — нет.

RULE-SET и DOMAIN-SET можно использовать как подправила внутри логических правил AND/OR/NOT — NOT,((RULE-SET,cn_ip)),Proxy работает, а вложенный набор сопоставляется тем же фильтром полезной нагрузки, что и записанный отдельно.


Набор правил внутри конфигурации

Раздел [Ruleset <name>] хранит набор правил прямо в файле конфигурации (синтаксис Surge). Каждая строка в нём — объявление правила без политики, как в файле набора правил, а правило ссылается на раздел по имени:

[Ruleset Streaming]
DOMAIN-SUFFIX,netflix.com
IP-CIDR,198.51.100.0/24,no-resolve

[Rule]
RULE-SET,Streaming,Proxy

Раздел работает как запись [Rule Provider] с type=inline и format=native и сохраняется обратно в виде раздела. Два набора правил с одинаковым именем — ошибка конфигурации.

Раздел в самой конфигурации — как и данные провайдера правил — может содержать RULE-SET,SYSTEM, RULE-SET,LAN или RULE-SET,<другой раздел в конфигурации>. Они раскрываются при загрузке правил, не глубже 8 уровней. Ссылка, образующая цикл, а также ссылка на набор правил типа file или http, на набор доменов или на DOMAIN-SET отбрасывается с предупреждением.


Набор доменов

Набор доменов похож на внешний набор правил, но предназначен специально для доменных имён и использует более компактный формат файла.

DOMAIN-SET,https://example.com/domains.txt,DIRECT
DOMAIN-SET,https://example.com/domains.txt,DIRECT,update-interval=86400

Первое поле после типа должно быть http(s) URL. Файл набора доменов содержит только доменные имена (без типа правила), по одному в строке (НЕ объявления правил):

# exact domain
example.com
# the domain and all of its subdomains
.example.org
+.example.net

Строки, начинающиеся с # или //, являются комментариями.

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

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

results matching ""

    No results matching ""