Ещё везде, где решили проблему запаролив сокс скорее всего есть проблема с UDP, по идее он обходит аутентификацию SOCKS. Поэтому от tun2socks нужно уходить и оставлять только родной Tun от Xray, или насильно отключать udp.
Ещё нет, в самом андроиде ждать фикс будем долго и до большинства смартфонов он никогда не дойдёт. Рут не нужен, на уровне самого приложения поднимающего tun можно определять UID приложения, которое шлёт трафик. Если трафик был насильно отправлен в tun-интерфейс через SO_BINDTODEVICE или Network.bindSocket, то определить UID не получится. Вот такой нераспознанный трафик можно блокировать или слать напрямую. Оба варианта защитят TUN.
Посмотрите как это уже сделано в sing-box for Android. Sing-box через JNI получает колбэк FindConnectionOwner от кода на котлине и вызывает его для каждого соединения. Внутри этого колбека используются уже апи андроида чтобы отдать гошной части владельца соединения, отдаётся само имя пакета. Поэтому в сингбоксе есть рабочее правило роутинга package_name и недавно добавили package_name_regex. В xray этого нет, у них нет своего приложения под Андроид. Но эту логику можно портировать в любой xray-клиент просто взяв из сингбокса.
показывает выходной IP прокси даже если приложение из проксируемых исключено. Увы, но ваш клиент тоже уязвим на Android с ядром 5.7+. В Exclave уже починили и можно tun защитить правилами, а socks вообще отключить.
Ещё через udp утечка есть, которую так не закрыть: https://github.com/2dust/v2rayNG/issues/5457#issuecomment-4198293000
Безопаснее всего будет уходить от tun2socks к tun в xray. В последних коммитах как раз добавили маршрутизацию по UID.
Ещё везде, где решили проблему запаролив сокс скорее всего есть проблема с UDP, по идее он обходит аутентификацию SOCKS. Поэтому от tun2socks нужно уходить и оставлять только родной Tun от Xray, или насильно отключать udp.
Ещё нет, в самом андроиде ждать фикс будем долго и до большинства смартфонов он никогда не дойдёт. Рут не нужен, на уровне самого приложения поднимающего tun можно определять UID приложения, которое шлёт трафик. Если трафик был насильно отправлен в tun-интерфейс через
SO_BINDTODEVICEилиNetwork.bindSocket, то определить UID не получится. Вот такой нераспознанный трафик можно блокировать или слать напрямую. Оба варианта защитят TUN.Посмотрите как это уже сделано в sing-box for Android. Sing-box через JNI получает колбэк
FindConnectionOwnerот кода на котлине и вызывает его для каждого соединения. Внутри этого колбека используются уже апи андроида чтобы отдать гошной части владельца соединения, отдаётся само имя пакета. Поэтому в сингбоксе есть рабочее правило роутингаpackage_nameи недавно добавилиpackage_name_regex. В xray этого нет, у них нет своего приложения под Андроид. Но эту логику можно портировать в любой xray-клиент просто взяв из сингбокса.показывает выходной IP прокси даже если приложение из проксируемых исключено. Увы, но ваш клиент тоже уязвим на Android с ядром 5.7+. В Exclave уже починили и можно tun защитить правилами, а socks вообще отключить.