Инструмент выборочной сетевой маршрутизации для Windows. Направляет трафик выбранных приложений и адресов через заданный шлюз, остальное оставляет на прямом маршруте. Работает на Windows 10 и 11.
Готовые сборки — в разделе Releases. Скачайте архив, распакуйте в папку с путём, не содержащим русских символов.
- Запустите
start-proxy.batот имени администратора (нужно для создания сетевого интерфейса). - При первом запуске ядро подтянется автоматически. Если сеть недоступна — положите
sing-box.exeиlibcronet.dllвsing-box\вручную (используется версия ядра 1.13.14). [4] Профили→[N]→ вставьте строку подключения от владельца шлюза.[1]— старт.[3]— список адресов для маршрутизации (по одному в строке, поддомены учитываются автоматически).
[7] Проверить состояние объясняет причину, если что-то не поднялось.
Список адресов работает по хостам. Для приложений, которые ходят на плавающий набор хостов, удобнее маршрутизировать по процессу — весь трафик программы, независимо от адресов. Такие правила — отдельные файлы в sing-box\configs\, включаются в [5] Изменение конфигурации.
Имя процесса берётся в Диспетчере задач → вкладка Подробности (не «Процессы») → столбец «Имя».
По имени процесса — проще, переживает обновления программы:
{
"route": {
"rules": [
{
"process_name": ["Discord.exe", "Update.exe"],
"action": "route",
"outbound": "utgard"
}
]
}
}По полному пути — когда имя неоднозначное (Update.exe, game.exe). Путь: правой кнопкой по процессу → Открыть расположение файла:
{
"route": {
"rules": [
{
"process_path": [
"C:\\Users\\ВашПользователь\\AppData\\Local\\Discord\\app-1.0.9200\\Discord.exe"
],
"action": "route",
"outbound": "utgard"
}
]
}
}Детали:
- Каждый
\в пути удваивается:C:\\Users\\.... Одиночный слэш ломает JSON. - Путь привязан к версии — папка
app-1.0.9200меняется при обновлении, и правило по пути придётся править. По имени процесса — надёжнее. "outbound": "utgard"— через шлюз,"outbound": "direct"— мимо.- Имя в меню берётся из названия файла:
discord.json→ «Discord»,star-citizen.json→ «Star Citizen». Дефис и подчёркивание становятся пробелами, каждое слово с заглавной. - Файл именуется по назначению и кладётся в
sing-box\configs\— после этого появляется в[5].
Готовый образец: sing-box\configs\example-discord.json — оба способа с пояснениями. Файлы example-* служат только образцами: в меню не показываются и не применяются. Скопируйте под своим именем без префикса и оставьте нужный блок.
Для игр учитывайте, что процессов обычно несколько (лаунчер, клиент, защита) — в правило вносится весь комплект.
Если параллельно работает система модификации трафика на стороне клиента, она может вмешиваться в соединение со шлюзом. Пункт [6] показывает адрес шлюза и куда внести его в исключения.
- Окно можно закрыть — маршрутизация продолжит работать. Остановить:
[2]в меню,[Q]— выход с остановкой. - В автозапуск ничего не прописывается; после перезагрузки требуется запускать заново вручную.
- Не открывается ресурс — проверьте, есть ли он в
[3]; сайты часто тянут содержимое с соседних доменов.
Не передавайте рабочую папку целиком: config.json, config.last-good.json и logs\ содержат учётные данные и историю. Для передачи соберите чистую копию из репозитория.
Utgard Client — под лицензией MIT (файл LICENSE).
Использует внешний компонент, скачиваемый при первом запуске с github.com/SagerNet/sing-box, под лицензией GPLv3. Код компонента не включается и не модифицируется. Лицензия GPLv3 распространяется только на него.
Предоставляется «как есть», без гарантий. Ответственность за законность применения — на пользователе.