Karing

Karing

@Пупкин Вася

 Первая публикация (предыдущая версия) v 2.0.15 (для версий 1.0.28 и ниже)@Пупкин Вася, @renixa_tg June 06, 2024 Instuction in English

Текущая редакция 04.10.2024 v 3.0.17 (Часть I), Часть II

Этот текст распространяется под лицензией Creative Common.

Часть II - Подробнее о настройках.

Количество возможных параметров и мест настройки в Karing чрезвычайно велико, поэтому коснёмся только самых важных из них.

Содержание II

  1. Установка
  2. Настройка
  3. Профили
  4. DNS
  5. TUN
  6. Правила

 Установка

Ограничение - на Win7 - 8.1 программа ставится, но не запускается.

В Windows все подписки хранятся здесь:

Screen 23

Настройка

 Все настройки выполняются при выключенном соединении. Значок настроек на главном экране.

Screen 24

Список возможных точек настройки занимает три экрана (показано на Android). Основные настройки описаны ниже.

Screen 25
Screen 26
Screen 27

Первый экран настроек (Screen 25)

Режим новичка. Помогает настроить в первый раз. Но и скрывает часть настроек. Теперь его можно отключить.

Получить трафик. Это, по сути дела - реклама "аэропортов" по запросу в зависимости от страны. Например, так:

Screen 28

Руководство - копия ранней версии данной статьи.

 Часто задаваемые вопросы (FAQ) - на китайском и на английском.

Переключение на английский в этом пункте меню на телефоне весьма неочевидно. Откройте "Часто задаваемые вопросы". Откроется на китайском. В раскрывающемся меню (три черточки вверху слева) выберите и нажмите верхнюю строчку со стрелкой влево. Под надписью Blog нажмите следующую строчку со стрелкой вправо. И тогда ниже вы увидите строчку English - это и есть переключение языка :D

Часто используемые наборы правил - ссылка на соответствующую страницу GitHub. Язык английский. Полезна для создания и настройки собственных правил – можно посмотреть, что внутри конкретного листа, например ru – список IP-адресов в формате json.

Веб-панель – встроенный сайт с динамическим отображением происходящего в программе.

Screen 19

Обнаружение утечки DNS – важный тест для проверки безопасности. Будет описан в разделе DNS. (ряд пунктов не описан)

Добавить профиль и Профили

(к Содержанию)

 - Добавление новых  и настройка использования существующих профилей. Заметьте, что профиль может отображаться как в свернутом, так и в раскрытом состоянии.

При нажатии в окне Профили трёх точек вверху справа (выделено) - всплывает дополнительная менюшка.

Значки в подменю сверху вниз – Настройки, Добавить профиль, Синхронизировать подписку (если профиль является подпиской), Отсортировать, Объединить профили (выделено):

Screen 29
Screen 30

Отсортировать - выделяете долгим тапом нужный профиль и перетаскиваете его выше или ниже. Профили (и правила перенаправления) обрабатываются программой сверху вниз.

Объединение профилей - это возможность данные одного или нескольких профилей перенести в другой. При объединении из списка профилей сначала выделите тот, в который надо добавить данные из другого (целевой профиль), а следующим шагом - те, из которых надо добавить. Для подтверждения слияния надо нажать галочку вверху на правом краю экрана. Эту операцию после подтверждения отменить нельзя.

Сама страница профилей чрезвычайно информативна и функциональна.

Значок в виде двух букв в зеленом квадратике около имени профиля – это формат, в котором делался импорт или идёт взаимодействие с подпиской. V2 – V2ray, SB – sing-box, CL – Clash и т.д. Горизонтальная стрелочка рядом – развернуть/свернуть профиль.

Ниже имени профиля идут слева направо: плюс – добавление сервера в ручном режиме. Затем “Поделиться” – пересылка профиля в формате json. Карандаш – редактирование названия и свойств профиля. Если профиль включен – появляется значок в виде лежащей K – это тестирование доступности и задержек серверов профиля. Справа от профиля – переключатель его включения, и красный значок удаления профиля.

Ещё больше значков и функций появляется, если профиль является подпиской. Однако особенности подписок и “аэропортов” – отдельная большая тема.

На странице профилей можно удалять, отключать и редактировать каждый сервер в профиле. Например, отключить или удалить сервер, который вам не нужен. Для этого тапните долгим тапом на имя сервера – всплывёт дополнительное меню.

Порт – это возможность увидеть, и при необходимости отредактировать порты, используемые программой. По умолчанию Karing использует для проксирования порт 3067.

Второй экран настроек (Screen 26)

DNS

(к Содержанию)

DNS - это система серверов, позволяющая превратить символьное имя, например google.com, в его текущий IP-адрес, например 108.177.14.138, который дальше и используется программами для установки связи. Исходно, все запросы к DNS-серверам отправлялись в нешифрованном виде. Это, к сожалению, использовалось на первых порах для цензуры запросов, а также слежки. Так что, если вы используете обычные DNS-сервера, любезно предоставленные вам провайдером - провайдер по этим обращениям видит, на какие сайты вы ходите. К счастью, есть публичные (общедоступные) сервера DNS, поддерживающие шифрованные запросы по технологиям DoH и DoT, и информация о посещённых вами сайтах становится провайдеру недоступна.

Изначально, при старте программы в режиме Новичок, вы получаете простую и дубовую настройку DNS, задача которой – обеспечить минимальную функциональность сразу, при включении. Минус – говорить о безопасности в этом случае сложно. Выглядит это так:

Screen 31

Пояснения: local – это сервера, известные вашей системе. Как правило, это нешифрованные сервера, предоставленные вашим провайдером. И встроенный в Андроид сервер 8.8.8.8. В результате, поскольку запросы нешифрованы – провайдер может видеть, к каким вы сайтам обращаетесь, и даже корректировать выдачу – мол, этот сайт не обнаружен или заблокирован. При текущей настройке – это касается только прямого потока, то есть потока, идущего в обход прокси. А в случае прокси – это в данном случае точка final – используется шифрованный по технологии DoH (DNS over HTTPS) публичный сервер. Эти обращения перехватить и расшифровать невозможно.

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

Для получения доступа к расширенным настройкам DNS, отключите режим Новичок.

Screen 32

В верхней части скриншота вы видите один из возможных вариантов настройки. Советую начать с неё – это гарантированно рабочий вариант.

Переключатель ECS – технология, исключающая “дрейф” DNS из-за использования запросов к нескольким серверам.

FakeIP – дополнительно подделывает адрес отправителя, но в этих условиях часть сетевых программ работать не будет. Так что оставьте его выключенным.

При нажатии на выделенную стрелку – вы увидите нижнюю часть скриншота. Это текущие настройки, которые мы и будем менять.

Первая строка – DNS-сервер. Это сервер, с помощью которого определяется адрес вашего сервера VPN, для установления соединения, и в дальнейшей работе он не участвует. Поэтому для него допустимо значение local и нешифрованные udp.

Остальные желательно выбирать шифрованными – https, tls etc. Но не udp(!).  Для окончательного выбора DNS для каждой отдельной строки, необходимо в DNS-сервер провести тестирование задержек и доступности.

Нажмите стрелку справа в этой строке. Раскроется список на несколько экранов с рекомендуемыми публичными DNS-серверами (разумеется, при желании можно добавить и свой сервер):

Screen 33

Изначально вы никаких цифр не увидите. Запустите тестирование (выделено).

В каждой строке в результате вы увидите либо цифры – первая строка пинг сервера, вторая время его ответа. Или красный треугольник недоступности. Сервера с меньшими временами – лучше.

(Для iOS в текущей версии тестирование выглядит не так – видны только пинги серверов, но не их ответы. Поэтому сервера приходится выбирать, опираясь только на первый столбец значений задержки)

DNS-сервер – выберите local и 2-3 udp-сервера. Затемненные серым строки выбрать нельзя. Для каждой строки можно выбрать не более 4 серверов (но уже и 2 вполне достаточно). При попытке назначить 4 сервер – все остальные строки станут серыми.

В остальных строках, начиная с Прокси-сервер, тоже надо выполнить настройку. Но здесь надо снять галочки с local и udp-серверов, а выбрать начинающиеся с https или tls – это шифрованные запросы, которые ваш провайдер не может прочитать. Настройки в остальных строках можно сделать такими же, как у Прокси-сервер. Или выбрать другие сервера, но важно выбирать шифрованные.  В результате вы должны получить что-то вроде:

Screen 34

(в строках потоков виден только первый выбранный сервер).

Качество настройки в данном месте можно проверить с помощью встроенного теста утечек DNS – их быть не должно:

Screen 35

На экране вы не должны увидеть DNS вашего провайдера, а только адреса зарубежных серверов. В строке WebRTC – не должно быть видно вашего внешнего IP-адреса , а только внутренний, “серый”. Если вы видите что-то в этом духе, то утечек DNS нет.

 Рекомендации по DNS можно почитать в Интернете. Если вы запутались с настройками DNS и получили неработоспособную конфигурацию - используйте пункт Сбросить сервер. Это вернёт настройки к начальным.

TUN

(К Содержанию)

TUN - это сокращение от Tunnel. То, что мы привыкли называть VPN – весь трафик направляется через установленное соединение. Для телефона – это режим по умолчанию, и в режиме Новичок установлен именно он. В Windows режим по умолчанию – прокси.

Screen 36

Если у вас Karing установлен на Android, то вам доступна настройка - Проксируемые приложения. Если у вас любая другая система – те же задачи придётся решать с помощью создания личных правил – это будет описано ниже. С помощью этой настройки вы можете выбрать – какие приложения пойдут через ваше соединение, а какие напрямую.

Screen 37

Здесь можно и нужно выбрать приложения на устройстве (это в первую очередь браузеры, а также Instagram, Facebook и тому подобное). Выбранные приложения (режим Белого списка) пойдут через прокси (можете называть VPN), а непомеченные (рекомендуется для мессенджеров и служебных программ) - напрямую. Как минимум, такая настройка сэкономит вам трафик VPN и повысит скорость работы, а также устойчивость работы мессенджеров.

Описанная выше настройка применима только для Android. На iOS и MacOS такой функции нет. Нет её и на Windows. Однако эквивалент такой настройки можно создать через Личные правила.

Правила

(к Содержанию)

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

Вам не нужно набирать или выяснять все относящиеся к делу адреса, а можно использовать специальные имена, каждое из которых может объединять тысячи доменных имен. Это стало возможным благодаря созданию динамических списков адресов, предоставляемых domain-list-community, и распространяющихся в виде файлов geosite.dat, включенных в программу и обновляющихся. Когда при начальной настройке Karing вы выбираете страну - то вы и включаете определение GeoIP зоны ru. Это правило geoip:ru -> direct.
Не надо думать, что это просто все домены заканчивающиеся на .ru - всё значительно хитрее. При включении этого определения, все не запрещенные сайты идут напрямую, что ускоряет работу, а все запрещенные - через прокси, что обеспечивает их доступность. При этом все домены, не относящиеся к зоне .ru, идут через прокси. Как минимальной настройки - этого достаточно. Однако её можно бесконечно улучшать и усовершенствовать, задавая личные правила - как на основе предоставляемых программой имён, так и на основе имен сайтов. Например - имя amazon задает все имена, используемые Амазоном. Вы можете решить для себя - как с ними поступить Например, пустить напрямую, или заблокировать. Есть такие листы имен и для рекламных сервисов, что позволяет эффективно блокировать рекламу. Можно написать свои правила, например, чтобы через прокси шли все обращения к известным нейросетям, и так далее. Вообще, правила нужны, чтобы разделить запросы и трафик по каким-либо критериям, и эти части обработать по-разному.

 В программе есть три сборника зарезервированных имён для построения правил – GeoIP, GeoSite и ACL.

Входим в режим настройки правил или через значок в виде раздвоенной на конце стрелки на главном экране, или из меню Настройки.

Screen 38

В верхней части скриншота мы видим промежуточное меню. Сверху – выбор страны (а по сути – это выбор правила geoip:ru)

Затем идет переключатель Rule Set – это возможность включить, отключить или загружать с удаленного ресурса три предустановленных сборника листов для маршрутизации – Geoip, Geosite и ACL. (см. выделенные переходы). А также включить безусловный Прямой доступ к некоторым ресурсам:

Screen 39

Ниже – пункт Личная группа прокси-серверов. Это возможность для вас создавать виртуальные группы прокси-серверов, объединенных по какому-либо признаку. Причем эти сервера могут принадлежать разным профилям и даже разным подпискам. В дальнейшем, такую группу можно использовать как назначение перенаправления для какого-либо правила. Сами сервера с исходного профиля никуда не деваются – это, по сути, ярлыки к ним. Допустим, я хочу создать такую виртуальную группу для серверов в США. Я создаю такую группу с помощью плюса, даю ей название и добавляю в неё выбранные сервера:

Screen 40

Все управляющие элементы выделены. Для группы можно воспользоваться дополнительными настройками – как в нижней части скриншота. Теперь эта группа может использоваться как назначение в правилах перенаправления, как будет показано ниже.

Теперь нажмем Правила перенаправления:

Screen 41

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

Screen 42

Здесь можно выбрать конкретный сервер из включенного профиля, или текущий сервер – это установленное в данный момент соединение, или созданную ранее группу виртуальных серверов из Личной группы прокси-серверов.

Перейдём к созданию правил. Нажмите карандашик в верхнем углу – откроется список личных правил:

Screen 43

Нажимаем на плюс (выделено) – открывается дополнительное меню. Сверху вниз:

Добавить правило вручную, Создать правила на основе шаблонов, Импортировать правила из файла json, Экспортировать правила в файл json.

Начинать имеет смысл с создания правил на основе шаблонов, заодно можно ознакомиться, как устроены заведомо рабочие правила. Важно напомнить – правила программой обрабатываются сверху вниз, так что результат зависит от порядка, в котором расположены правила. Если обрабатываемый трафик соответствует двум правилам, то он будет обработан по верхнему правилу, а до нижнего дело не дойдёт. Если трафик не соответствует ни одному правилу – то он попадет в поток final. На странице Личные правила порядок можно менять перетаскиванием соответствующих строк.

Нажимаем выделенный значок – и попадаем на страницу шаблонов:

Screen 44

Вы можете здесь выделить что-то полезное для себя, хотя бы для обучения. И подтвердить свой выбор галочкой сверху. Будут созданы правила как копии этих шаблонов, и помещены в ваши Личные правила. На эту страницу вы и вернетесь.

Теперь посмотрим на примерах, что у этих правил внутри. Нажимаем стрелочку напротив правила, и смотрим. Несколько примеров я приведу ниже.

Screen 45

Три верхних правила созданы на основе шаблонов, на основе встроенных списков geosite и geoip. А три нижних – вручную. На основе расположенного онлайн скрипта, указанием ip-адреса и указанием доменных суффиксов. Видно, что способы выделения целевого трафика возможны разные. Поскольку правила объединены функцией ИЛИ – то  внутри правила достаточно соответствия хотя бы одному из приведенных условий. Это позволяет сделать правила более компактными.

Обратите внимание – если вы указываете доменный суффикс, то он должен обязательно начинаться с точки. Тогда под критерий попадут все сайты, например типа www.[суффикс] или например www. mail.[суффикс]. А если точки не будет – запись будет истолкована как точное совпадение. Впрочем, при заполнении полей вы увидите подсказки.

Теперь создадим правило вручную. Нажмем плюс, и дадим имя создаваемому правилу:

Screen 46

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

Screen 47

Если справа от заполняемого поля есть стрелочка – значит, по ней есть список с выбором и с поиском. Так что если вам нужны geosite, geoip или ACL – это теперь там:

Screen 48

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

Дальше необходимо проверить – всё ли работает так, как вы запланировали. Для этого со страницы Правила запускаете Тест правил перенаправления. Введя в окошке тестовый адрес и нажав Тест, вы увидите – куда реально перенаправится ваш запрос и по какому правилу.

Screen 49

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

Screen 50

Ещё примеры. Четвертый – правило, созданное на основе шаблона. Telegram -> текущий сервер. Но можно было бы и назначить определенный сервер, и пропуск напрямую.

Пятый пример – тоже правило на основе шаблона Yoгtube -> Личная группа проки-серверов ->USA, в которую включено несколько серверов USA, и правило выбрало доступный из них.

Тема с правилами непростая, и по ней, возможно, придётся дополнительно читать в Интернете - но оно того стоит.

 Немного о правилах и их применении на примере NekoBox - читать.

 Например, вы можете настроить обращение к разным нужным вам сервисам через различные сервера доступа.

Это позволяет организовать параллельную работу через несколько подключений одновременно, например Youtube через одну группу серверов, а нейросетей через другой конкретный сервер. Единственно чего не хватает – так это балансировки нагрузки, но она, к сожалению, отсутствует на уровне ядра sing-box.

Сложное перенаправление

Идея построения “цепочки прокси” вот в чём. Допустим, у меня есть ключ для соединения со страной А. Но сам сервер от меня недоступен, по той или иной причине. Зато доступен сервер страны B, из которой сервер страны А доступен.

Тогда, с помощью настройки Фронт-прокси (Настройки), я строю такую цепочку:

Запрос -> фронт-прокси сервер страны B -> прокси-сервер страны А –> целевой сервер (например, сайт страны А)

Для этого в качестве фронт-прокси я указываю подключение к серверу страны B. А в качестве сервера для соединения – подключение к серверу страны А. Если всё пошло правильно, то на главной странице при включении видим подключение к стране А, и некоторое число в строке задержки. Можно обращаться к целевому серверу (сайту) страны А.

Конечно, есть определённые сложности. Это не совсем “цепочка прокси”, в понимании других программ, когда один прокcи обращается к другому напрямую, и в цепочке может быть несколько прокси. Приходится подбирать сервер и протокол страны B экспериментально. Протокол должен отличаться от протокола подключения к серверу страны А – например, В работает на Trojan, а А на Shadowsocks. После назначения фронт-прокси имеет смысл перетестировать имеющиеся ключи на странице профилей – и вы увидите, что большая часть окажутся недоступными. Если вам немного повезло – то сервер страны А, наоборот, станет доступным.

Порядок применения правил.

Как уже было сказано, правила применяются к трафику сверху вниз. Трафик сравнивается с правилами по очереди до первого совпадения – и тогда выполняется то правило, где это совпадение обнаружилось.

Сначала обрабатываются правила – Выбор проксируемых приложений, если у вас такие есть. Всё что не помечено в режиме Белого списка – идёт напрямую. Исключение - если вы не пометили ни одного приложения, всё пойдёт через прокси.

Далее, с целью экономии процессорного времени и памяти, правила желательно располагать в следующем порядке:

Блокирующие правила – и дальше этот трафик не обрабатывается.

Прямое подключение – иногда его называют шунт – этот трафик сразу пробрасывается насквозь и дальше не обрабатывается.

Личные правила переадресации.

Затем идут встроенные группы правил Geosite, ACL, Geoip – которые требуют больших ресурсов для обработки, но дошедший до них трафик уже частично обработан. Переместить эти правила нельзя.

И наконец – правило Final -> Действующий сервер (это назначение можно изменить), которое обрабатывает всё, что осталось. По умолчанию – направляя в подключенное соединение.

Karing как блокировщик рекламы.

 Зачем так сложно? Просто поставьте блокировщик рекламы в браузере!

Настройка блокировки рекламы по правилам в Karing заблокирует рекламу не только в ваших браузерах, но и в приложениях со встроенной рекламой! Если вы их пустите через Karing. Хотя, возможно, для этого потребуется дополнительная настройка этих правил.

С помощью правил из Karing можно сделать бесплатный блокировщик рекламы и вредоносного контента.

Для этого в Шаблонах есть три преднастроенных правила – Addblock, Addblock Plus и Malware c выходным значением Блокировать.

Помимо них, я создал ещё два правила – Реклама блокировка и Аналитика блокировка (имеется ввиду - аналитика Google),

Screen 51

также со значениями блокировать. Беда в том, что листы geosite и ACL, использованные во встроенных шаблонах правил, в основном заточены на китайский сегмент Интернета, и у нас недостаточно эффективны. Поэтому потребовались дополнительные правила.

И не мечтайте о блокировке рекламы встроенной в видео на Youtube – любыми правилами Karing. Для этого нужно вмешиваться в вами передаваемые пакеты – технология mitm, Man In the Middle (имеется ввиду – перехват и последующая передача модифицированного потока данных). Karing её не использует.


(К содержанию) (В меню выбора клиентов) (Часть I)

(осталось 23 стр)

Report Page