«Хочу, чтобы банк ходил напрямую, а всё остальное через VPN» — самая частая просьба. На Android это делается в два тапа: список приложений и галочки. На iPhone такого списка нет вообще. На Windows он есть не у всех клиентов. Разбираем, почему так и что делать, если нужен результат, а не теория.
Прежде чем искать галочку, полезно понять: разделить трафик можно на трёх уровнях, и они не заменяют друг друга.
| Уровень | Кто решает | Где работает |
|---|---|---|
| По приложению | Клиент VPN на устройстве | Android, иногда десктоп. На iOS — нет |
| По адресу назначения | Клиент: список подсетей в конфиге | Везде, где можно править AllowedIPs |
| На сервере | Сервер VPN после расшифровки | Везде, клиенту ничего не нужно |
Дальше — по платформам, честно и с ограничениями.
Это не лень разработчиков, а правило Apple. Сторонние VPN-приложения на iOS работают через механизм NEPacketTunnelProvider, и он оперирует пакетами и маршрутами, а не приложениями. Выбрать «этому приложению — VPN, этому — нет» можно только в одном случае: когда устройство управляется организацией через MDM-профиль. Для обычного пользователя такой возможности нет — это официальная позиция инженеров Apple, и она не менялась годами.
Отсюда практический вывод: если приложение на iPhone обещает «выбрать приложения для VPN», оно либо работает не так, как вы думаете, либо делает это костылём (например, поднимает локальный прокси и требует вручную настроить каждую программу). Для обычного пользователя это не вариант.
0.0.0.0/0 — всё, отдельные подсети — только они. Правится в тексте конфига до импорта.На десктопе клиент имеет доступ к таблице маршрутов и к сетевому стеку целиком, поэтому способов больше. Разберём на примере WG Tunnel — клиента, который мы рекомендуем для Windows: он с открытым кодом, поддерживает WireGuard и AmneziaWG, умеет kill switch и локальный прокси.
В конфиге есть строка вида:
AllowedIPs = 0.0.0.0/0, ::/0
Это «весь трафик в туннель». Если заменить её на список подсетей, всё остальное пойдёт напрямую:
# только эти адреса через VPN, остальное — напрямую AllowedIPs = 149.154.160.0/20, 91.108.4.0/22
Минус очевиден: нужно знать адреса. Плюс тоже: работает на любой платформе и не зависит от того, что разработчик клиента успел реализовать. Для «пустить через VPN только пару сервисов» — самое надёжное.
В WG Tunnel есть режим, когда туннель не забирает весь трафик, а поднимает локальный SOCKS5 или HTTP-прокси. Дальше вы в каждой программе указываете этот прокси — и через VPN идут только те, кому вы это прописали. Браузер, торрент-клиент, отдельный мессенджер.
Это ближайший аналог «разделения по приложениям» на Windows, но настраивается в самих программах, а не одним списком в клиенте. Хорошо подходит, когда нужно завернуть в туннель одно-два приложения, и плохо — когда нужно исключить одно.
Клиент умеет отправлять DNS-запросы в туннель и при этом разделять их по доменным суффиксам: часть доменов резолвится внутри туннеля, часть — системным DNS. Полезно, когда нужно, чтобы конкретные сайты открывались «как обычно», а всё остальное шло через VPN.
Списка приложений с галочками, как в Android-версии того же клиента, на десктопе нет. Если вы видели такой список в другой программе — это либо платный клиент с собственным драйвером, либо фильтрация на уровне firewall, которая работает нестабильно и часто ломает обновления.
| iPhone | Windows | Android | |
|---|---|---|---|
| Список приложений | ❌ только через MDM | ❌ нет (есть локальный прокси) | ✅ есть |
| AllowedIPs | ✅ до импорта конфига | ✅ в редакторе клиента | ✅ в редакторе |
| Автозапуск по сети | ✅ On-Demand | ✅ auto-tunnel | ✅ auto-tunnel |
| Маршруты на сервере | ✅ | ✅ | ✅ |
Подробнее про Android-вариант — в статье раздельное туннелирование на Android.
Все три уровня выше требуют, чтобы вы что-то настроили: список приложений, список подсетей, прокси в каждой программе. И у всех есть общий недостаток — настройка живёт на устройстве. Обновился клиент, сбросились настройки, добавилось новое устройство — и всё заново.
Мы решаем это иначе: в конфиге стоит AllowedIPs = 0.0.0.0/0, то есть весь трафик уходит в туннель, а решение принимает сервер — по адресу назначения. Российские адреса выходят через российский канал, все остальные — через европейский.
устройство → туннель → сервер: смотрит адрес назначения
├─ российская подсеть → российский канал
└─ остальное → европейский канал
Что это даёт на практике:
AllowedIPs руками и следить, чтобы после обновления клиента ничего не сбросилось.Как это устроено и где маршрут может ошибиться — в статье российский и европейский маршруты.
Скорее всего, дело не в стране адреса, а в антифроде: банк смотрит на устройство и историю входов. Если после перехода на маршруты по адресу банк всё ещё ругается — на время операции VPN лучше выключить. Это нормально: разделение маршрутов решает проблему «сайт не открывается», а не «банк не доверяет».
Два пути: либо локальный прокси (прописать его в торрент-клиенте), либо AllowedIPs с адресами трекера. Первое проще, второе надёжнее.
Это не разделение внутри устройства, а разные устройства. Проще всего — два конфига (по одному на устройство) и включение VPN по необходимости. У нас на аккаунте два слота по умолчанию, дополнительные докупаются.
Это On-Demand на iPhone и auto-tunnel на Windows: правило по имени сети. Полезная штука, если дома VPN не нужен, а в кафе — обязателен.
Ещё полезно проверить DNS и IPv6 — они утекают отдельно от основного трафика. Как именно, разобрано в статье про утечки DNS и IP.
.conf, который импортируется в приложение (у нас — AmneziaWG). Правка AllowedIPs возможна до импорта, в тексте файла.Android даёт приложениям API, который позволяет явно перечислить, какие программы используют VPN, а какие нет. В iOS такого публичного API нет: per-app VPN доступен только в управляемых организациях через MDM-профиль.
Штатными средствами — нет. Обходные пути (локальный прокси плюс настройка в каждой программе) технически возможны, но на телефоне это неудобно и ломается при обновлениях. Практичнее серверная маршрутизация.
Списка приложений, как в Android-версии, на десктопе нет. Есть AllowedIPs для разделения по адресам, локальный SOCKS5/HTTP-прокси для отдельных программ и разделение DNS по доменам.
Они будут выбивать друг друга: ключ один, и сервер видит два подключения с одинаковым идентификатором. Для каждого устройства нужен отдельный конфиг — на аккаунте их два по умолчанию.
Да, в той части, которая идёт мимо VPN. Это осознанный компромисс: вы сами решаете, что важнее в конкретном случае — совместимость с локальным сервисом или шифрование. При маршрутизации на сервере весь трафик всё равно идёт в туннеле, просто выходит разными путями.
Посмотрите на индикатор VPN в строке состояния и на страницу проверки маршрута: если адреса для РФ и зарубежных сайтов различаются, трафик идёт через туннель.