Маршрутизация и правила в Karing

Руководство · karingpath.top

Diversion rules задают маршрут трафика в Karing: что уходит в прокси, что идёт напрямую, что режется. На karingpath.top этот раздел — про путь пакета: geoip/geosite/ACL, личные правила, порядок срабатывания и проверка, куда реально ушёл запрос.

Для чего нужны готовые списки geoip, geosite и ACL

Чтобы не перечислять тысячи адресов вручную, Karing использует готовые сборники имён и IP-диапазонов — geoip, geosite и ACL. Они собраны из списков, которые ведёт сообщество (project domain-list-community), хранятся в компактном формате .srs и умеют обновляться онлайн. Когда при первой настройке вы выбираете страну, приложение на самом деле включает пару системных правил — geoip:ru → напрямую и geosite:ru → напрямую.

Не путайте это с простым правилом «все сайты в зоне .ru»: списки устроены тоньше и включают конкретные домены и IP-диапазоны, которые сообщество относит к российским ресурсам. Всё, что попало в список, идёт мимо прокси и поэтому открывается быстрее, а остальное — включая часть заблокированных ресурсов — уходит через сервер. Такой базовой связки обычно хватает для старта, но её можно углублять личными правилами: например, имя geosite:amazon разом выделяет все домены Amazon, и дальше вы сами решаете, пускать их напрямую или блокировать — похожим образом устроены и списки для рекламных доменов.

Белый и чёрный список: два подхода к одному результату

Прежде чем править сами правила, стоит определиться, по какой стратегии вы работаете — в Karing есть два противоположных подхода. По умолчанию включён Белый список: трафик, который правила распознали как разрешённый в регионе (например, обращение к конкретному сайту), пересылается напрямую, а всё остальное — через прокси. Логика простая: нет смысла гонять через VPN то, что и так открывается, тем более что часть российских сервисов вообще не отвечает на обращения из-за рубежа.

Чёрный список устроен наоборот — напрямую по умолчанию идёт всё, а через прокси уходит только то, что явно выделено правилами как заблокированное. Отдельного переключателя между режимами нет: то, какой у вас фактически режим, определяется исключительно тем, куда направлено финальное правило final и системные группы. Дальше в этом материале разбирается настройка для Белого списка — так, как Karing работает из коробки, а пример Чёрного списка вынесен в отдельный раздел ближе к концу.

В правила заходят двумя путями — через значок с раздвоенной стрелкой на главном экране или через меню «Настройки».

Каким образом правила обрабатываются — порядок и приоритет

Экран «Правила перенаправления» (Настройки → Правила → Правила перенаправления) показывает не сами критерии отбора трафика, а то, что происходит с уже выделенным трафиком и в каком порядке — здесь собраны и личные правила, а также системные группы.

Экран «Правила перенаправления» в Karing
Правила перенаправления

Сверху вниз — логика проверки трафика

Правила идут строго сверху вниз, поэтому их порядок решает всё: как только кусок трафика совпал с каким-то условием, срабатывает назначенное для него действие — например, «Напрямую» (это иногда называют шунтированием) или отправка на конкретный сервер вроде «Текущий сервер». Если у правила не задано назначение — оно просто не работает; если трафик подходит сразу под несколько правил, применится то, что стоит выше. При этом ничто не мешает направлять разные правила на разные сервера параллельно — несколько соединений с прокси могут работать одновременно.

Сначала проверяются правила «Выбор проксируемых приложений», если вы их создавали в режиме Белого списка приложений: всё, что не отмечено как проксируемое, идёт напрямую — кроме случая, когда вы вообще не пометили ни одно приложение, тогда весь трафик уйдёт через прокси.

Схема маршрутизации трафика в Karing
Маршрутизация

Порядок правил ради экономии CPU и памяти

Ради экономии CPU и памяти телефона правила стоит выстраивать в определённой последовательности: сначала блокирующие — такой трафик дальше вообще не обрабатывается, затем прямые подключения-шунты, которые сразу пробрасываются насквозь. Только после всех личных правил в дело вступают системные группы geosite, geoip и ACL — их нельзя редактировать напрямую, разве что полностью отключить в режиме Чёрного списка. Замыкает цепочку встроенное правило final, которое ловит всё, что не подошло ни под одно из предыдущих условий, и по умолчанию отправляет это на «Текущий сервер» — собственно это и есть режим Белого списка. Поменять final на «Напрямую» можно, но это фактически переключает всю логику на Чёрный список, и правила придётся выстраивать заново.

Порядок важен и для нагрузки: относительно простые и узкие правила стоит держать выше, а тяжёлые и ресурсоёмкие — ниже, потому что каждое из них уменьшает объём трафика, который дойдёт до следующих проверок. Одно из самых объёмных правил — встроенный GFW: оно построено на регулярно обновляемых онлайн-списках заблокированных ресурсов и переадресовывает всё совпавшее на прокси. Именно поэтому его лучше держать не первым, а после лёгких персональных фильтров — часть трафика к этому моменту уже отсеется. Следом обычно идёт системная группа, которая выделяет российские ресурсы и пускает их напрямую, а завершает цепочку правило final. Благодаря такой последовательности обычно не нужно вручную прописывать популярные сервисы вроде YouTube — правило GFW или final и так обработают их автоматически.

Настройка правила GFW в Karing
GFW

Экран «Правила» — регион, Rule Set и цепочки серверов

Экран «Правила» открывается с двух блоков наверху — по факту выбор региона и подменю Rule Set. Регион вы задавали при первом запуске, но поменять его можно и здесь, причём делать это стоит до настройки личных правил: даже готовые шаблоны собраны с оглядкой на конкретную страну. По сути регион — это выбор пары geoip/geosite для вашей зоны плюс шаблон правила GFW.

Экран «Правила» в Karing с выбором региона
Правила

Rule Set, удалённые ресурсы и front-proxy

Rule Set — переключатели для трёх встроенных сборников: Geoip, Geosite и ACL. Пункт «Автоматически прикреплять основные правила» добавляет и включает geosite и geoip со значениями и маршрутизацией, зашитыми в само приложение; когда всё заработало стабильно, можно включить «Использовать удалённые ресурсы» — тогда списки будут подтягиваться свежими прямо с серверов Karing. Здесь же можно включить безусловный прямой доступ к части ресурсов — какие именно, приложение определяет само.

Отдельный параметр — фронтальный (он же цепной) прокси: она определяет, через какое соединение вы вообще добираетесь до нужного сервера. Если добавить сюда узел, запрос сначала пойдёт на него, а уже потом — на выходной сервер, назначенный в правиле.

Выбор сервера для фронтального прокси в Karing
Выбор сервера

Когда пригождается: цепочка серверов

Схема выручает при жёстких блокировках: допустим, у вас есть быстрый доступ к серверу страны А, но нет прямого доступа к серверу страны Б — зато у сервера А доступ к Б есть. Тогда А назначается фронтом, а Б — выходным узлом, и вы получаете доступ к ресурсам Б в обход собственной блокировки. Несколько таких промежуточных серверов можно выстроить цепочкой, добавляя их по очереди в меню «Фронтальный/цепной прокси»: запрос пройдёт сверху вниз и выйдет наружу через последний сервер, указанный уже в самом правиле перенаправления.

Стоит иметь в виду подводные камни: после назначения фронт-прокси доступность узлов может измениться, так что связку стоит сразу перепроверить в профилях, а на подбор нужных серверов и протоколов иногда уходит время. В целом это скорее инструмент «последнего шанса», чем повседневная настройка — по факту либо вам иначе не добраться до нужного ресурса, либо стандартного уровня скрытности не хватает.

Пользовательский: автоматический выбор — виртуальные группы серверов

Отдельная возможность — «Пользовательский автоматический выбор»: виртуальные группы серверов, объединённые по любому признаку, например по стране, причём серверы в такую группу можно брать из разных профилей и даже разных подписок.

Создание виртуальной группы серверов в Karing
Пользовательский автоматический выбор

Каким образом собрать группу серверов вручную и по маске

Группу создают плюсом, а в поле «Примечание» достаточно дать ей имя, например USA. После создания в группу добавляют нужные серверы — вручную галочками или через поиск по регулярному выражению; простейший пример — US|USA, где вертикальная черта означает «или», и такое выражение соберёт все узлы с подходящими буквосочетаниями в названии. При этом исходные серверы из профиля никуда не исчезают — фактически внутри группы создаются лишь ссылки на них, а маршрутизация внутри такой группы работает через автовыбор по лучшему времени отклика.

Выбор серверов для виртуальной группы в Karing
Выбор сервера

Личные правила — где их искать и как редактировать

Сборник личных правил открывают с экрана «Правила перенаправления» — карандаш слева вверху.

Сборник личных правил в Karing
Личные правила

Шаблоны, порядок и правка правил

Это полностью ваш личный сборник: здесь можно и удалять, и создавать правила вручную или на основе шаблонов, а порядок менять перетаскиванием. Три точки в правом верхнем углу открывают подменю, а стрелка рядом с конкретным правилом — просмотр и редактирование. Простой плюс добавляет одно правило, а плюс с полосками открывает те же шаблоны личных правил, что вы видели при первом запуске программы: если выбрать в них что-то, чего у вас ещё нет, и подтвердить галочкой сверху справа, правило добавится в сборник — его можно подвинуть на нужное место, а затем на экране «Правила перенаправления» назначить ему действие.

Состав таких правил удобно смотреть на готовых примерах — откройте их стрелкой рядом с ними.

Пример личного правила на основе шаблона в Karing
Пример личных правил

Примеры правил — списки, суффиксы и блокировка рекламы

На примере на предыдущем скриншоте правила собраны из шаблонов и опираются на встроенные списки geoip, geosite, ACL и на имена системных пакетов — это позволяет держать правило компактным: одно имя вроде geosite:youtube может закрывать сотни реальных IP-адресов, и вам не нужно знать их все.

Дальше примеры собраны уже вручную: одно — через список ACL, второе — через список, размещённый онлайн, третье — через доменный суффикс. Суффикс, в отличие от точного имени домена, захватывает заодно и поддомены, но только если начинается с точки — тогда под критерий попадут и www.домен, и www.mail.домен; без точки запись сработает как точное совпадение, без поддоменов.

Те же примеры на практике показывают, как превратить Karing в бесплатный блокировщик рекламы: в шаблонах для этого есть три готовых правила — Adblock, Adblock Plus и Malware — с действием «Блокировать», их достаточно добавить в личный сборник. Рассчитывать на то, что так получится вырезать рекламу изнутри самого видеопотока на YouTube, не стоит — Karing лишь передаёт данные, а не редактирует содержимое потока.

Примеры личных правил с ACL, онлайн-списком и суффиксом домена
Пример личных правил

Комбинирование условий и параллельные сессии

Так как внутри одного правила условия объединены через «ИЛИ», для срабатывания достаточно совпадения хотя бы с одним из них — это тоже помогает делать правила компактнее. Такая логика позволяет настраивать доступ к разным сервисам через разные серверы параллельно: например, пустить YouTube через одну группу узлов, а обращения к нейросетям — через другую конкретную. Единственное, чего в этой схеме не хватает, — балансировки нагрузки, но такой возможности нет на уровне самого движка sing-box.

Создание: нового правила вручную

Новое правило: нажмите «плюс», задайте имя сразу — после сохранения переименовать его уже нельзя.

Создание нового личного правила в Karing
Создание личного правила

Все способы: задать критерий для правила

Стрелка у нового правила открывает редактор со всеми способами описать критерий отбора трафика.

Синтетический пример настройки правила в Karing
Пример создания правила test

Встроенные наборы и другие способы выделить поток

Когда у поля справа есть стрелка — значит, по ней открывается список с поиском по имени. Начинать стоит именно со встроенных наборов Rule Set: возможно, нужное вам имя уже есть среди geosite, geoip или ACL.

Встроенный набор правил geosite/geoip/ACL в Karing
Встроенный набор правил

После создания: назначить действие и проверить

Когда готовых записей не нашлось, в ход идут другие способы — от списка доменных суффиксов до конкретных IP-адресов. После создания правила вы вернётесь в сборник личных правил, где его можно поставить на нужное место, а затем на экране «Правила перенаправления» обязательно назначить действие — без назначения правило просто не будет работать. И только после этого стоит проверить, действительно ли трафик пошёл так, как задумано — для этого на экране «Правила» есть встроенный тест правил перенаправления.

Тест правил — куда реально уходит трафик

Тест запускается с той же страницы «Правила»: введите в поле тестовый адрес и нажмите «Тест» — клиент покажет, по какому именно правилу пойдёт запрос и куда он в итоге попадёт.

Результат теста правил перенаправления в Karing
Тест правил перенаправления

Три типовых: результата теста

Один из типичных примеров — срабатывание системного правила geoip:ru → напрямую. Другой — персональное правило для конкретного сайта: адрес входит в список имён ru, и без вашего дополнительного правила запрос ушёл бы напрямую и без него, то есть нужный вам эффект достигается именно личным правилом. Третий случай — когда ни одно правило не подошло, и в дело вступает финальное правило final → «Текущий сервер»; на этом же примере видно, как Karing преобразует нелатинские символы в код (жёлтая строка) и тестирует именно этот код.

Отладка неправильной: маршрутизации по шагам

Другой набор скриншотов показывает уже пример отладки: сначала трафик почему-то уходит напрямую, хотя должен идти через прокси, и тест показывает, что правилу GFW назначили не тот выход — «Напрямую» вместо «Текущий сервер».

Отладка правила GFW через тест правил перенаправления
Тест правил перенаправления

После правки: пример с виртуальной группой

Когда назначение уже поменяли на «Текущий сервер», повторный тест подтверждает, что всё заработало правильно. Ещё один пример из той же серии — правило по шаблону YouTube, направленное на личную группу серверов USA: внутри группы Karing сам выбрал сервер с лучшим временем отклика по итогам тестирования.

Чёрный список — другая логика распределения трафика

Чёрный список — зеркальная версия Белого: по умолчанию весь трафик идёт напрямую, и только то, что явно выделено правилами, отправляется через прокси. Смысл в том, чтобы свести использование сервера к необходимому минимуму — это делает работу VPN менее заметной, ускоряет обычный сёрфинг за счёт снижения лишнего трафика через туннель и снижает вероятность, что провайдер вообще обратит внимание на соединения к серверам VPN.

Переключение — одно действие: правилу final назначается «Напрямую» вместо «Текущий сервер». Системные группы geosite и geoip в этом режиме теряют смысл, потому что их выход и так «Напрямую», — их стоит отключить в разделе «Правила → Rule Set», сняв галочку «Автоматически прикреплять основные правила»: тогда они пропадут и из списка правил перенаправления. Заодно можно убрать правила-шунты для прямого подключения — оно и так работает по умолчанию. Остаются проксирование приложений, блокирующие правила и GFW, который берёт на себя основную часть работы — переадресовывает на прокси большинство ресурсов, заблокированных в России и для России, включая YouTube, Facebook и TikTok, без каких-либо личных правил.

Личные правила в этом режиме полезны в основном для тех зарубежных сервисов, поведение которых хочется направить не так, как это делает GFW по умолчанию: например, YouTube должен идти через конкретный сервер или группу серверов, а не через то, что выберет системное правило. Такое правило создаётся так же, как обычно — можно на основе шаблона, — и его нужно расположить выше правила GFW, назначив собственный выход.

Пример настройки правил для режима Чёрного списка в Karing
Пример настройки правил

Итог — что отличает Чёрный список от Белого

На финальном скриншоте видно, что именно отличает настройку Чёрного списка: все личные правила ведут на прокси-сервер, ненужные здесь системные группы geoip и geosite выключены, а финальное правило смотрит «Напрямую». По сравнению с Белым списком главное отличие именно в этом: системные группы и правило final больше не отправляют весь остальной трафик через прокси по умолчанию — он и так идёт напрямую, а через сервер уходит только то, что вы явно выделили сами.