Как эти VPN достигают туннелирования для каждого приложения?

472
aedcv

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

В SuperUser есть несколько ответов, которые предлагают:

1) «SOCKSifying» приложения без поддержки SOCKS с использованием программного обеспечения, такого как Proxifier

2) Использование программного обеспечения, такого как ForceBindIP, чтобы заставить приложения использовать определенный интерфейс

3) Использование некоторых ограничений в зависимости от IP-адреса или домена назначения.

4) Использование виртуальной машины

5) Использование метрик сетевого интерфейса

6) Блокировка трафика приложения с помощью брандмауэра

Вы можете найти большинство этих предложений, посмотрев ответы на следующие вопросы: 1, 2, 3 .

Все эти подходы либо слишком хакерские (например, ForceBindIP вводит информацию в DLL), либо не достигают цели туннелирования для каждого приложения (например, фильтрация по ip назначения не полезна).

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

Тем не менее, я заметил, что некоторые поставщики VPN предлагают эту функцию (обычно они называют это приложениями белого / черного списка). Как они этого добиваются? Они используют что-то вроде собственной реализации ForceBindIP?

Некоторые VPN, которые разрешают раздельное туннелирование для приложений в Windows: ProtonVPN и PureVPN . Более того, кажется, что ProtonVPN действительно создает новый сетевой адаптер для VPN, поэтому у них должен быть способ маршрутизации трафика для конкретного приложения через этот интерфейс.

Наконец, если это поможет (или приведет к еще большей путанице), документация по Windows иллюстрирует способ достижения этой цели, но это через использование профилей VPN и MDM ( docs ).

1

0 ответов на вопрос