VPN включён, а сайты не работают: большой обзор способов маршрутизации трафика на Windows, Linux и macOS

—

от автора

Включаете VPN — и внезапно перестают нормально работать некоторые сайты. Отключаете его — банковские приложения, интернет-магазины и государственные сервисы снова открываются, зато теряется доступ к другим ресурсам.

Если VPN один, проблему иногда решает пара исключений. А что, если на компьютере одновременно используются обычное интернет-подключение, личный VPN и корпоративный VPN? И все они необходимы, причём менять привычные программы совершенно не хочется?

Я попробовал разобраться, какие решения существуют для Windows, Linux и macOS. В обзор вошли массовые VPN-сервисы, mihomo, sing-box, Xray, графические оболочки, прокси-менеджеры, корпоративные VPN, системные маршрутизаторы, собственные серверы и OpenWrt.

Сравнивать будем не скорость, анонимность или количество серверов, а то, как именно программы управляют трафиком, какие сетевые подключения используют и сколько знаний требуют от пользователя.

Материал большой, поэтому ниже есть содержание с переходами к разделам.


Содержание

  1. Почему включённый VPN мешает другим сайтам

  2. Шесть способов маршрутизации трафика

  3. Чем отличаются Windows, Linux и macOS

  4. Коммерческие VPN: от простых исключений до сложных правил

  5. Mihomo, sing-box и Xray: движки маршрутизации

  6. Графические клиенты: Clash Verge Rev, Happ, Hiddify и другие

  7. Корпоративные VPN и их политики

  8. Proxifier, BindRouter и независимые маршрутизаторы

  9. Собственные серверы, overlay-сети и OpenWrt

  10. DNS, IPv6, QUIC, CDN, TUN и kill switch

  11. Что происходит при смене VPN и переподключении

  12. Практическая диагностика на трёх ОС

  13. Сравнительные матрицы продуктов

  14. Какой подход выбрать в разных сценариях

  15. Выводы и ограничения исследования

1. Почему включённый VPN мешает другим сайтам

Для начала представим три подключения.

Обычный интернет используется для банков, магазинов, локальных сервисов и больших загрузок. Личный VPN — для выбранных внешних ресурсов. Корпоративный — для доступа к внутренним серверам и приложениям.

Канал

Пример назначения

Желаемое поведение

Основной интернет

Магазины, банки, обычные загрузки

Работает напрямую

Личный VPN

Определённые сайты и приложения

Используется выборочно

Корпоративный VPN

Внутренние ресурсы и сети

Не нарушает политики компании

Проблема начинается, когда разные сетевые программы пытаются управлять одними и теми же системными настройками.

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

В результате корректно настроенный корпоративный доступ способен перестать работать после подключения личного VPN. Или наоборот: корпоративное соединение установлено, но обычный интернет пошёл через рабочую сеть.

Причём дело далеко не всегда в самом VPN.

Некоторые сайты ограничивают доступ по географии. Другие подозрительно относятся к адресам хостинг-провайдеров. Иногда проблема заключается в DNS, IPv6, недоступном CDN либо конфликте маршрутов.

Внешне всё выглядит одинаково: сайт не открывается при активном VPN.

Поэтому сначала нужно разобраться, какое решение о маршруте принимает система и кто именно его контролирует.

Один ПК, три подключения: обычный интернет, личный VPN и корпоративный VPN

Один ПК, три подключения: обычный интернет, личный VPN и корпоративный VPN

2. Шесть способов маршрутизации трафика

В документации разных продуктов встречаются слова routing, split tunneling, bypass, TUN, proxy, policy-based routing.

Это не синонимы.

2.1. Классическая IP-маршрутизация

Самый простой вариант — таблица маршрутов операционной системы.

Пример условной конфигурации:

Destination        Interface0.0.0.0/0          Personal VPN10.25.0.0/16       Corporate VPN192.168.1.0/24     Ethernet

Для обращения к 10.25.7.10 система выберет более специфичный маршрут 10.25.0.0/16, а не общий 0.0.0.0/0.

Это называется longest prefix match — выбор маршрута по наиболее длинному подходящему префиксу.

Метрики тоже влияют на выбор, но они не заменяют принцип наиболее специфичного маршрута.

Преимущества такого способа — простота и использование системных механизмов. Ограничение — обычная таблица маршрутов не знает, в каком браузере открыта страница и какому домену принадлежит IP.

2.2. Split tunneling внутри VPN-клиента

Наиболее распространённый пользовательский вариант.

Обычно встречаются два режима:

Exclude: весь трафик направляется через VPN, кроме явно перечисленных исключений.

Include: только перечисленные назначения используют VPN, остальные идут напрямую.

Однако в одном клиенте это могут быть правила по приложениям, в другом — по IP, в третьем — по сайтам.

Поэтому фраза «поддерживается split tunneling» сама по себе недостаточна для технического сравнения.

2.3. Маршрутизация по доменным именам

Пользователю удобно указать:

*.example.com → VPN

Но сетевое соединение устанавливается с IP-адресом.

Следовательно, приложению нужно связать доменное имя с конкретным соединением либо соответствующим набором IP.

Есть несколько основных подходов.

Механизм

Как работает

Возможная проблема

Однократный DNS

Домен разрешается в IP, создаётся правило

IP меняется, правило устаревает

Периодический DNS

Адреса обновляются по расписанию

Между обновлениями возможен разрыв

Контролируемый DNS

Программа видит DNS-запросы и ответы

Приложения могут использовать собственный DNS

Fake-IP

Виртуальный IP связывается с доменом

Нужна согласованная обработка трафика

Анализ соединения

Используются доступные сведения о протоколе

Не все метаданные видимы, особенно при шифровании

Дополнительная сложность — CDN.

Один сайт может использовать десятки доменов и IP-адресов. При этом один IP способен обслуживать множество не связанных друг с другом сайтов.

Поэтому маршрутизация по списку IP и по FQDN не является полностью взаимозаменяемой.

2.4. Маршрутизация по приложениям

Другой вариант — определять процесс, который устанавливает соединение.

Например, браузер должен идти через VPN, а игровая программа — напрямую.

Но приложения не всегда состоят из одного процесса.

Браузеры используют отдельные сетевые процессы, игровые лаунчеры запускают дочерние приложения, некоторые соединения создаются системными службами.

Кроме того, приложение может игнорировать системный прокси или использовать собственный сетевой стек.

Поэтому поддержка per-app routing зависит от того, на каком уровне программа определяет процесс и перехватывает трафик.

2.5. Проксирование через SOCKS, HTTP или SSH

SOCKS5, HTTP CONNECT и SSH-туннели позволяют направлять соединения через промежуточный сервер.

Например, на компьютере может быть несколько локальных прокси:

127.0.0.1:1080 → Proxy A127.0.0.1:2080 → Proxy B127.0.0.1:3080 → Proxy C

Одна программа использует первый, другая — второй.

Такой подход удобен, если приложения поддерживают явную настройку прокси.

Но это ещё не управление системным VPN-адаптером.

Системный прокси охватывает только программы, которые его учитывают. Некоторые приложения используют свои настройки, а другие вообще не поддерживают прокси.

Кроме того, поддержка UDP зависит от протокола и конкретной реализации. SOCKS5 предусматривает UDP ASSOCIATE, но его наличие в стандарте не гарантирует поддержку со стороны каждого клиента и сервера.

2.6. Policy-based routing и перехват трафика

Более универсальный подход — выбирать путь по совокупности условий:

  • IP и подсеть назначения;

  • приложение или процесс;

  • исходный адрес;

  • порт и транспортный протокол;

  • сетевой интерфейс;

  • метка пакета;

  • пользовательская политика.

На Linux это реализуется, например, через отдельные таблицы маршрутизации, ip rule, fwmark, nftables и cgroups.

На Windows применяются механизмы Windows Filtering Platform и сторонние средства перехвата соединений.

На macOS существуют Network Extension и системные механизмы сетевой фильтрации.

Эти возможности позволяют строить маршрутизацию значительно сложнее обычной таблицы IP-маршрутов.

Сравнение механизмов

Подход

Приложения

Домены

IP/CIDR

Несколько выходов

Таблица IP-маршрутов

Нет

Нет напрямую

Да

Да

VPN split tunneling

Зависит от клиента

Зависит от клиента

Часто

Обычно VPN/обычный канал

Системный прокси

Только учитывающие прокси приложения

Да

Да

Через настроенные прокси

TUN + rule engine

Часто

Да

Да

Да

Policy routing

Через дополнительные механизмы

Через дополнительные механизмы

Да

Да

Прикладные сетевые фильтры

Да

При наличии сопоставления

Да

Зависит от реализации

 Шесть механизмов маршрутизации: IP, PBR, домены, приложения, прокси, TUN

Шесть механизмов маршрутизации: IP, PBR, домены, приложения, прокси, TUN

3. Чем отличаются Windows, Linux и macOS

У всех трёх настольных ОС есть средства маршрутизации, но интерфейсы и архитектура различаются.

Windows: WFP, драйверы и таблицы маршрутов

Windows предоставляет обычную IP-маршрутизацию и Windows Filtering Platform (WFP).

WFP позволяет классифицировать и фильтровать соединения с учётом приложения, адресов, портов и других признаков. Существуют также сторонние средства вроде WinDivert и Windows Packet Filter.

Но наличие WFP не означает, что Windows предоставляет готовый интерфейс для настройки правил вида «этот домен через один VPN, этот процесс через другой».

Такое приложение всё равно необходимо разработать.

Отдельная сложность — сосуществование сетевых фильтров VPN, антивирусов, средств DLP, виртуальных машин и других программ.

Linux: policy routing, nftables и namespaces

Linux предоставляет чрезвычайно гибкую систему маршрутизации.

Можно использовать отдельные таблицы маршрутов, правила ip rule, метки пакетов, network namespaces, cgroups и nftables.

Условный пример выбора таблицы маршрутов по метке:

ip rule add fwmark 0x2 table 200

Здесь предполагается, что таблица 200 уже настроена, а нужные пакеты получают метку 0x2. Это иллюстрация механизма, не готовая инструкция для выполнения на рабочем компьютере.

В Linux гибкость обычно оплачивается сложностью конфигурации.

Разные дистрибутивы используют NetworkManager, systemd-networkd, собственные сетевые службы, различные DNS-резолверы и политики безопасности.

Поэтому одна и та же программа может работать на Ubuntu и требовать доработок под другой дистрибутив.

macOS: Network Extension

На macOS для сетевых приложений используются механизмы Network Extension, включая Packet Tunnel и другие виды сетевых расширений.

Они позволяют создавать VPN и фильтры, но требуют соблюдения системных ограничений и получения необходимых разрешений.

Важна также версия macOS и способ распространения приложения.

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

Итог

ОС

Сильная сторона

Основная сложность

Windows

WFP и развитая экосистема сетевых средств

Конфликты фильтров и VPN-драйверов

Linux

Гибкие таблицы, nftables, namespaces

Настройка компонентов и различия дистрибутивов

macOS

Системные API Network Extension

Разрешения, ограничения расширений, различия версий

Здесь нет технически «лучшей» ОС для всех сценариев. Отличается способ, которым разработчику приходится реализовывать нужные функции.

4. Коммерческие VPN: от простых исключений до сложных правил

У многих коммерческих VPN уже есть достаточно развитая маршрутизация.

Важно не преуменьшать их возможности: для пользователя с одним VPN именно встроенный split tunneling часто оказывается наиболее удобным решением.

Windscribe: приложения, IP и hostname

Официальная инструкция Windows

Windscribe поддерживает Inclusive и Exclusive, то есть оба направления маршрутизации.

На Windows можно добавлять приложения, IP и hostname. При этом исключения для приложений из Microsoft Store имеют ограничения.

Linux-клиент также поддерживает разделение по приложениям, hostname, IP и сетям.

На macOS есть правила приложений и IP/hostname, но необходимо разрешить соответствующее системное расширение.

Интересная особенность — DNS. Разделение трафика не всегда означает, что исключённое приложение будет использовать DNS обычного провайдера.

Windscribe — настройка раздельной маршрутизации. Режимы Exclusive (исключение трафика из VPN) и Inclusive (направление выбранного трафика через VPN). Источник: официальная документация Windscribe.

Windscribe — настройка раздельной маршрутизации. Режимы Exclusive (исключение трафика из VPN) и Inclusive (направление выбранного трафика через VPN). Источник: официальная документация Windscribe.

AdGuard VPN: раздельные списки сайтов и приложений

Официальная документация

AdGuard VPN использует независимые списки для сайтов и приложений.

Для каждого есть общий и выборочный режим.

Это позволяет удобно организовать сценарий, при котором выбранные сайты обходят VPN, а остальные используют туннель. Или наоборот.

Отдельное преимущество — понятный интерфейс, готовые категории и импорт/экспорт исключений.

Но есть нюанс: если браузер исключён целиком, отдельные доменные правила внутри него могут взаимодействовать с этим исключением не так, как ожидает пользователь.

На Linux используется AdGuard VPN CLI с двумя режимами доменных исключений.

Пример команды просмотра правил:

adguardvpn-cli site-exclusions show
AdGuard VPN — управление исключениями для сайтов и приложений. Независимые списки и режимы работы VPN для выбранных ресурсов. Источник: официальная документация AdGuard VPN для Windows.

AdGuard VPN — управление исключениями для сайтов и приложений. Независимые списки и режимы работы VPN для выбранных ресурсов. Источник: официальная документация AdGuard VPN для Windows.

Proton VPN: приложения, IP и платформенные ограничения

Официальная инструкция

На Windows Proton VPN позволяет создавать правила Include и Exclude по приложениям и IP.

На Linux предусмотрены оба режима для приложений, но после подключения VPN соответствующие программы нужно перезапускать.

На macOS split tunneling экспериментальный: поддерживаются исключения приложений, есть ограничения для WebKit/Safari и отдельных VPN-протоколов.

Отдельно важно, что совместимость split tunneling и kill switch отличается по платформам. На Windows она поддерживается, а на большинстве других платформ режимы несовместимы.

Это показывает, что маршрутизация и защита от утечек — не обязательно независимые настройки.

Private Internet Access: отдельные правила DNS

Официальная инструкция

PIA позволяет задавать правила по приложениям и адресам.

Приложения могут обходить VPN либо использовать его в выборочном режиме.

Особенно интересны настройки DNS для Windows и Linux. Клиент позволяет выбирать, следуют ли DNS-запросы правилам приложений или используется DNS самого VPN.

Это довольно развитый подход, поскольку IP-маршрутизация и разрешение имён должны рассматриваться вместе.

ExpressVPN: функции зависят от версии

Английская инструкция

В новой документации ExpressVPN описаны правила приложений и IP/CIDR на Windows, Linux и macOS.

Однако русская справка на момент исследования содержит иное описание поддержки macOS 11+.

Поэтому здесь нельзя делать категорический вывод о поддержке функции на любой установленной версии. Нужно сверять релиз клиента и доступность нового интерфейса.

Это один из примеров того, почему нельзя полагаться исключительно на рекламную страницу.

Mullvad: акцент на исключениях

Официальная документация

Mullvad ориентируется на исключение приложений из VPN.

В отличие от продуктов с двумя равнозначными режимами, он не предлагает универсальную модель «только эти приложения через VPN» как основной механизм.

Зато документация очень подробно описывает ограничения: DNS, дочерние процессы, WebKit на macOS и конфликты с другим сетевым ПО.

Это полезнее рекламных обещаний полной совместимости.

AmneziaVPN: на разных ОС разные правила

Официальная документация

AmneziaVPN позволяет маршрутизировать IP-адреса и подсети через VPN или напрямую.

На Windows есть также исключения приложений, но не обратный режим «только выбранные приложения через VPN».

На Linux и macOS per-app маршрутизация отсутствует, доступны IP-правила.

У механизма IP split tunneling есть ограничение IPv4, а введённые доменные имена не получают автоматического постоянного обновления IP-адресов.

Другие коммерческие VPN

Для полноты обзора стоит учитывать и другие реализации.

Продукт

Подход

Примечание

NordVPN

Per-app на Windows, исключения портов/подсетей на Linux

Штатный split tunneling на macOS не предоставляется

Surfshark

Bypasser для приложений и сайтов

Функции зависят от ОС

CyberGhost

Smart Rules и исключения

Автоподключение по приложению не равно per-app routing

hidemy.name

Собственные клиенты и сторонние способы подключения

Возможности маршрутизации нужно проверять по конкретному GUI

Planet VPN

Заявленный Premium split tunneling

Подробная текущая документация GUI ограничена

iTop VPN

Встроенный split tunneling

Доступность зависит от версии и тарифа

БатяVPN

Подключения через совместимые сторонние клиенты в ряде вариантов сервиса

Возможности определяются конкретным приложением

Эта таблица не смешивает продукты с похожими названиями: в отдельных случаях сервис, предоставляющий доступ, и приложение для подключения — разные продукты.

Сравнение по платформам

«Да» означает подтверждённую функцию в официальной документации; «огр.» — существенные ограничения. Вопросительный знак — отсутствие достаточно надёжного подтверждения, а не доказанное отсутствие функции.

Клиент

Windows

Linux

macOS

Windscribe

Приложения, IP, hostname

Приложения, IP, hostname

Приложения, IP, hostname

Proton VPN

Приложения, IP

Приложения

Приложения, экспериментально

AdGuard VPN

Сайты, приложения

CLI, домены

Сайты, приложения

PIA

Приложения, IP

Приложения, IP

Приложения, IP

ExpressVPN

Приложения, IP

Приложения, IP в GUI

Версия и документация требуют проверки

Mullvad

Исключения приложений

Исключения приложений

Исключения приложений, огр.

AmneziaVPN

IP, исключения приложений

IP

IP

NordVPN

Приложения

Порты, подсети

Нет штатного split tunneling

Surfshark

Приложения, сайты/IP

?

Приложения, сайты

CyberGhost

Исключения сайтов

?

?

Что получаем: возможности коммерческих клиентов довольно широки, но правила в основном управляют собственным VPN. Они не обязательно рассчитаны на выбор любого стороннего VPN-адаптера.

5. Mihomo, sing-box и Xray: движки маршрутизации

Здесь начинается наиболее технически развитая категория.

Универсальные движки способны обрабатывать сетевой трафик, сопоставлять его с правилами и выбирать разные исходящие соединения.

Но нужно разделять три вещи: возможности ядра, возможности графического клиента и типы подключений, которыми система действительно управляет.

Mihomo

Документация правил mihomo

Mihomo поддерживает:

  • доменные правила;

  • IPv4/IPv6 и CIDR;

  • процессы и пути исполняемых файлов;

  • порты и сетевые протоколы;

  • составные правила;

  • обновляемые rule providers;

  • группы прокси и несколько исходящих направлений;

  • TUN и DNS.

Условный пример:

rules:  - DOMAIN-SUFFIX,example.com,DIRECT  - IP-CIDR,10.25.0.0/16,CORP,no-resolve  - PROCESS-NAME,browser.exe,PERSONAL  - MATCH,DIRECT

Здесь CORP и PERSONAL — условные имена выходов; они должны быть отдельно определены в конфигурации. Это демонстрация синтаксиса, не готовый рабочий файл.

Важный нюанс: DIRECT не обязательно означает физический интернет.

В mihomo можно настроить исходящий direct с привязкой к конкретному интерфейсу.

Например:

proxies:  - name: "direct-wan"    type: direct    interface-name: eth0

Имя интерфейса условное, для Linux. Такой механизм документирован в описании DIRECT.

То есть технически mihomo способен использовать существующий системный интерфейс, в том числе в соответствующей конфигурации VPN.

Но это не означает, что любой чужой VPN-клиент будет автоматически найден и правильно интегрирован.

Sing-box

Официальная документация

Sing-box предлагает гибкую структуру inbound, outbound, DNS и правил.

Для Windows, Linux и macOS предусмотрены правила по процессам, доменам, адресам, портам и другим условиям.

Есть также default_interface, auto_detect_interface и отдельные настройки исходящих соединений.

При этом auto_detect_interface прежде всего помогает правильно выбирать сетевой интерфейс и предотвращать маршрутизационные циклы при работе с TUN.

Это не универсальный механизм автоматического объединения всех установленных VPN.

Xray

Официальная документация

Xray позволяет создавать правила по входящим соединениям, доменам, IP и протоколам, назначая соответствующие outbounds.

Поддерживаются DNS-стратегии, включая AsIs, IPIfNonMatch и IPOnDemand.

Это важно, поскольку доменная маршрутизация может требовать разного поведения DNS в зависимости от правил.

В экосистеме Xray есть развитые графические оболочки, которые упрощают работу с конфигурациями.

Сводная таблица движков

Функция

Mihomo

Sing-box

Xray

Домены, IP, CIDR

Да

Да

Да

Порты/протоколы

Да

Да

Да

Per-process

Да

Да

Зависит от интеграции

Несколько outbound

Да

Да

Да

DNS-правила

Да

Да

Да

TUN

Да

Да

Через клиентские средства

Привязка к интерфейсу

Да

Да

Зависит от настроек и реализации

Обновляемые наборы правил

Да

Да

Да, с особенностями экосистемы

Готовый массовый GUI

Через оболочки

Через оболочки

Через оболочки

Возможности этих движков не нужно преуменьшать.

Для опытного пользователя или администратора они позволяют построить очень сложные схемы.

Но готовность движка к такой схеме и доступность соответствующей функции в пользовательском GUI — не одно и то же.

6. Графические клиенты: Clash Verge Rev, Happ, Hiddify и другие

Универсальные движки уже давно не требуют обязательной работы с YAML или JSON.

Clash Verge Rev

Репозиторий

Clash Verge Rev предоставляет интерфейс над mihomo: профили, подписки, выбор узлов, TUN, правила и механизмы расширения конфигурации.

Это один из наиболее развитых универсальных клиентов.

Но пользователь должен понимать, какие настройки поступают из подписки, а какие переопределяются глобальными параметрами самого клиента.

При сложной маршрутизации это становится важным.

Clash Verge Rev — графический редактор правил маршрутизации. Настройка условий, позволяющих направлять трафик через прокси, напрямую или блокировать соединения. Источник: официальная документация Clash Verge Rev.

Clash Verge Rev — графический редактор правил маршрутизации. Настройка условий, позволяющих направлять трафик через прокси, напрямую или блокировать соединения. Источник: официальная документация Clash Verge Rev.

Sing-Box Launcher

Русскоязычный README

Sing-Box Launcher предлагает визуальный конфигуратор, несколько источников подключений, DNS, правила и профили.

Автор позиционирует продукт как профессиональное сетевое ПО.

При этом есть поддержка различных форматов подписок и определённых конфигураций WireGuard/AmneziaWG.

Но импорт совместимого профиля и управление произвольным уже работающим VPN-интерфейсом — разные задачи.

Happ

Happ умеет работать с готовыми подписками и развитой системой правил.

В официальной документации предусмотрена per-app маршрутизация на Windows, Linux и macOS.

Есть режимы исключения выбранных приложений и направления через прокси только выбранных приложений.

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

Hiddify

Hiddify предлагает относительно простой импорт подписок и режимы Proxy, System Proxy и VPN/TUN.

Разница принципиальная:

Режим

Охват

Локальный прокси

Программы, явно использующие его

System Proxy

Программы, учитывающие системные настройки

VPN/TUN

Более широкий системный трафик через виртуальный интерфейс

Приложение, игнорирующее системный прокси, не обязательно будет затронуто правилами в соответствующем режиме.

v2rayN

v2rayN поддерживает разные движки, включая Xray и sing-box.

Есть редактор правил, подписки и управление DNS.

Но поддерживаемые режимы могут различаться в зависимости от выбранного ядра.

Karing и v2RayTun

Karing ориентирован на простую настройку готовых подключений и поддерживает множество форматов.

Однако интерфейс per-app routing на десктопах не обязательно предоставляет все возможности базового движка.

v2RayTun также работает с готовыми подписками, но десктопные реализации и наборы функций различаются.

Что важно для сравнения

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

Если же пользователь использует собственное закрытое VPN-приложение, корпоративную авторизацию или аппаратные ключи, импорт профиля может оказаться невозможен либо нежелателен.

Тогда требуется отдельная схема работы с уже существующим сетевым интерфейсом.

 Импорт конфигураций в движок против использования существующих VPN

Импорт конфигураций в движок против использования существующих VPN

7. Корпоративные VPN и их политики

Корпоративные VPN иногда имеют более развитые средства маршрутизации, чем массовые коммерческие приложения.

Но эти средства обычно контролируются администратором.

Check Point

В Check Point существуют разные режимы удалённого доступа, включая Hub Mode.

В зависимости от политики через корпоративный шлюз могут направляться только внутренние сети либо весь трафик.

Если компания принудительно установила Hub Mode, пользователь не должен пытаться обходить эту политику сторонним маршрутизатором.

Cisco Secure Client

Документация Cisco

Cisco поддерживает статическую и динамическую маршрутизацию, split include/exclude и split DNS.

В некоторых конфигурациях администратор может задавать динамические правила по доменам, включая отдельные поддомены.

Это технически значительно сложнее обычного списка исключений.

GlobalProtect

Матрица функций

GlobalProtect поддерживает правила по сетям, доменам и приложениям, но возможности различаются на Windows, Linux и macOS.

Например, Linux-реализация имеет ограничения по application-based routing.

Это ещё один пример, почему общий список функций продукта нельзя автоматически переносить на все платформы.

FortiClient

FortiClient EMS

В корпоративных конфигурациях FortiClient возможно application-based split tunneling на Windows.

Правила задаёт администратор через EMS.

При этом Fortinet предупреждает о возможных конфликтах с другими VPN и сетевыми фильтрами.

OpenVPN, WireGuard и специализированные клиенты

OpenVPN позволяет серверу передавать маршруты клиентам и настраивать split tunnel.

WireGuard использует AllowedIPs, а клиентские приложения формируют соответствующие маршруты.

В некоторых корпоративных конфигурациях используются аппаратные токены и отдельные средства аутентификации.

Но важно различать функции протокола, VPN-клиента и политики организации.

Сравнение корпоративных решений

Продукт

Маршрутизация

Кто обычно управляет

Check Point

Сети, Hub Mode, политики доступа

Администратор

Cisco Secure Client

Сети, домены, DNS

Администратор

GlobalProtect

Сети, домены, приложения

Администратор

FortiClient

Сети, приложения на Windows

Администратор EMS

OpenVPN Connect

Маршруты из конфигурации и от сервера

Сервер / профиль

WireGuard

IP/подсети

Конфигурация клиента/администратор

Корпоративные клиенты с токенами

Зависит от VPN-технологии

Организация

Главное: наличие механизма маршрутизации не означает свободы пользователя назначать произвольные выходы.

Это не недостаток корпоративных VPN, а часть их назначения.

8. Proxifier, BindRouter и независимые маршрутизаторы

Здесь начинается особенно интересная категория.

В отличие от инструментов, требующих совместимого VPN-профиля, некоторые программы способны работать с уже существующими системными сетевыми интерфейсами.

Proxifier

Официальная документация Windows 4.x

Proxifier поддерживает правила по приложениям, доменам, IP, портам, прокси и цепочкам прокси.

Но у него также есть функция назначения сетевого интерфейса для конкретного правила.

Можно выбрать Ethernet, Wi-Fi или VPN.

При отключении интерфейса предусмотрены разные варианты поведения, включая переход к системному выбору либо игнорирование правила.

Это существенно расширяет возможности Proxifier по сравнению с простым SOCKS-менеджером.

Однако выбор интерфейса реализован в рамках его собственной модели обработки соединений. Он не эквивалентен универсальной пакетной маршрутизации всего трафика ОС.

Proxifier — расширенные параметры правила маршрутизации. Выбор сетевого интерфейса (Network Interface) для соединений, соответствующих правилу. Источник: официальная документация Proxifier для Windows 4.x.

Proxifier — расширенные параметры правила маршрутизации. Выбор сетевого интерфейса (Network Interface) для соединений, соответствующих правилу. Источник: официальная документация Proxifier для Windows 4.x.

ProxyCap

ProxyCap работает преимущественно с прокси и SSH-туннелями.

Поддерживает правила по приложениям, IP, доменам и портам.

Для некоторых прокси-протоколов возможна передача UDP.

Но пользователь должен иметь доступный прокси. Сам по себе установленный VPN не обязательно предоставляет его.

BindRouter

BindRouter — интересный небольшой проект для Windows.

Автор предлагает выбрать приложение и сетевой адаптер, после чего запускать программу с соответствующей сетевой привязкой.

В документации заявлена работа с TCP и UDP/QUIC, включая дочерние процессы.

Используется WinDivert и собственный механизм обработки пакетов.

При этом основная модель — привязка запускаемых приложений, а не универсальная маршрутизация всех назначений по FQDN, IP, портам и другим условиям.

dual-vpn-router

dual-vpn-router — Linux-проект для одновременной работы нескольких VPN.

В описании заявлены отдельные таблицы маршрутов, корпоративный split DNS, правила IP/CIDR и реакция на переподключение туннелей.

Интересен режим работы с уже существующими подключениям, без обязательного самостоятельного поднятия VPN.

Однако это небольшой проект с ограниченным набором документированных сценариев, а не подтверждённая универсальная совместимость со всеми корпоративными клиентами.

DirectLane

DirectLane решает более узкую задачу: добавляет IPv4-маршруты для выбранных сайтов через обычный шлюз.

Это может помочь при отсутствии встроенных исключений в VPN.

Но здесь нет полноценной маршрутизации приложений, IPv6 и произвольного выбора нескольких VPN.

WireSock и TunnlTo

WireSock и TunnlTo предлагают более удобное управление WireGuard-трафиком на Windows.

Однако они используют собственный управляемый WireGuard-туннель или совместимую конфигурацию, а не произвольное стороннее VPN-подключение.

Что имеем

Решение

Модель

Главное отличие

Proxifier

Соединения, прокси, интерфейсы

Развитый GUI правил

ProxyCap

Прокси/SSH

Управление через прокси

BindRouter

Приложение → адаптер

Работа с существующим интерфейсом

dual-vpn-router

Несколько VPN и маршрутов

Linux policy routing и DNS

DirectLane

Домен → IPv4 → маршрут

Простая адресная маршрутизация

WireSock

WireGuard + правила

Собственный управляемый туннель

TunnlTo

GUI для WireGuard

Удобные правила по приложениям

Именно эта категория показывает, что независимая маршрутизация поверх системных интерфейсов не является совершенно новой идеей.

Но разные проекты решают разные её части.

9. Собственные серверы, overlay-сети и OpenWrt

Самостоятельное развёртывание VPN — ещё один вариант.

Но здесь важно понимать, где именно принимается решение о маршруте.

Amnezia Self-hosted

Документация

Amnezia позволяет развернуть собственный VPN на VPS через графическое приложение.

В типовом сценарии не требуется самостоятельно писать всю серверную конфигурацию.

Но дальше пользователь отвечает за сервер, обновления и доступность подключения.

Outline

Outline разделяет управление сервером и пользовательский клиент.

Outline Manager позволяет выдавать доступы, а Outline Client подключается к подготовленной инфраструктуре.

Это удобно для собственного прокси-сервиса.

Но создание своего сервера не даёт автоматически полноценной маршрутизации по приложениям на каждом компьютере.

3x-ui

Документация 3x-ui

3x-ui предоставляет управление Xray, пользователями, подписками, исходящими соединениями и серверными правилами.

В новых версиях документированы способы использования определённых коммерческих VPN через WireGuard-интеграции.

Это означает, что серверные панели способны взаимодействовать с некоторыми VPN-провайдерами значительно шире, чем просто через VLESS или SOCKS.

Но управление серверным outbound и маршрутизация приложений на локальном ПК — разные уровни.

Важно также правильно понимать direct на сервере: это выход через сеть самого сервера, а не обязательно через обычного домашнего провайдера пользователя.

Hiddify Manager

Hiddify Manager автоматизирует собственную прокси-инфраструктуру, конфигурации и подписки.

Но клиентские правила продолжают зависеть от конкретного приложения на компьютере.

wg-easy

wg-easy упрощает управление WireGuard-сервером.

Есть веб-панель, создание клиентов, конфигурации и управление доступами.

Но AllowedIPs не является полноценным редактором правил по приложениям и FQDN.

NetBird и Tailscale

NetBird и Tailscale позволяют создавать частные overlay-сети.

У них есть маршрутизация подсетей, DNS, политики доступа и Exit Nodes.

Это мощные системы для удалённого доступа и объединения устройств.

Однако они не обязаны управлять произвольными уже установленными VPN-клиентами пользователя.

OpenWrt и Policy-Based Routing

OpenWrt PBR — один из наиболее развитых вариантов маршрутизации на сетевом шлюзе.

Через LuCI можно создавать правила между WAN и VPN по адресам, сетям, доменам и некоторым другим критериям.

Для домашней сети это часто удобнее установки специальной программы на каждый компьютер.

Но если VPN запускается непосредственно на ПК, домашний роутер обычно видит зашифрованное соединение с VPN-сервером, а не внутренние адреса и приложения внутри туннеля.

Поэтому PBR на роутере и маршрутизация на компьютере не эквивалентны.

 Где принимается решение о маршруте: ПК, роутер, сервер

Где принимается решение о маршруте: ПК, роутер, сервер

10. DNS, IPv6, QUIC, CDN, TUN и kill switch

Теперь перейдём к нюансам, которые чаще всего определяют, насколько надёжно работает маршрутизация.

DNS

Если приложение отправлено напрямую, но его DNS-запросы идут через VPN, результат может отличаться от ожидаемого.

Причина не обязательно в ошибке. Некоторые клиенты сознательно используют единый DNS для всех приложений.

Поэтому корректная маршрутизация требует отдельно учитывать обработку имён.

DoH и DoT

Приложения могут обращаться к собственным DNS-серверам через HTTPS или TLS.

Если маршрутизатор наблюдает только системный DNS, он может не увидеть часть запросов и потерять связь между доменом и сетевым соединением.

CDN

CDN использует динамические адреса и распределённую инфраструктуру.

Условный домен example.com может разрешаться в разные IP для разных DNS-серверов, регионов и моментов времени.

Поэтому статическое правило IP не всегда является надёжной заменой доменного правила.

IPv6

Одна и та же программа может использовать IPv4 и IPv6.

Если маршрутизатор контролирует только IPv4, соединение через IPv6 может пройти иначе, чем ожидается.

Поэтому важно проверять поддержку обеих адресных семей.

QUIC и UDP

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

Программа, управляющая только TCP, не обязательно охватывает такой трафик.

При этом блокировка QUIC не равнозначна решению проблемы маршрутизации: приложение может перейти на другой транспорт, но это изменяет поведение соединений.

TUN

TUN предоставляет виртуальный сетевой интерфейс, через который можно обрабатывать IP-трафик.

Однако запуск TUN сам по себе не решает всю задачу: необходимо обеспечить правильные маршруты, DNS, исключение служебного трафика и отсутствие циклов.

Kill switch

Kill switch может полностью запретить соединения вне VPN.

При строгом режиме даже корректный маршрут через физический интерфейс может не работать из-за правил брандмауэра.

Это особенно важно для WireGuard и корпоративных клиентов, которые применяют дополнительные сетевые политики.

Fail-open и fail-closed

Предположим, определённый сайт должен работать только через VPN.

Что произойдёт, если туннель отключится?

Fail-open: трафик может перейти на другое доступное подключение.

Fail-closed: соединение блокируется до восстановления нужного канала.

Ни один режим не является универсально правильным.

Для обычной загрузки fail-open может быть приемлем. Для корпоративного доступа или чувствительных назначений автоматический переход на другой канал может быть недопустим.

Сводная таблица

Проблема

Возможное проявление

Что учитывать

Смена IP сайта

Правило перестало работать

Обновление DNS

CDN и общие IP

Непредусмотренные сайты используют тот же маршрут

Точность сопоставления

DoH/DoT

Домен не связан с соединением

Источник DNS-информации

IPv6

Соединение идёт не по ожидаемому пути

Обе адресные семьи

QUIC/UDP

Часть трафика не перехватывается

Поддержка протоколов

Kill switch

Прямой маршрут заблокирован

Политики firewall

Переподключение VPN

Изменились интерфейс и маршруты

Обработка сетевых событий

Два VPN

Конфликт маршрутов/DNS

Совместимость и приоритеты

TUN loop

Не работает сам VPN

Исключение служебных соединений

Fail-open

Трафик неожиданно выходит напрямую

Политика отказа

11. Что происходит при смене VPN и переподключении

Рассмотрим четыре сценария.

Смена сервера внутри VPN

Если сетевой интерфейс сохраняется и клиент корректно обновляет свои параметры, правила могут продолжить работать без изменений.

Но это зависит от реализации.

Некоторые клиенты пересоздают подключение, меняют DNS или устанавливают новые маршруты.

Смена VPN-провайдера

Если новый провайдер предоставляет совместимый профиль для того же универсального клиента, переход часто достаточно прост.

Но если новый сервис использует собственное приложение, пользователь может потерять возможность применять ранее созданные правила без перенастройки.

Именно поэтому некоторые инструменты стараются отделить правила маршрутизации от конфигураций конкретного VPN.

Два VPN одновременно

Возможны разные модели:

Конфигурация

Что происходит

Два VPN с разными внутренними подсетями

Часто возможно при корректных маршрутах

Два VPN с пересекающимися подсетями

Требуется специальная политика

Один VPN устанавливает default route

Второй должен учитывать этот маршрут

Оба VPN требуют full tunnel

Возможен конфликт

Один VPN применяет строгий kill switch

Другой канал может блокироваться

Корпоративный VPN запрещает split tunnel

Пользователь не должен обходить ограничение

Отдельно стоит учитывать DNS, потому что несколько VPN могут одновременно пытаться изменить системные резолверы.

Пересоздание адаптера

Самая неприятная ситуация возникает, когда VPN отключается и при повторном подключении создаётся новый виртуальный интерфейс.

Правило, привязанное к старому интерфейсу, больше не обязательно применимо.

Поэтому недостаточно единожды создать маршрут — нужно ещё правильно обрабатывать изменение доступных каналов.

Это уже полноценная задача управления сетевым состоянием.

12. Практическая диагностика на трёх ОС

Чтобы разговор был не только теоретическим, приведу несколько команд, полезных для диагностики.

Они предназначены для просмотра состояния системы и не изменяют маршруты.

Windows

Список сетевых интерфейсов:

Get-NetAdapter |    Format-Table Name, InterfaceDescription, Status, ifIndex

IP-интерфейсы и метрики:

Get-NetIPInterface |    Format-Table InterfaceAlias, AddressFamily, InterfaceMetric

Таблица IPv4-маршрутов:

Get-NetRoute -AddressFamily IPv4 |    Format-Table DestinationPrefix, InterfaceAlias, NextHop, RouteMetric

Поиск маршрута к адресу:

Find-NetRoute -RemoteIPAddress 1.1.1.1

Важно: результат выбора маршрута не является доказательством успешного прохождения пакета. Firewall и VPN-клиент могут применить дополнительные ограничения.

Linux

Интерфейсы:

ip -br addr

Маршруты и политики:

ip route showip rule show

Путь до выбранного адреса:

ip route get 1.1.1.1

DNS, если используется systemd-resolved:

resolvectl status

На Linux также полезно смотреть метки пакетов, отдельные таблицы маршрутизации и nftables, но это уже зависит от конкретной конфигурации.

macOS

Сетевые интерфейсы:

ifconfig

Маршрут к IP:

route -n get 1.1.1.1

Системная конфигурация DNS:

scutil --dns

Здесь, как и на других ОС, наблюдаемый системный маршрут не гарантирует, что сетевое расширение или фильтр пропустит соответствующее соединение.

Почему одного теста IP недостаточно

Иногда пользователь открывает сайт «какой у меня IP», видит нужный адрес и считает, что маршрутизация работает.

Но такой тест показывает лишь путь конкретного соединения.

Он не подтверждает корректность DNS, IPv6, UDP, других приложений или поведение при отключении VPN.

Для полноценной проверки нужны отдельные сценарии.

13. Сравнительные матрицы продуктов

Чтобы не превращать статью в бесконечный перечень интерфейсов, сведём решения по функциональным группам.

Коммерческие VPN

Решение

Приложения

Домены/сайты

IP/подсети

Главная особенность

Windscribe

Да

Да

Да

Два направления правил

AdGuard VPN

Да на Win/macOS

Да

Через реализацию клиента

Независимые списки

Proton VPN

Да

В браузерном расширении

Да на Windows

Отличия платформ

PIA

Да

Не основной документированный тип

Да

Настройки DNS

ExpressVPN

Да

Сайты через адресные исключения

Да

Версионные особенности

Mullvad

Исключения

Не основной тип

Ограничено

Подробные предупреждения

AmneziaVPN

Windows: исключения

Через IP

Да, IPv4

Различия ОС

NordVPN

Windows: да

Не основной тип

Linux: подсети

Разные модели

Surfshark

Да

Да, исключения

Зависит от ОС

Bypasser

CyberGhost

Не как полноценный per-app routing

Исключения сайтов

Ограничено

Smart Rules

Универсальные движки и GUI

Решение

Основа

Главная сила

Основная сложность

Mihomo

Собственный движок

Правила, TUN, DNS, группы

Конфигурация

Sing-box

Собственный движок

Гибкая маршрутизация

Конфигурация

Xray

Собственный движок

Inbound/outbound, DNS, балансировка

Конфигурация

Clash Verge Rev

Mihomo

Развитый GUI

Взаимодействие GUI и правил

Sing-Box Launcher

Sing-box

Визуальный конструктор

Ориентация на подготовленного пользователя

Happ

Xray

Готовые профили, per-app

Зависимость от профилей

Hiddify

Sing-box

Быстрый старт

Различия Proxy/TUN

v2rayN

Xray/sing-box

Развитые правила

Зависимость от ядра

Karing

Sing-box

Простота и подписки

Ограничения GUI на десктопах

v2RayTun

Xray-экосистема

Готовые подключения

Отличия реализаций

Независимые инструменты и инфраструктура

Решение

Где работает

Основное назначение

Proxifier

Windows/macOS

Прокси и правила соединений

BindRouter

Windows

Привязка приложений к адаптерам

ProxyCap

Windows/macOS

Прокси и SSH

dual-vpn-router

Linux

Несколько VPN, маршруты и DNS

DirectLane

Windows

IP-маршруты выбранных сайтов

WireSock

Windows

WireGuard с расширенными правилами

Amnezia Self-hosted

Сервер + клиент

Собственный VPN

Outline

Сервер + клиент

Собственный прокси-доступ

3x-ui

Сервер

Маршрутизация Xray

wg-easy

Сервер

Управление WireGuard

NetBird / Tailscale

Устройства и overlay-сеть

Частные сети и доступ

OpenWrt PBR

Маршрутизатор

WAN/VPN policy routing

Таблицы не показывают, какая программа «лучше». Они показывают архитектурную область применения.

14. Какой подход выбрать в разных сценариях

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

Ситуация

Что стоит рассмотреть сначала

Один VPN, несколько сайтов нужно открывать напрямую

Встроенный split tunneling

Несколько совместимых прокси-подписок

Универсальный GUI

Очень сложные правила и несколько выходов

Mihomo, sing-box, Xray

Приложения через SOCKS/HTTP/SSH

Прокси-менеджер

Собственный WireGuard-сервер

WireGuard, wg-easy, специализированные GUI

Маршрутизация всей домашней сети

OpenWrt PBR

Частная сеть между устройствами

NetBird, Tailscale

Корпоративный VPN с управляемыми политиками

Штатная корпоративная конфигурация

Уже установлены несколько VPN-клиентов, менять их не хочется

Независимые системные маршрутизаторы

Нужна маршрутизация и работа при отключениях

Проверить fail-open/fail-closed и совместимость с kill switch

Важно: выбор отдельного маршрутизатора не означает гарантированную совместимость со всеми VPN.

Некоторые клиенты блокируют соединения вне туннеля, некоторые устанавливают собственные фильтры, а корпоративные политики могут запрещать определённые маршруты.

15. Выводы

Когда я начал разбираться с маршрутизацией нескольких подключений, выяснилось, что самих решений существует очень много.

Коммерческие VPN давно научились разделять приложения и сайты. Универсальные движки предлагают сложные правила, DNS, TUN и несколько выходов. Прокси-менеджеры умеют управлять соединениями приложений. Корпоративные продукты применяют централизованные политики. Домашние роутеры распределяют трафик между WAN и VPN.

Но эти инструменты решают задачи на разных уровнях и предполагают разные модели работы.

Один требует совместимый VPN-профиль. Другой управляет только собственным туннелем. Третий работает через SOCKS. Четвёртый принимает решение на уровне роутера или сервера.

Отдельно существует сценарий, когда пользователь уже имеет несколько работающих сетевых подключений и хочет управлять маршрутами независимо от приложений, которые эти подключения создали.

Собственно, из такой задачи у меня и появился открытый проект NetRuleRouter, о котором я рассказывал в предыдущей статье.

В комментариях к ней закономерно возник вопрос, зачем разрабатывать подобное решение, когда существуют split tunneling, mihomo и другие инструменты. Именно это обсуждение стало одной из причин систематизировать существующие подходы.

NetRuleRouter пока находится на этапе alpha; это не VPN-сервис и не универсальная замена перечисленным продуктам. Здесь он приведён только как пример работы над задачей независимой маршрутизации системных подключений.

Главный результат исследования для меня другой:

Не существует единственного подхода, который одинаково хорошо подходит для готового коммерческого VPN, корпоративной сети, собственного сервера и нескольких независимых подключений.

Поэтому выбирать следует исходя из конкретного сценария.

Если хватает встроенных исключений VPN, не нужно без необходимости усложнять систему.

Если нужна сложная собственная конфигурация, mihomo и sing-box предоставляют огромные возможности.

Если требуется управлять домашней сетью, разумно рассмотреть OpenWrt.

Если же необходимо сохранить существующие VPN-клиенты, стоит обратить внимание на инструменты, работающие непосредственно с системными соединениями.

И отдельно проверять DNS, IPv6, сетевые фильтры, kill switch и поведение при переподключении.


Методика и ограничения

Обзор основан на официальной документации разработчиков, опубликованных исходных кодах, руководствах и отдельных пользовательских сообщениях о проблемах.

Все продукты не устанавливались и не тестировались в одинаковой лабораторной среде.

Поэтому упоминание функции означает, что она подтверждена документацией соответствующей версии, а не то, что проведён независимый тест на всех поддерживаемых ОС.

Особенно осторожно следует относиться к небольшим Open Source-проектам, где заявленные возможности не всегда проверены большим количеством пользователей.

Информация актуальна на ноябрь 2026 года. Функции программ, модели подписок и поддержка платформ продолжают изменяться.

Если у вас есть собственные примеры одновременной работы нескольких VPN, интересные инструменты или документированные ограничения рассмотренных решений, буду рад техническим дополнениям в комментариях.

ссылка на оригинал статьи https://habr.com/ru/articles/1103404/