Karing - маршрутизация и правила
Пупкин Вася рецензирование и правки @Гоша Котён-кинТекущая редакция 23.04.2025 v 4.0.20 (для версий 1.1.2.600 и выше)
Karing – Quick Start (Часть l)
Karing - подробнее о настройках (Часть II)
Особенности Karing в Windows
Karing - что такое DNS и как с ним бороться
Эти тексты распространяется под лицензией Creative Commons.
Навигация в документе
Общий порядок работы правил перенаправления (маршрутизации)
Введение.
Правила перенаправления (отклонения, маршрутизации) в Karing (Diversion rules) – мощный и гибкий инструмент управления трафиком. Если вы можете по каким-то критериям – например, по месту назначения, или по приложению, или как-то ещё выделить какую-то часть трафика, то в дальнейшем вы можете выбрать – что делать с этой частью дальше. Вы можете очень тонко настроить для себя - что блокировать (например, часть рекламы), что направить напрямую, а что направить и через какой конкретно прокси (соединение). Именно так, как вы хотите.
Тема правил большая, сложная и очень важная. В том или ином виде маршрутизация и правила встречаются практически во всех программах-клиентах VPN. Как правило, это текстовый файл, написанный в внутрипрограммном синтаксисе. Достоинство Karing – в нём есть графический интерфейс для создания и управления правилами, что сильно упрощает понимание и применение этого механизма.
Для вашего удобства, в программу включены шаблоны часто используемых правил, и вы с этими шаблонами встречались при начальной настройке программы.
Вам не нужно набирать или выяснять все относящиеся к делу адреса, а можно использовать специальные имена, каждое из которых соответствует списку с многими именами сайтов. Это стало возможным благодаря созданию динамических списков имён и адресов, предоставляемых domain-list-community. В Karing используются созданные из файлов в формате .srs сборники geoip , geosite и ACL, которые могут обновляться онлайн. Когда при начальной настройке Karing вы выбираете страну - то вы и включаете определения (правила) перенаправления для зоны ru. Это правила geoip:ru -> direct, geosite:ru -> direct.
Не надо думать, что это просто все имена, заканчивающиеся на .ru - всё значительно хитрее. При включении этого определения, все включенные в список сайты (домены) зоны .ru, или российские IP-адреса из списка, идут напрямую, что ускоряет работу, а часть запрещенных и все зарубежные - через прокси, что обеспечивает их доступность. Как минимальной настройки - этого достаточно. Однако её можно бесконечно улучшать и усовершенствовать, задавая личные правила - как на основе предоставляемых программой списков имён, так и на основе имен сайтов. Например - имя amazon в списках geosite и ACL позволяет выделить правилом все имена, используемые Амазоном. Вы можете решить для себя - как с ними поступить. Например, пустить напрямую, или заблокировать. Есть такие списки имен и для рекламных сервисов, что позволяет блокировать рекламу. Можно написать свои правила, например, чтобы через прокси шли все обращения к известным нейросетям, и так далее. В программе есть три сборника списков (имён) для построения правил – GeoIP, GeoSite и ACL.
Вообще, правила нужны, чтобы разделить запросы и трафик по каким-либо критериям, и эти части обработать по-разному.
Важно: есть два противоположных подхода для настройки правил перенаправления – Белый список и Чёрный список.
По умолчанию, Karing работает в режиме Белого списка.
Белый список – разрешённый в регионе и выделенный правилами трафик, например обращение к конкретному сайту, пересылается напрямую (direct), а всё остальное (по умолчанию) идёт через прокси. Нет никакого смысла пропускать разрешенное через VPN, тем более что часть российских сайтов не отвечают на запросы из-за рубежа.
Чёрный список – наоборот. Это то, что заблокировано в регионе, и работает только через VPN . Выделенный правилами трафик идёт через прокси, а всё остальное напрямую.
Никакого отдельного переключения режима нет, всё определяется расстановкой назначений для отдельных правил. Применение Черного списка рассмотрим в конце.
Прежде чем создавать и настраивать правила – надо определиться, по какой стратегии вы работаете. Далее настройка правил рассматривается в режиме Белого списка, как их по умолчанию настраивает Karing.
В режим настройки правил входим или через значок в виде раздвоенной на конце стрелки на главном экране, или из меню Настройки.
Правила перенаправления
Рассмотрим сначала Правила перенаправления – это не правила выделения трафика, а действия - что с выделенным трафиком делать и в каком порядке. Доступ к этому экрану – Настройки, Правила, Правила перенаправления. Здесь мы видим, а также настраиваем маршрутизацию (перенаправление) всех созданных нами личных правил, а также правил системы:

Общий порядок работы правил перенаправления (маршрутизации)
Правила работают сверху вниз, поэтому порядок расстановки правил имеет решающее значение. Трафик сравнивается поочередно со всеми правилами. Если его часть соответствует какому-либо правилу, выполняется действие, указанное справа – например, пропустить в обход остальных правил – Напрямую (Direct). Это иногда называется шунтированием. Или передать на конкретный прокси-сервер – Текущий сервер (Current Selection). Если назначение не указано – правило не работает. Если элемент трафика соответствует нескольким правилам – то сработает только верхнее. Можно направлять отдельные правила не на общий выходной прокси-сервер, а на выбранный вами конкретный, например нужной страны. Это всё может работать параллельно, то есть вы можете использовать одновременно несколько соединений с прокси-серверами по нескольким правилам.

Сначала срабатывают правила – Выбор проксируемых приложений, если у вас такие правила есть. Все приложения, которые не помечены как проксируемые в режиме Белого списка приложений, идут напрямую. Исключение - если вы не пометили ни одного приложения, всё пойдёт через прокси.
С целью экономии процессорного времени и памяти, правила желательно располагать в следующем порядке:
Блокирующие правила – дальше этот трафик не обрабатывается.
Прямое подключение – иногда его называют шунт – этот трафик сразу пробрасывается насквозь и дальше не обрабатывается.
После прохождения всех личных правил, обрабатываются системные группы правил – GeoSite, GeoIP и ACL. Эти правила впрямую не редактируются, даже их назначение.
В режиме Черного списка есть способ отключения этих системных групп правил.
И наконец, встроенное правило final – куда должны пойти все соединения, не совпавшие с критериями ни одного из правил. По умолчанию – это значение Текущий сервер (Current Selection), что и определяет режим Белого списка. (Это назначение можно изменить на Напрямую (Direct) – это режим Черного списка. Но включение этого режима полностью изменит логику работы всей системы правил перенаправления, и её нужно будет перестраивать).
Порядок и само количество установленных правил важны и с точки зрения экономии системных ресурсов. Выше должны располагаться правила с относительно простыми условиями, ориентированные на определенные ресурсы, которые уменьшают количество обрабатываемого далее трафика. А ниже — более сложные и ресурсоёмкие правила.
Дальше идёт правило GFW (Greate Firewall). Его задача – переадресация на прокси заблокированных ресурсов. Оно построено на основе ряда онлайн списков, регулярно обновляющихся, с блокированными сайтами. Так что это относительно громоздкое и ресурсоёмкое правило – и хорошо, что часть трафика мы уже выделили и перенаправили выше. Если трафик соответствует этому правилу – он немедленно направляется через прокси-сервер.
Дальше идёт системная группа правил, задача которых – выделить трафик на российские ресурсы и пустить его напрямую.
И, наконец, встроенное правило final, которое обрабатывает всё, не отсеянное правилами ранее. Благодаря этой системе правил, обычно нам не нужно добавлять личные правила для конкретных ресурсов – например, youtube – поскольку оно и так будет обработано и переадресовано правилом GFW или final. Вот так настраивается назначение каждого правила:

В целом, число правил лучше минимизировать. Однако, очередность правил настраивается не здесь.
Правила (выделение трафика)

В верхней части скриншота мы видим промежуточное меню. Вверху выбор региона. Вы его выбрали при первоначальной настройке. Здесь его можно поменять, и правильно выставить регион надо до настройки правил – поскольку даже шаблоны правил зависят от страны. По сути, регион это выбор правил geoip:ru, geosite:ru и шаблона правила GFW.
Затем идет подменю Rule Set – это возможность включить, отключить или загружать с удаленного ресурса три предустановленных сборника списков имён и адресов для маршрутизации – Geoip, Geosite и ACL. Автоматически прикреплять основные правила – это добавить и включить правила geosite, geoip c встроенными в программу значениями и перенаправлением. Когда у вас всё хорошо заработало — можно включить Использовать удаленные ресурсы. Тогда вы, при любых изменениях на серверах Karing, будете иметь самую свежую версию этих правил.
Также здесь включается безусловный Прямой доступ к некоторым ресурсам. Список этих ресурсов программа определяет сама.
Фронтальный/цепной прокси. Эта настройка позволяет определить, через какое конкретно соединение вы связываетесь с прокси-серверами. Если здесь добавить в список сервер – это режим фронт-сервера – то соединение пойдёт сначала на фронт-сервер, а через него к выходному серверу, который вы назначили в правиле перенаправления. Добавление делается выбором из серверов, известных системе, нажатием плюса:

Это может пригодиться при жестких блокировках – допустим, у вас есть доступ к быстрому серверу страны А, но нет доступа к серверу страны Б. Но у самого сервера А есть доступ к Б. Тогда вы назначаете сервер А фронт-сервером, а выходным сервером сервер Б. И получаете доступ к ресурсам страны Б.
Можно такие промежуточные сервера объединить в цепочку – цепной прокси. Тогда вам надо в меню Фронтальный/цепной сервер добавить несколько серверов, и ваш запрос пойдёт по цепочке, сверху вниз – сервер А, сервер Б и т.д. и выйдет “наружу” через последний сервер, указанный в правилах перенаправления.
Конечно, есть подводные камни. Доступ к различным узлам (серверам) может измениться после назначения фронт-прокси – не забудьте это перетестировать в Профилях. Для построения всей конструкции может потребоваться как подбор узлов, так и подбор протоколов этих узлов. Так что это не «ежедневная» технология, а скорее технология «последнего шанса» – либо вам нужно добраться туда, куда иначе вы попасть не можете, либо вас не устраивает обычный уровень скрытности.
Пользовательский автоматический выбор. Это возможность создавать виртуальные группы прокси-серверов, объединенных по какому-либо признаку, например стране. Причем, серверы могут принадлежать разным профилям, и даже разным подпискам. В дальнейшем, такую группу можно использовать как назначение перенаправления для какого-либо правила. Допустим, я хочу создать такую виртуальную группу для серверов в США.

Создаем новую группу, нажав плюс. «Примечание» – здесь надо дать название новой виртуальной группы, например USA. Когда группа создана – добавляем в нее нужные серверы. Их можно выбрать напрямую, а можно, если серверов очень много – воспользоваться поиском с помощью регулярных выражений. Простейший пример – US|USA. Это выражение отберет все сервера с такими буквосочетаниями. Вертикальная черта – знак разделения, имеет смысл «или». Сами серверы с исходного профиля никуда не деваются – по сути, здесь создаются только ссылки на сервер в профиле.
Но если у вас ключей немного, то сервера в виртуальную пользовательскую группу можно добавить вручную, поставив галочки. Такая виртуальная группа даст возможность перенаправить ваше правило не на один сервер, а на несколько (группу) – причем выбранных из разных профилей. Внутри такой виртуальной группы будет действовать автовыбор сервера.

Тест правил перенаправления будет описан ниже.
На экране Правила перенаправления (Diversion Rules) (Screen 2.1) нажмем карандашик в левом верхнем углу, и попадем в сборник Личные правила:

Это полностью ваш сборник. Здесь можно удалять и создавать правила, как полностью вручную, так и на основе шаблонов. Можно сортировать их перетаскиванием. Три точки справа вверху откроют подменю, а стрелка напротив правила позволяет его просмотреть или отредактировать.
Просто плюс в подменю позволяет добавить единичное правило, а плюс с полосками откроет вам Шаблоны личных правил, которые вы видели при первом запуске программы.
Шаблоны вам помогут использовать чужие наработки. Если вы выберете в шаблонах какое-то отсутствующее у вас правило и подтвердите выбор галочкой вверху справа, то правило добавится вам в сборник Личные правила. И вы сможете его посмотреть, отредактировать и передвинуть на нужное место, а при возвращении в Правила перенаправления выбрать для него нужное действие (перенаправление).
Теперь посмотрим на примерах, что у этих правил внутри. Нажимаем стрелочку напротив правила, и смотрим. Несколько примеров я приведу ниже.

Эти правила созданы на основе шаблонов. С использованием встроенных наборов списков geoip, geosite, ACL и имен пакетов из системы. Использование встроенных наборов списков позволяет сделать правила компактными, и избавляет от необходимости знать все сетевые ресурсы, необходимые, например, для работы Youtube – потому что одно имя списка geosite:youtube может соответствовать сотням конкретных ip-адресов.
Ещё примеры:

Эти правила созданы вручную. Первое с использованием ещё одного сборника списков ACL, второе с помощью расположенного онлайн списка, а третье с использованием доменных суффиксов. Применение суффиксов вместо имени домена позволяет выделить не только конкретный домен, но и его поддомены. Обратите внимание – если вы указываете доменный суффикс, то он должен обязательно начинаться с точки. Тогда под критерий попадут все сайты, например типа www.[суффикс] или например www.mail.[суффикс]. А если точки не будет – запись будет истолкована как точное совпадение, и поддомены рассматриваться не будут. Впрочем, при заполнении полей вы увидите подсказки.
Второй и третий скриншот показывают, как сделать из Karing бесплатный блокировщик рекламы.
В шаблонах есть три правила – Adblock, Adblock Plus и Malware c выходным значением Блокировать, которые стоит добавить в список Личных правил. Это блокировщики рекламных добавлений и вредоносного ПО.
Помимо них, я создал ещё два правила – Реклама блокировка и Аналитика блокировка (имеется ввиду - аналитика Google), также со значениями блокировать. Беда в том, что наборы списков geosite и ACL, использованные во встроенных шаблонах правил, в основном заточены на китайский сегмент Интернета, и у нас недостаточно эффективны. Поэтому потребовались дополнительные правила.
Не мечтайте о блокировке рекламы встроенной в видео на Youtube, любыми правилами Karing. Программа только передает данные, например видеопоток со встроенной рекламой, но не умеет вмешиваться в сам поток.
Видно, что возможны разные способы выделения целевого трафика. Поскольку правила объединены функцией ИЛИ – то внутри правила достаточно соответствия хотя бы одному из приведенных условий. Это также позволяет сделать правила более компактными.
Вы можете настроить с помощью правил обращение к разным нужным вам сервисам через различные сервера доступа.
Это позволяет организовать параллельную работу через несколько подключений одновременно, например Youtube через одну группу серверов, а нейросетей через другой конкретный сервер. Единственно чего не хватает – так это балансировки нагрузки, но она, к сожалению, отсутствует на уровне ядра sing-box.
Теперь создадим правило вручную. Нажмем плюс, и дадим имя создаваемому правилу. Имя правила в дальнейшем изменить нельзя.

Нажав стрелочку около созданного правила, войдём в режим редактирования. На следующем синтетическом скриншоте будут показаны все способы задания правил.

Если справа от заполняемого поля есть стрелочка – значит, по ней есть список с выбором и с поиском по имени. При создании правила, лучше начать с поиска во встроенных наборах Rule Set (built-in) – может, уже есть полезные вам имена (списки) в сборниках geosite, geoip или ACL:

Даже если вы не нашли подходящих записей в предустановленных списках, можно воспользоваться различными другими предлагаемыми способами выделения трафика – от списка доменных суффиксов до списка ip-адресов.
Когда вы создадите необходимое вам правило, вы снова вернетесь в окно Личных правил. Там можно поставить правило на нужное место по порядку. Затем в окне Правил перенаправления вновь созданному правилу нужно указать соответствующее действие. Если вы действие не укажете – правило работать не будет.
После настройки перенаправления для вновь созданного правила, необходимо проверить – всё ли работает так, как вы запланировали. Для этого со страницы Правила запускаете Тест правил перенаправления. Введя в окошке тестовый адрес и нажав Тест, вы увидите – куда реально перенаправится ваш запрос и по какому правилу.
Тест правил перенаправления

Первый пример – это срабатывание правила geoip:ru -> напрямую.
Второй – самостоятельно созданное правило для сайта по его имени, поскольку адрес находится в списке имён ru, и без этого нового правила трафик шёл напрямую.
Третий – поскольку соответствие какому-либо правилу не обнаружено, то работает последнее правило final -> Текущий сервер. Здесь показано использование неанглийских символов. Программа их преобразует в код (желтая строка), и тест выполняется для этого кода.

Ещё примеры. Первый и второй скрины - это пример отладки правил с помощью теста. На первом скрине трафик идет напрямую, а должен идти через прокси. Оказалось, что для правила GFW было указано неправильное направление — Напрямую. Направление было изменено на Текущий сервер, и второй скрин показывает, что всё заработало правильно.
Третий пример – правило на основе шаблона Youtube -> Личная группа проки-серверов ->USA, в которую включено несколько серверов USA, и правило выбрало из них сервер по лучшему времени тестирования в личной группе.
Чёрный список
Существует другой способ распределения и фильтрации трафика — Черный список. Он работает так — по умолчанию весь трафик идет напрямую (Direct), и только выделенный правилами трафик направляется на прокси. Смысл такой настройки — минимизировать использование прокси, чтобы сделать его применение максимально незаметным, ускорить вашу работу, за счет снижения ненужного трафика через VPN, и снизить вероятность блокировки вашего доступа к серверам VPN у провайдеров.
Это делается так — переключаем правило final -> Напрямую. Системные правила geosite и geoip можно отключить — они в этом режиме бессмысленны, поскольку их выходом является Напрямую. Отключаем их в Правила - Rule Set, сняв галочки Автоматически прикреплять основные правила. Тогда в правилах перенаправления они тоже пропадут. Также вам будут не нужны правила шунтирования — всё и так по умолчанию идёт напрямую. У вас остается Проксирование приложений, правила блокировки, GFW, который направляет через прокси большинство заблокированных в России и для России ресурсов.
Возможно, вам потребуется набор личных правил, направляющих трафик на Текущий сервер (Current Selected) или на отдельный прокси. Большую часть работы возьмет на себя GFW (он перенаправит на прокси заблокированные в России ресурсы). Например, youtube, facebook, tiktock выделяются и перенаправляются на прокси автоматически. Добавлять правила придётся для тех зарубежных ресурсов, которые работают не так, как вы хотите. Например, вам нужно направить трафик youtube на определенный сервер или группу, не так как это делает набор правил. Тогда вы создаете правило, можно на основе шаблона, располагаете выше правила GFW, и указываете нужное перенаправление трафика.
Пример настройки правил по Черному списку:

Выделены те элементы, которые собственно и определяют тип Черного списка. Все личные правила для нужных назначений перенаправляются на прокси-сервер. Ненужные здесь системные правила geoip и geosite отключены, а правило final направлено напрямую.
Основное отличие от Белого списка — системные правила и правило final не направляют по умолчанию запросы к зарубежным и российским ресурсам через прокси-сервер, запросы (и ответный трафик) идут напрямую.
Шаблоны для настройки
Эти файлы предназначены для быстрой настройки. А также для решения проблем со связью с серверами VPN или Proxy. Невозможность соединиться часто связана с неоптимальными настройками DNS, что можно решить импортом одного из этих файлов.
Если их импортировать из Karing как бекап, они перепишут ваши настройки DNS, правила и основные переключатели.
Если вы хотите импортировать, например, только DNS - выключите движок Правила. И наоборот.
Ваши профили эти файлы не заденут. Файлы полностью кроссплатформенны, и на чём у вас установлен Karing - неважно.
Отличаются файлы настройками правил. Настройки DNS в них одинаковы.
Karing_1.1.2.606_Black.backup.zip - настройки по правилам Черного списка. Все соединения по умолчанию идут напрямую, кроме того что должно идти через прокси.
Karing_1.1.2.606_White.backup.zip - настройки по правилам Белого списка. Все соединения по умолчанию идут через прокси, кроме того что должно идти напрямую.
Перед импортом на всякий случай сделайте бекап своей исходной конфигурации. После импорта и проверки работоспособности, можно при желании добавить и свои правила в программу.
Ссылки для чтения
Маршрутизация в NekoBox (на основе перевода MatsuriDayo)
Настройка маршрутизации Discord, включая голосовые звонки, через NekoBox
Маршрутизация ВПН-трафика по чёрным спискам