Skip to content

Пример использования клиента v2rayN для обхода цензуры в РФ

Notifications You must be signed in to change notification settings

tighnaridotme/roscomcircum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

Пример использования клиента на основе ядра sing-box для обхода цензуры в РФ

  • tl;dr - ссылка (для тех, кто готов читать вики sing-box и разбираться в конфигурации ядра самостоятельно, пример конфига уже дан)

  • Гайд для Android - ссылка

v2rayN - клиент прокси для Windows, поддерживающий такие ядра, как Xray, v2fly, sing-box и другие. Данный клиент содержит множество продвинутых фич для управления проксируемым трафиком, регулярно обновляется и имеет модульное исполнение (бинарные файлы ядер используются в чистом виде и обновляются независимо от самого клиента), что выделяет его на фоне других графических клиентов для соответствующих ядер.

===

В данном примере рассмотрим использование этого клиента с удаленным сервером, настроенным для протокола VLESS. Подразумевается, что у вас уже должен быть настроенный сервер (либо кто-то вам должен предоставить доступ к своему), пример конфигурации сервера предоставлен в соседнем репозитории - ссылка.

===

  1. Скачиваем крайнюю версию клиента (обычный вариант, v2rayN.zip, ядро скачаем позже) из вкладки релизов официального репозитория.
  2. Сразу же в настройках совместимости в свойстах v2rayN.exe поставим запуск от имени администратора. Это необходимо для использования туннеля.

  3. Открываем приложение, во вкладке Settings - Option Setting можете изменить приглянувшиеся вам настройки.
  4. Если не знаете - не трогайте (c). Обязательно ставим Check for pre-release updates. Проект sing-box очень активно развивается, поэтому нам нужны все последние багфиксы. Там же можно отключить Ignore Geo files when updating core. Если нужно - поставим Start on boot во вкладке v2rayN settings. В CoreType settings для VLESS выберем sing-box. Пока не забыли - обновим ядро (Check Update - Sing-box Core на главном экране клиента).

  5. Добавляем наш сервер VLESS, нажав на соответствующую кнопку слева сверху.
  6. Если у вас есть ссылка на подписку - Subscription Group, Subscription group settings, Add (там же можно ввести интервал для автоапдейта), после чего Update subscriptions without proxy. В противном случае выбираем Add [VLESS] server и заполняем все ручками.

    Наглядно drawing

    Если вы не понимаете, что все эти поля означают - уточните у админа вашего сервера

  7. Переходим в Settings - Routing Setting.
    • Правая кнопка - Add.
    • Remarks - название листа, не имеет значения.
    • sing-box domain strategy - ipv4_only, если ваш провайдер предоставляет только ipv4.
    • В пустой области снизу добавляем правила по вашему усмотрению.

      Можно скопировать блок снизу и нажать Import rules from clipboard.

      В официальной документации sing-box описаны все доступные поля, что они означают и чем их заполнять. При заполнении этих полей следите за лишними символами, особенно пробелами и точками - они могут сломать парсинг конфига.

      Мое предпочтение такое: в direct (в обход прокси) отправляем все что связано с РФ. Для этого в Domain мы вписываем все rule-set, связанные с РФ, домен верхнего уровня .ru и какие-либо другие домены, доступ к которым мы хотим получать напрямую. В колонку IP or IP CIDR попадают geoip:ru, geoip:private.

      [
        {
          "port": "",
          "outboundTag": "direct",
          "ip": [
            "geoip:ru",
            "geoip:private"
          ],
          "domain": [
            "geosite:private",
            "geosite:category-ru",
            "geosite:category-gov-ru",
            "geosite:yandex",
            "geosite:mailru",
            "geosite:vk",
            "domain:ru",
            "domain:xn--p1ai",
            "domain:su"
          ]
        }
      ]
      Наглядно drawing
    • Сохраняем правило кнопкой Confirm и создаем еще одно.
    • В этот раз outboundTag у нас proxy, а в колонку Full process name мы запишем названия исполняемых файлов программ, трафик которых мы хотим проксировать. У меня это chrome.exe, Discord.exe, Telegram.exe.

      Внимание! Case-sensitive! Поле чувствительно к регистру, discord.exe оно уже не найдет.

      Наглядно drawing
    • Вишенкой на торте (третьим правилом)
    • будет являться пуск в direct всего остального трафика, т.е. порты 0-65535. Добавляем это значение в строку port под outboundTag (который direct).
      [
        {
          "port": "0-65535",
          "outboundTag": "direct",
          "ip": [],
          "domain": []
        }
      ]
      Наглядно drawing

    Описанный выше порядок правил важен, логика работает так:

    1. наш запрос принадлежит описанным rule-set? идем в direct : идем дальше
    2. наш запрос от одного из заданных процессов? идем в proxy : идем дальше
    3. наш запрос принадлежит портам 0:65535? идем в direct

    0:65535 - фактически весь трафик

  8. Наконец, Settings - DNS Settings
  9. Переходим во вкладку sing-box. В правое поле (TunMode settings) пишем блок json, ответственный за dns. В данном случае все запросы для российских доменов отправляются Яндекс DNS, а остальные - Cloudflare.

    {
        "servers": [
            {
                "tag": "remote",
                "address": "https://1.1.1.1/dns-query",
                "strategy": "ipv4_only",
                "detour": "proxy"
            },
            {
                "tag": "local",
                "address": "https://77.88.8.8/dns-query",
                "strategy": "ipv4_only",
                "detour": "direct"
            }
        ],
        "rules": [
            {
                "domain_suffix": [
                    ".ru",
                    ".xn--p1ai",
                    ".su"
                ],
                "rule_set": [
                    "geosite-category-ru",
                    "geosite-category-gov-ru",
                    "geosite-yandex",
                    "geosite-mailru",
                    "geosite-vk"
                ],
                "server": "local"
            }
        ],
        "final": "remote"
    }

    Подтверждаем изменения и на главном экране клиента в самом низу переключаем Enable Tun. System proxy можно оставить на Clear.

    Остается только следить за консолью и надеяться, что никаких error там не вылезет. Проверить работу маршрутизации можно, например, при помощи https://yandex.com/internet (должен отобразить ваш домашний ip) и https://fast.com (должен начать тестирование).

Бонус

  1. Запустить чистый sing-box на Windows муторно
  2. за счет того, что это cmd приложение. Однако существует крайне минималистичный клиент qsing-box, который представляет собой очень небольшую надстройку над исполняемым файлом ядра.

  3. Скачиваем клиент
  4. затем скачиваем updater script и кидаем в папку с исполняемым файлом (встроенного апдейтера ядра у клиента нет, поэтому я написал свой, он использует curl, jq и 7zip, если скрипт выдаст соответствующую ошибку - их можно установить через winget по гайду в интернете). Если нужен автостарт клиента, создаем в taskschd.msc задачу с максимальными привилегиями на запуск этого batch скрипта при входе юзера в систему, Start in указываем папку с qsing-box.

    Наглядно drawing
  5. В настройках qsing-box выставляем Run as administrator

  6. Импортируем конфиг (расширение должно быть .json)
  7. либо скачиваем пример конфига (ссылка) и заполняем. После импорта файл конфига будет находиться в папке qsing-box/config/. Отличие в конфигурации для Android и Windows только в том, что для последней вам придется прописать все исполняемые файлы процессов, которые вы хотите проксировать. Пример:

    #Эти правила идут в самом конце блока "rules"
    {
      "outbound": "proxy",
      "process_name": [
        "chrome.exe",
        "Telegram.exe",
        "Discord.exe"
      ]
    }
    

    После блока "rules" на одном уровне с "auto_detect_interface": true должно стоять "final": "direct" для корректной маршрутизации трафика (после первого поля необходимо поставить запятую)

Гайд для Android/iOS

  1. Для Android существует официальный клиент - ссылка
  2. Выбираем самую последнюю версию (отдаем предпочтение пре-релизам), листаем вниз и скачиваем apk под вашу архитектуру (скорее всего arm64)

    Также доступен в Play Store и App Store

  3. Если у вас есть ссылка на подписку - добавляем конфиг в приложение соответствующей кнопкой

    В противном случае скачиваем шаблон конфиг-файла (ссылка), редактируем его в соответствии с конфигурацией вашего сервера и вставляем получившееся содержимое в новый пустой профиль в приложении

  4. Переходим во вкладку Settings - Profile Override
  5. Включаем Per-app Proxy, переходим в конфигурацию, вызываем всплывашку, Proxy Mode - Include

    Выбираем все приложения, которые хотим пускать через прокси

    Наглядно drawing

    Tip: если вы используете Adguard в режиме туннеля, запустить его вместе с sing-box можно, заменив в конфиге inbound tun на inbound http. Per-app Proxy в этом случае стоит выключить - настраивать проксируемые приложения вы будете через Adguard.

        {
          "type": "http",
          "tag": "http",
          "listen": "127.0.0.1",
          "listen_port": 10809,
          "domain_strategy": "ipv4_only",
          "sniff": true,
          "sniff_override_destination": true
        }
    

    Вставьте один из двух вариантов вместо tun в свой конфиг

Credits and resources:

  • проект v2rayN
  • вики проекта sing-box
  • geoip и geosite rule-set от разработчика sing-box
  • @L4zzur (тестирование гайда)

About

Пример использования клиента v2rayN для обхода цензуры в РФ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published