Правила
Chute может перенаправлять запросы на другой прокси-сервер или подключаться к хосту напрямую, в зависимости от пользовательских правил.
Приоритет
Правила сопоставляются от первого к последнему в порядке их появления в файле конфигурации. Другими словами, правила в начале списка имеют более высокий приоритет, чем последующие.
Состав
Каждое правило состоит из 3 частей: тип правила, сопоставитель трафика (кроме правила FINAL) и прокси-политика: TYPE, VALUE, POLICY. Например: DOMAIN-SUFFIX,apple.com, DIRECT IP-CIDR, 192.168.0.0/16,ProxyA
Прокси-политика должна быть названа в соответствии с одним из имен политик, включая прокси, группу политик, DIRECT или REJECT. Правила должны заканчиваться правилом FINAL для определения поведения по умолчанию.
Пример:
[Rule]
DOMAIN-SUFFIX,company.com,ProxyA
DOMAIN-KEYWORD,google,DIRECT
GEOIP,US,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,ProxyB
Типы правил
Правила на основе доменов
| Тип | Синтаксис | Совпадение |
|---|---|---|
| DOMAIN | DOMAIN,www.apple.com,Proxy |
Точное совпадение домена |
| DOMAIN-SUFFIX | DOMAIN-SUFFIX,apple.com,Proxy |
Совпадение суффикса домена |
| DOMAIN-KEYWORD | DOMAIN-KEYWORD,google,Proxy |
Домен содержит ключевое слово |
| DOMAIN-WILDCARD | DOMAIN-WILDCARD,*.apple.com,Proxy |
Совпадение с подстановочным знаком |
| DOMAIN-REGEX | DOMAIN-REGEX,^mail\..+\.com$,Proxy |
Совпадение домена по регулярному выражению |
| DOMAIN-SET | DOMAIN-SET,my-set,DIRECT |
Именованный набор доменов из файла/URL |
Правила на основе IP
| Тип | Синтаксис | Совпадение |
|---|---|---|
| IP-CIDR | IP-CIDR,192.168.0.0/16,DIRECT |
IP-адрес в диапазоне CIDR |
| IP-CIDR6 | IP-CIDR6,2001:db8::/32,DIRECT |
IPv6-адрес в диапазоне CIDR |
| GEOIP | GEOIP,US,DIRECT |
Код страны из базы GeoIP |
| IP-ASN | IP-ASN,13335,DIRECT |
IP-адрес принадлежит ASN |
Правила уровня HTTP
| Тип | Синтаксис | Совпадение |
|---|---|---|
| USER-AGENT | USER-AGENT,Instagram*,DIRECT |
Заголовок User-Agent |
| URL-REGEX | URL-REGEX,^http://google\.com,DIRECT |
URL совпадает с регулярным выражением |
| PROTOCOL | PROTOCOL,HTTPS,Proxy |
Определенный протокол (HTTP/HTTPS/TLS/SSH и др.) |
Правила процессов (только Mac)
| Тип | Синтаксис | Совпадение |
|---|---|---|
| PROCESS-NAME | PROCESS-NAME,Telegram,Proxy |
Имя процесса (сопоставление с подстановочными знаками) |
| PROCESS-PATH | PROCESS-PATH,/Applications/Safari.app,Proxy |
Полный путь процесса |
| PROCESS-NAME-REGEX | PROCESS-NAME-REGEX,^Safari$,DIRECT |
Имя процесса (сопоставление по регулярному выражению) |
Правила портов и источников
| Тип | Синтаксис | Совпадение |
|---|---|---|
| DEST-PORT | DEST-PORT,80,DIRECT |
Порт назначения |
| SRC-IP | SRC-IP,192.168.20.100,DIRECT |
Исходный IP-адрес |
| SRC-PORT | SRC-PORT,52345,DIRECT |
Исходный порт |
| IN-PORT | IN-PORT,6152,DIRECT |
Входящий порт прокси на Chute |
Правила расширенного сопоставления
| Тип | Синтаксис | Совпадение |
|---|---|---|
| SUBNET | SUBNET,TYPE:WIFI,Proxy |
Атрибуты сетевой подсети (TYPE, BSSID, SSID, ROUTER) |
| HOSTNAME-TYPE | HOSTNAME-TYPE,AAAA,Proxy |
Тип DNS-записи (A/AAAA и др.) |
| IN-TYPE | IN-TYPE,SOCKS5,Proxy |
Тип входящего соединения (HTTP/SOCKS5/TUN) |
| IN-USER | IN-USER,user1,Proxy |
Имя пользователя входящей аутентификации |
| IN-NAME | IN-NAME,my-proxy,Proxy |
Имя входящего прокси-сервера |
Логические правила
| Тип | Синтаксис | Совпадение |
|---|---|---|
| AND | AND,((DOMAIN,example.com),(DEST-PORT,443)),Proxy |
Все подправила совпадают |
| OR | OR,((DOMAIN,example.com),(DOMAIN,test.com)),Proxy |
Любое подправило совпадает |
| NOT | NOT,((DOMAIN,example.com)),Proxy |
Подправило НЕ совпадает |
Специальные правила
| Тип | Синтаксис | Совпадение |
|---|---|---|
| RULE-SET | RULE-SET,SYSTEM,DIRECT |
Набор правил из файла, URL или встроенных наборов |
| SCRIPT | SCRIPT,MyRuleScript,PROXY |
Пользовательское сопоставление на основе JavaScript |
| FINAL | FINAL,ProxyB |
По умолчанию, когда ни одно другое правило не совпало (должно быть последним) |
Опции
no-resolve
Когда встречается правило GEOIP, IP-CIDR или IP-ASN, Chute отправляет DNS-запрос, чтобы проверить, является ли имя хоста запроса доменом. Вы можете выбрать опцию no-resolve, чтобы пропустить это правило для запроса с доменом.
GEOIP,US,DIRECT,no-resolve
IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
Примечание: Если некоторые домены не могут быть разрешены локальным DNS-сервером, убедитесь, что перед правилом, которое соответствует этому домену, нет правил на основе IP. В противном случае проверка правила завершится ошибкой из-за ошибки DNS. Вы также можете использовать
no-resolveдля решения этой проблемы.
force-remote-dns
Принудительное разрешение DNS через удаленный прокси-сервер вместо локального DNS.
DOMAIN-SUFFIX,google.com,Proxy,force-remote-dns
extended-matching
Расширяет сопоставление правил на основе доменов для также проверки заголовка HTTP Host в дополнение к имени хоста соединения. Это полезно, когда SNI или цель CONNECT отличается от заголовка Host.
DOMAIN-SUFFIX,example.com,Proxy,extended-matching
requires-resolve
Для правил SCRIPT гарантирует, что разрешение DNS завершено до выполнения скрипта. Это гарантирует, что $request.dnsResult доступен в скрипте.
SCRIPT,MyRuleScript,PROXY,requires-resolve
Набор доменов
Chute поддерживает определение именованных наборов доменов из внешних файлов или URL, используемых с типом правила DOMAIN-SET. Каждая строка в файле набора доменов содержит объявление правила без политики.