Искренне не понимаю, почему вы всё ещё не снесли профиль (хотя бы из брезгливости) и не пошли делать уроки искать клуб по интересам с достаточной степенью элитарности.
Я ничего не понял)
Что такое HEV?
Per app, как нам в соседней теме подсказал коллега, это просто рекомендация, приложение всё равно может использовать tun. Block connections without vpn при наличии шпионов, исключённых в per app маршрутизации, просто закроет этим шпионам весь интернет, работать они не смогут в принципе. Или я чего-то не понял?
Приложение не сможет ходить в туннель если его нет в списке. Оно видит сам факт присутствия туннеля. А блочить я не стал, пусть ходят мимо. HEV socks tunnel это видимо сторонняя библиотека. Там есть галочка в v2rayng
hev-socks5-tunnel (tun2socks), входит в некоторые клиенты - https://github.com/heiher/hev-socks5-tunnel
Защиту от пролезания посторонних приложений через tun интерфейс можно сделать, например, в Nekobox (комментарий). Но это движок sing-box без xhttp если он нужен.
Всё правильно поняли.
Edit: В дополнении они не смогут насильно слать хоть какие-то запросы через туннель, а всего лишь увидеть, что TUN-интерфейс есть.
Тогда смысла и нет, они умеют насильно слать запросы через туннель.
Неправда. Если приложение принудительно выбирает tun0 интерфейс, то оно попадает в tun. Более того, vpn-приложение не сможет определить что это за программа лезет через tun (не сможет определить имя пакета), даже если этот пакет в какие-то правила добавлен.
В wan0 попасть принудительно не сможет, то есть выйти в интернет напрямую, если включено “Block connections without VPN”.
Я говорил о случае, когда приложение исключено по схеме per-app split tunneling и опция “Block connections without VPN” включена в настройках. При таком сэтапе приложение не сможет насильно отправить запросы через TUN-интерфейс, я это сам проверил.
А я проверял - сможет. Но вообще зависит от ваших правил уже внутри vpn-программы. Если для всех по умолчанию правило блокировки, то тогда никуда ничего не отправит (но изначально в tun попадет).
Вот мой issue для sing-box, но это относится к любой программе: Feature request: ability to match connections with unidentified package name in routing rules · Issue #4009 · SagerNet/sing-box · GitHub
Вот pull request, согласованный с автором sing-box, чтобы можно было отлавливать такие случаи: Add package_name_regex rule item by hdrover · Pull Request #4013 · SagerNet/sing-box · GitHub
Проверьте ещё раз. Добавьте Termux в списке исключений (чтобы трафик шёл напрямую), попытаетесь направить через TUN-интерфейс запрос. Не получится, соединение зависнет.
Приложение видит наличие TUN-интерфейса, соединения через него блокируются. Сам ValdikSS в своём же посте говорил об этом.
У вас root?
Нет. И это видно из скриншота Termux.
Где находится пункт “Блокировка подключений без VPN“?
Настройки → Подключения → Другие настройки → VPN → кнопка возле приложения VPN → Блокировка подключений без VPN. Это на устройстве Samsung.
Значит у вас правила такие уже внутри v2rayNG. Именно на уровне ОС трафик пойдет в tun. А дальше уже как программа разрулит соединения. Если я поставлю по умолчанию правило block для всех, кто проходит через tun, то трафик тоже будет заблокирован. Если я по имени пакета сделаю условие “разрешить”, то будет работать (если пакет не выбирает сам интерфейс, честный пакет). А вот если у меня по умолчанию будет доступ разрешен (напрямую или через прокси, не важно), а по имени программы будет доступ запрещен, то это правило не сработает, потому что в случае принудительного выбора интерфейса имя программы определить невозможно из-за ограничений в API Android.
У меня же стоит bypass mode, все приложения кроме выбранных идут через VPN (т. е. по имени программы доступ запрещен). Кажется, в вашем случае это уже недоработка клиента.
А конфиг сгенерированный v2rayng как-то можно посмотреть? Никогда не пользовался.
В личку скинул. Но у меня похожий конфиг работает и с Exclave.
Да, прошу прощения, я ошибся. Слишком долго пытался решить конкретную проблему, что уже запутался. Если именно на уровне настройки TUN исключить пакет и заблокировать на уровне системы подключения без VPN, то да, пакет не сможет использовать TUN, не сможет использовать интернет в целом (никак).
Я же изначально добиваюсь того, чтобы такие программы можно было пустить в интернет, но только без прокси, а через direct внутри VPN-клиента. То есть их придется допускать до TUN (иначе интернета у них не будет), но уже на уровне клиента их разруливать (например, все российские приложения всегда идут только напрямую без прокси, прокси не видят). И чтобы эти правила нельзя было обойти. Вот этим занимаюсь. И уже с затуманенной головой увидел ваши сообщения и влез. Еще раз извините.
Да, в таком случае ваше предложенное решение сойдёт. В mihomo вроде бы подобное правило уже работает по словам других людей.
Edit: Нашёл, PROCESS-NAME-REGEX,^$,DIRECT.
В сингбокс сделать 2 эндпоинта: варп и свой впс .Получится схема клиент → warp → vps
Пример с локальным socks/http-прокси, на впс wireguard
{
"certificate": {
"store": "system"
},
"dns": {
"servers": [
{
"tag": "DoH",
"type": "https",
"server": "anycast.uncensoreddns.org",
"path": "dns-query",
"domain_resolver": "dns-local"
},
{
"tag": "hosts",
"type": "hosts"
},
{
"tag": "dns-local",
"type": "local"
}
],
"strategy": "ipv4_only",
"disable_cache": false,
"rules":
[
{
"domain": ["ntc.party"],
"server": "DoH",
"strategy": "ipv6_only"
},
{
"ip_accept_any": true,
"server": "hosts"
}
]
},
"log": {
"level": "info",
"timestamp": true,
"output": "Singbox.log"
},
"inbounds": [
{
"tag": "in",
"listen": "127.0.0.1",
"listen_port": 18093,
"type": "mixed",
"users":
[
{
"username": "логин_для_доступа_к_локальному_прокси",
"password": "пароль_для_доступа_к_локальному_прокси"
}
]
}
],
"endpoints": [
{
"tag": "vps",
"type": "wireguard",
"peers": [
{
"address": "ваш_адрес",
"port": ваш_порт,
"public_key": "ваше_значение",
"allowed_ips": ["0.0.0.0/0", "128.0.0.0/1"],
"persistent_keepalive_interval": 25
}
],
"private_key": "ваше_значение",
"address": [
"ваше_значение"
],
"mtu": ваше_значение,
"detour": "warp"
},
{
"tag": "warp",
"type": "wireguard",
"peers": [
{
"address": "162.159.192.1",
"port": 500,
"public_key": "ваше_значение",
"allowed_ips": ["0.0.0.0/1", "::/1"],
"persistent_keepalive_interval": 2
}
],
"private_key": "ваше_значение",
"address": ["172.16.0.2/32"],
"mtu": 1280,
}
],
"route": {
"default_domain_resolver": "DoH",
"rules": [
{
"inbound": "in",
"action": "resolve"
}
],
"final": "vps"
}
Если впс забанят, вы все равно подключитесь к ней через варп. Можно и наоборот, к варп через впс
Есть форк сингбокс с xttp GitHub - shtorm-7/sing-box-extended: The universal proxy platform · GitHub






