-
tl;dr - ссылка (для тех, кто готов читать вики sing-box и разбираться в конфигурации ядра самостоятельно, пример конфига уже дан)
-
Гайд для Android - ссылка
v2rayN - клиент прокси для Windows, поддерживающий такие ядра, как Xray, v2fly, sing-box и другие. Данный клиент содержит множество продвинутых фич для управления проксируемым трафиком, регулярно обновляется и имеет модульное исполнение (бинарные файлы ядер используются в чистом виде и обновляются независимо от самого клиента), что выделяет его на фоне других графических клиентов для соответствующих ядер.
===
В данном примере рассмотрим использование этого клиента с удаленным сервером, настроенным для протокола VLESS. Подразумевается, что у вас уже должен быть настроенный сервер (либо кто-то вам должен предоставить доступ к своему), пример конфигурации сервера предоставлен в соседнем репозитории - ссылка.
===
- Скачиваем крайнюю версию клиента (обычный вариант, v2rayN.zip, ядро скачаем позже) из вкладки релизов официального репозитория.
- Открываем приложение, во вкладке Settings - Option Setting можете изменить приглянувшиеся вам настройки.
- Добавляем наш сервер VLESS, нажав на соответствующую кнопку слева сверху.
- Переходим в Settings - Routing Setting.
- Правая кнопка - Add.
- Remarks - название листа, не имеет значения.
- sing-box domain strategy - ipv4_only, если ваш провайдер предоставляет только ipv4.
- Сохраняем правило кнопкой Confirm и создаем еще одно.
- Вишенкой на торте (третьим правилом) будет являться пуск в direct всего остального трафика, т.е. порты 0-65535. Добавляем это значение в строку port под outboundTag (который direct).
- Наконец, Settings - DNS Settings
Сразу же в настройках совместимости в свойстах v2rayN.exe поставим запуск от имени администратора. Это необходимо для использования туннеля.
Если не знаете - не трогайте (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 на главном экране клиента).
Если у вас есть ссылка на подписку - Subscription Group, Subscription group settings, Add (там же можно ввести интервал для автоапдейта), после чего Update subscriptions without proxy. В противном случае выбираем Add [VLESS] server и заполняем все ручками.
Если вы не понимаете, что все эти поля означают - уточните у админа вашего сервера
В пустой области снизу добавляем правила по вашему усмотрению.
Можно скопировать блок снизу и нажать 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"
]
}
]
В этот раз outboundTag у нас proxy, а в колонку Full process name мы запишем названия исполняемых файлов программ, трафик которых мы хотим проксировать. У меня это chrome.exe, Discord.exe, Telegram.exe.
Внимание! Case-sensitive! Поле чувствительно к регистру, discord.exe оно уже не найдет.
[
{
"port": "0-65535",
"outboundTag": "direct",
"ip": [],
"domain": []
}
]
Описанный выше порядок правил важен, логика работает так:
1. наш запрос принадлежит описанным rule-set? идем в direct : идем дальше
2. наш запрос от одного из заданных процессов? идем в proxy : идем дальше
3. наш запрос принадлежит портам 0:65535? идем в direct
0:65535 - фактически весь трафик
Переходим во вкладку 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 (должен начать тестирование).
- Запустить чистый sing-box на Windows муторно
- Скачиваем клиент
В настройках qsing-box выставляем Run as administrator
- Импортируем конфиг (расширение должно быть .json)
за счет того, что это cmd приложение. Однако существует крайне минималистичный клиент qsing-box, который представляет собой очень небольшую надстройку над исполняемым файлом ядра.
затем скачиваем updater script и кидаем в папку с исполняемым файлом (встроенного апдейтера ядра у клиента нет, поэтому я написал свой, он использует curl, jq и 7zip, если скрипт выдаст соответствующую ошибку - их можно установить через winget по гайду в интернете). Если нужен автостарт клиента, создаем в taskschd.msc задачу с максимальными привилегиями на запуск этого batch скрипта при входе юзера в систему, Start in указываем папку с qsing-box.
либо скачиваем пример конфига (ссылка) и заполняем. После импорта файл конфига будет находиться в папке qsing-box/config/. Отличие в конфигурации для Android и Windows только в том, что для последней вам придется прописать все исполняемые файлы процессов, которые вы хотите проксировать. Пример:
#Эти правила идут в самом конце блока "rules"
{
"outbound": "proxy",
"process_name": [
"chrome.exe",
"Telegram.exe",
"Discord.exe"
]
}
После блока "rules" на одном уровне с "auto_detect_interface": true должно стоять "final": "direct" для корректной маршрутизации трафика (после первого поля необходимо поставить запятую)
- Для Android существует официальный клиент - ссылка
Если у вас есть ссылка на подписку - добавляем конфиг в приложение соответствующей кнопкой
В противном случае скачиваем шаблон конфиг-файла (ссылка), редактируем его в соответствии с конфигурацией вашего сервера и вставляем получившееся содержимое в новый пустой профиль в приложении
- Переходим во вкладку Settings - Profile Override
Выбираем самую последнюю версию (отдаем предпочтение пре-релизам), листаем вниз и скачиваем apk под вашу архитектуру (скорее всего arm64)
Также доступен в Play Store и App Store
Включаем Per-app Proxy, переходим в конфигурацию, вызываем всплывашку, Proxy Mode - Include
Выбираем все приложения, которые хотим пускать через прокси
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: