Часто перед пользователями и системными администраторами встает задача: обеспечить работу конкретной программы (например, TeamViewer, AnyDesk или браузера) через защищенное VPN-соединение, оставив при этом остальной трафик системы (почту, мессенджеры, локальные ресурсы) через обычный интернет-канал. Эта технология называется Split Tunneling (раздельное туннелирование). Рассмотрим подробно, как реализовать эту задачу различными способами — от простых программных решений до сложных скриптов.
Самый простой и доступный способ для обычного пользователя — это использование готовых VPN-решений, которые имеют встроенную функцию разделения трафика. Рассмотрим этот процесс на примере программы Windscribe, которая упоминалась в обсуждении.
Для настройки выполним следующие шаги:
.exe из его программной папки.Разберем более продвинутый метод, который позволяет превратить любой VPN в SOCKS-прокси, к которому можно подключить конкретное приложение. Это решение идеально подходит, если ваше приложение поддерживает настройки прокси или если вы используете проксификатор.
Для реализации нам понадобится клиент OpenVPN и небольшая утилита 3proxy. Проанализируем логику настройки конфигурационного файла .ovpn. Нам нужно запретить VPN-клиенту перехватывать весь системный трафик:
route-nopull
route 0.0.0.0 0.0.0.0 vpn_gateway
pull-filter ignore "dhcp-option DNS"
script-security 2
up 'c:\path\to\up.cmd'
down 'c:\path\to\down.cmd'
Разберем, что делают эти команды:
route-nopull — заставляет клиент игнорировать маршруты, которые присылает сервер (чтобы ваш интернет не пропал и не заменился на VPN полностью).vpn_gateway — подготавливает шлюз для работы.up 'up.cmd' — запускает сценарий при установке соединения.Текст скрипта up.cmd для запуска прокси-сервера может выглядеть так:
@echo off
echo auth none > 3proxy-openvpn.conf
echo internal 127.0.0.1 >> 3proxy-openvpn.conf
echo external %4 >> 3proxy-openvpn.conf
echo socks >> 3proxy-openvpn.conf
start /b 3proxy.exe 3proxy-openvpn.conf
После запуска такого соединения у вас на локальном компьютере по адресу 127.0.0.1:1080 появится SOCKS5 прокси. Теперь в настройках вашего приложения (например, в том же TeamViewer или Telegram) достаточно указать этот прокси-сервер, и трафик пойдет через VPN-туннель.
Если вы используете протокол WireGuard, то существует отличное бесплатное решение под названием WireSock. Проанализируем его преимущество: оно работает на уровне драйвера и позволяет фильтровать трафик по именам приложений прямо в конфиге.
В обычный конфигурационный файл WireGuard добавляется всего одна строка в секцию [Interface]:
AllowedApps = TeamViewer, chrome
После этого драйвер будет автоматически перехватывать пакеты только от указанных процессов. Это одно из самых производительных и стабильных решений на сегодняшний день, не требующее запуска лишних прокси-серверов.
Рассмотрим ситуацию, когда приложение обращается к конкретным IP-адресам или подсетям. В этом случае мы можем обойтись без сложного ПО, настроив таблицу маршрутизации Windows вручную через командную строку.
Выясним IP-адрес шлюза вашего VPN-соединения (допустим, это 192.168.1.14) и целевую сеть приложения (например, 174.14.8.0). Используем команду route:
route add -p 174.14.8.0 mask 255.255.255.0 192.168.1.14
Разберем параметры команды:
-p — делает маршрут постоянным (сохраняется после перезагрузки).174.14.8.0 — целевая сеть, куда обращается программа.255.255.255.0 — маска подсети.192.168.1.14 — IP вашего VPN-интерфейса, через который должен уйти пакет.Важно: этот способ будет работать только в том случае, если вы знаете точные IP-адреса серверов, с которыми работает программа. Для облачных сервисов с динамическими IP этот метод малоэффективен.
Для тех, кто предпочитает графический интерфейс и гибкость, разберем использование программ-проксификаторов. Программы типа Nekoray или Proxifier позволяют создавать правила на лету.
Посмотрим, как это работает в режиме TUN:
TeamViewer.exe, и программа сама заботится о том, чтобы перенаправить его трафик в выбранный туннель (VLESS, Shadowsocks или WireGuard).Это решение позволяет также избежать утечек DNS (DNS Leak). Проанализируем этот момент: часто приложение отправляет запрос на определение IP-адреса сайта через системный DNS провайдера, что позволяет отследить вашу активность. Использование Nekoray позволяет принудительно отправлять DNS-запросы через удаленный VPN-сервер.
Мы рассмотрели несколько подходов к решению задачи. Выбор конкретного метода зависит от ваших навыков и требований:
route add.Помните, что при использовании VPN важно следить за тем, чтобы не возникало конфликтов маршрутов, особенно если вы используете несколько сетевых интерфейсов одновременно.