Локальная политика · Qeli 0.8.1
Маршрутизация по приложениям
Как режимы all, include и exclude выбирают процессы на Windows, macOS и Android, а gateway и сетевые маршруты отдельно определяют назначения.
Приложение и назначение выбираются отдельно
apps_mode отвечает на вопрос «чей трафик?», а gateway, server push, include и exclude — «к каким адресам?». Per-app не превращает split-tunnel в full-tunnel автоматически.
| Ось | Ключи | Результат |
|---|---|---|
| Приложение | apps_mode, apps | Какие процессы допускаются в Qeli |
| Сеть | gateway, include, exclude, push | Какие назначения выбранного приложения идут через Qeli |
all, include и exclude
apps_mode | Поведение | Поле apps |
|---|---|---|
all | Обычный профиль устройства без классификации процессов | Не используется |
include | Только перечисленные приложения могут идти через Qeli | Непустой список обязателен |
exclude | Через Qeli идут все приложения, кроме перечисленных | Непустой список обязателен |
Пустой список не оставляйте. Неизвестный
apps_mode отклоняется. Windows/macOS не запускают per-app без применимых идентификаторов; Android отказывает include, если не найдено ни одного установленного пакета, а для exclude без совпадений предупреждает, что через VPN пойдут все приложения.Что считается идентификатором приложения
| Платформа | Идентификатор | Как применяется |
|---|---|---|
| Windows | Полный путь к .exe | WinDivert сопоставляет TCP/UDP endpoint с PID и исполняемым файлом; DNS и фрагменты сохраняют принадлежность |
| macOS 13+ | Bundle/code-signing ID | Transparent Proxy + DNS Proxy выбирают TCP/UDP/DNS и привязывают выбранные сокеты к qeli utun |
| Android | Имя пакета | VpnService использует allowed/disallowed applications; отсутствующий пакет пропускается с записью в лог |
| iOS source | Bundle ID | Параметры сохраняются, но произвольная per-app политика требует MDM и NEAppRule |
| Linux CLI | — | Сохраняет ключи INI, но не классифицирует приложения |
Списки не переносимы между ОС. Путь
C:\Program Files\…, bundle ID и Android package name обозначают приложение только на своей платформе.macOS требует подписанную сборку. Per-app работает через system/network extensions с Developer ID entitlements. Ad-hoc и кросс-собранный архив эту функцию не активируют; публичному релизу также нужны notarization и stapling.
Примеры client.conf по платформам
apps_mode = include
apps = C:\Program Files\Mozilla Firefox\firefox.exe, C:\Program Files\Signal\Signal.exe
apps_mode = include
apps = com.apple.Safari, org.mozilla.firefox
apps_mode = exclude
apps = com.android.vending, com.google.android.youtube
В GUI безопаснее выбирать приложения встроенным picker: он записывает идентификатор в формате текущей платформы и снижает риск опечатки.
Как apps_mode сочетается с gateway
gateway | Выбранное приложение | Остальные приложения |
|---|---|---|
false | Через Qeli только к TUN-пулу, локальным include и pushed routes; публичные IPv4 идут напрямую | Используют системный маршрут |
true | Публичный IPv4 также идёт через Qeli | Используют системный маршрут |
В 0.8.0 per-app data plane поддерживает IPv4 и IPv6. Платформа должна объявить соответствующую capability; неподдерживаемое сочетание отклоняется fail-closed. На iOS применение per-app по-прежнему требует MDM
NEAppRule.Ограничения macOS: per-app не перехватывает ICMP и не применяет host-global
kill_switch; выбранные TCP/UDP/DNS при этом остаются fail-closed внутри классификатора. Windows также удерживает выбранный трафик fail-closed при reconnect.Используйте UI или INI, не полагайтесь на qeli://
В 0.8.0 apps_mode и apps остаются локальными полями и не входят в qeli://. Для воспроизводимой политики сохраняйте их в local client.conf или задавайте через GUI конкретного устройства.
INI round-trip сохраняет значения даже на клиентах, которые сами их не применяют. Это полезно для редактирования, но наличие ключей в файле не означает поддержку платформой.
Проверьте выбранное и невыбранное приложение
apps_mode = include|excludeрежим валиден, список не пустgateway = false|trueназначения соответствуют split/full моделиcurl https://api.ipify.orgзапустите отдельно из выбранного и невыбранного приложенияDNS + TCP + UDPпроверьте не только браузерный TCP, но также DNS и UDP