Главная / Vpn для определенного приложения

Как настроить VPN для отдельных приложений в Windows

Задача звучит просто: пусть один клиент для кода ходит через прокси, а браузер и всё остальное через обычного провайдера. VPN для определённого приложения без сторонних инструментов в Windows не включить: система не даёт развести трафик по программам штатными средствами. Маршрутизация идёт по адресам назначения, а не по имени процесса. Поэтому «включить VPN только для одной программы» стандартными настройками не получится.

Ниже разберём, что такое раздельное туннелирование, какие есть режимы, и как мы реализовали такую раздачу каналов в Proxy Control.

Что такое раздельное туннелирование

Раздельное туннелирование (split tunneling) означает, что часть трафика идёт через VPN или прокси, а часть напрямую. У обычного VPN-клиента подключение забирает всю сеть машины: один туннель, один маршрут, все программы идут одинаково. Split tunneling ломает это на части и позволяет решать по каждому приложению отдельно.

В мире Android эта функция встроена начиная с Android 10: там можно в настройках выбрать, какие приложения пускать в VPN-соединение. В Windows нативного эквивалента нет. Разделять трафик по процессам приходится через отдельный клиент, который перехватывает подключения раньше, чем они уйдут в сеть.

Два режима: include и exclude

У раздельного туннелирования два основных режима.

Include («только выбранные приложения через VPN»): туннель используют только те программы, что вы явно указали. Всё остальное идёт напрямую. Это и есть настройка VPN для выбранного приложения, когда через туннель ходит один-два процесса, а не вся система.

Exclude («все через VPN, кроме выбранных»): в туннель уходит весь трафик, а перечисленные приложения вы из него исключаете.

Безопасный вариант по умолчанию, это include с явным списком. Тогда программа, которую вы не настроили, не утечёт в туннель по недосмотру. Мы пошли на шаг дальше: у нас неизвестное приложение вообще не выходит в сеть, пока вы не назначите ему канал. Явный отказ надёжнее незаметной утечки.

Почему возникает DNS leak

Частичный туннель легко даёт утечку DNS. Приложение вроде бы идёт через VPN, но запрос на разрешение домена уходит к DNS провайдера напрямую, и ваш реальный регион виден по адресу резолвера. Проблему недооценивают, потому что сам трафик к сайту при этом действительно шифруется, и на первый взгляд всё выглядит рабочим.

Вторая частая протечка, это QUIC и IPv6. Многие клиенты и браузеры пытаются подключиться по UDP через QUIC, и если прокси работает по HTTP CONNECT, такое подключение уйдёт мимо него по обычному маршруту.

В Proxy Control для приложений на прокси заблокированы UDP и IPv6, чтобы QUIC не ушёл в обход. DNS работает по DoH. Так домен резолвится внутри того же канала, а не отдельным незашифрованным запросом.

Как это устроено в Proxy Control

Мы не подменяем системные параметры сети. Программа поднимает виртуальный сетевой адаптер (TUN) на sing-box, забирает в него весь трафик машины и раздаёт по правилам, привязанным к имени процесса. Каналов четыре:

Чтобы клиент для кода вроде Cursor или другой ИИ-инструмент ходил через прокси, вы назначаете ему канал «Прокси». Для этого нужен доступ по региону, а не полный VPN на всю машину.

Как настроить VPN для конкретного приложения

Маршрутизация видна и настраивается на вкладке Приложения. Сверху те, кто был активен последние 2 минуты, ниже остальные по алфавиту. Зелёный кружок значит, что приложение выходило в сеть в последние ~45 секунд. Статус ожидает значит, что канал не назначен и программа сейчас заблокирована.

Порядок такой:

  1. Правый клик по строке приложения, выберите канал.
  2. Нажмите «Применить маршруты». Появится подтверждение с отсчётом 10 секунд.

После применения новые правила уходят в туннель. Пока туннель пересобирается, ставится блокирующее правило брандмауэра: трафик не проскакивает мимо маршрутов, а встаёт на несколько секунд.

Канал у клиента Claude сменить нельзя, он всегда идёт через прокси. Это защита от ситуации, когда он случайно уходит домой или в VPN. Паузу при смене маршрутов он переживает и восстанавливается сам.

Что происходит, если канал недоступен

Мы делаем fail-closed. Если прокси недоступен, приложения на прокси уходят в блок, а не домой. Если узел VPN мёртв, то же самое для VPN-приложений. Смысл в том, что при обрыве канала трафик не должен молча провалиться в обычную сеть провайдера и раскрыть регион.

Проверить, каким каналом реально идёт процесс, можно двумя способами. Живая сверка через локальный API sing-box показывает фактический канал каждого приложения, а не то, что записано в конфиге. Три собственные пробы (копии curl, прибитые к каналам) запрашивают внешний IP и показывают три разных адреса. Если IP канала совпал с домашним, программа пишет про утечку, а не красит статус в зелёный.

Установка

Распакуйте архив и запустите Install.bat. Python и sing-box лежат внутри, интернет при установке не нужен, ставить заранее ничего не требуется. Дальше вводится ключ вида CPC-XXXXXX-XXXXXX, один ключ на один компьютер, по нему программа получает срок действия и персональные реквизиты прокси.

Туннель поднимается сам при запуске программы, старт проходит 15 шагов с проверками. Удаление через Uninstall.bat: снимает туннель, правило брандмауэра, задания планировщика, ярлык и папку продукта.

Подписка стоит 495 ₽/мес помесячно, от 395 ₽/мес при оплате за год, есть тарифы на 2, 3, 6 и 12 месяцев. Поддержка в Telegram.

Если вам нужен именно доступ к ИИ-инструментам, а не туннель на всю машину, посмотрите нейросети без впн и раздачу трафика по приложениям в Proxy Control.

Proxy Control для Windows

Программа разводит трафик по приложениям: ИИ-инструменты идут через прокси, остальное напрямую. Подписка от 395 ₽ в месяц при оплате за год.

Скачать и попробовать