Методы защиты от ПО со шпионскими модулями (с 15.04.2026)

Искренне не понимаю, почему вы всё ещё не снесли профиль (хотя бы из брезгливости) и не пошли делать уроки искать клуб по интересам с достаточной степенью элитарности.

Я ничего не понял)

Что такое 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