Это в общих настройках нужно открывать “Пользовательскую конфигурацию” и там вписывать вручную JSON конфиги? Именно в NekoBox пробовал разные конфиги туда вписывать - выдаёт всякие ошибки. Ещё в каждом соединении есть возможность прописать что то вручную. Но что там прописывать для этого - непонятно.
Вообще непонятен момент с якобы затруднением определения наличия VPN на айфонах. Там нет split tunngeling.
А на андроиде все просто, даже при его наличии, любое приложение имеет доступ к списку установленных пакетов. Любой апп хуяндекса или вкалтакте сразу увидит наличие условного хапп или в2рейтюн.
Android — есть официальный API: NetworkCapabilities.hasTransport(TRANSPORT_VPN). Система прямо говорит, что включен VPN. Это документированный, надёжный способ.
iOS — официального API для этого нет. getifaddrs() — это низкоуровневый хак, который Apple не позиционирует как способ проверки VPN. Он просто показывает сетевые интерфейсы. Работает, но не гарантирован Apple, может сломаться в будущих версиях. То есть на iOS можно определить VPN, но не через официальный API, а через обходной путь.
С андроид 11 нужно специальное разрешение. В Google Play модерация такое просто так не пропустит, но все банки и так там недоступны, скачиваешь с их сайта или рустора. Плюс приложение может и без этого права добавить фиксированный список интересных ему приложений в манифест и проверять только их. Но это как-то совсем зашквар (ругаться на установленные приложения).
Само по себе наличие включенного VPN ни о чем не говорит. Это может быть и корпоративный VPN, который не маршрутизирует трафик пользователя в интернет.
Для определения факта обхода блокировок важно чтобы:
Пользователь физически находился в РФ (определяется по геопозиции или IP провайдера, или по выходному IP для трафика на РФ, или ID сотовой вышки, куда он подключен, или еще как-то)
Имел досуп к заблокированным ресурсам, при этом его трафик выходил не с его IP (а вдруг РКН блокировки снял?), а с других узлов, например за границей. Это можно определить по сервисам типа api.ipify.org + проверка возможности обращениея к этим самим заблокированным ресурсам. Это и делает сейчас мессенджер max.
Это был не какой-то белосписочный exit node организации (тем, кому доступ к запрещенке можно по работе)
А далее например такому юзеру блокировать доступ или к приложению сбера / яндекса, и стукануть в РКН о нем, зная его номер телефона, сообщить всю имеющуюся информацию.
В Android Как я понял они как раз NetworkCapabilities.hasTransport(TRANSPORT_VPN) используют. Парковки (федеральные) бывшие “Парковки Москвы” пишут, что у вас возможно включен VPN, даже если это и не совсем VPN, и даже если это приложение стоит в списке на обход. Вот интересно если зарутировать android то можно эту функцию отключить? А так же отключить функцию доступа к спискам приложений.(как сказал классик “зачем тебе меня видеть?”) Или это без рута можно заблокировать?
Это разные вещи. Одно дело, когда публичное API включен VPN или нет. А другое дело, когда приложение хочет перечислить все установленные в системе сторонние приложения.
Будь я чекистом, я бы разослал немного разные версии методы в каждую из контор, чтобы когда она вдруг всплывет, сразу был ясен источник. Скорее всего этим занимаются там небольшие отделы ответственные за пограничные политики на edge нодах, найти (ну или назначить) виновных будет несложно. В общем я бы на месте этих людей ничего в сеть не сливал.
Там нет per-app сплита, но можно через автоматизацию настроить запуск впн при заходе в определенные приложения. Работает это так: открыл ютуб - впн on, свернул ютуб - впн off.
С Magisk можно - так Magisk же только с рутом работает. ПОходу придётся рутировать.
А в песочницу как я понимаю лучше “шкварные” приложения класть а чистые в основную память?
И кстати если я запаролил локальный soks5 proxy c нестандартным портом - то уж его то упыри не должны выявить? Во всяком случае не смогут через него проверить что там открывается, а что нет.
per app split есть в singbox for android 1.13+, также туда добавили для root устройств возможность per app сокрытия системного статуса включенного vpn и это единственное решение, насколько мне известно, которое так умеет.
из минусов - надо один раз конфиг написать, но в целом можно использовать ИИ, хорошие модельки с этим отлично справляются
iOS аггрессивно выгружает приложения в фоне из памяти (обычно они не более 60 секунд имеют доступ в сеть. Я проверял на SSH клиенте, ровно через минуту после сворачивания его выкидывает с сервера). При качественно настроенном domain+ip-cidr сплите как на клиенте так и на промежуточном сервере (например, все ру - в блок на первом хопе), и с автоматизацией по приложениям, должно все более-менее нормально быть. Надежнее в реалиях iOS будет только отдельный смартфон порядочного гражданина. Ну лично я просто снёс весь ру софт со смартфона, но этот подход не для всех, поэтому нашел такой способ для тех, кто зависим от ру софта.
P.S уточню, что нужно в настройках софта в iOS запретить фоновые данные