ID:
UDP_PMTU_FAILКатегория: Маршруты и сетевой стек Статус в RKNHardering 2.10.0: Активная проверка Роль в вердикте: Средняя
Эта страница описывает фактическую реализацию RKNHardering 2.10.0. Здесь отдельно указано, что можно сделать без root, что требует root, а также где способ только уменьшает один сигнал, но не скрывает VPN целиком.
Это альтернативная ветка той же пробы: sendto(127.0.0.1:53, 1500) вернул -1, а detail содержит errno. В отличие от udp-pmtu-ok, kind не включён в informational set, поэтому текущий checker делает medium needsReview.
Любая ошибка sendto, независимо от errno.
Ошибка необычна для loopback, но не доказывает VPN. Причиной может быть SELinux/firewall hook, ресурсный предел, invalid socket state, cancellation race или изменённый network stack.
Как строка влияет на отчёт: Строка не даёт самостоятельный окончательный вердикт, но выставляет needsReview=true и добавляет доказательство средней уверенности.
Код не классифицирует errno и не устанавливает IP_MTU_DISCOVER. Поэтому EMSGSIZE нельзя автоматически назвать PMTU, а EACCES/ENOBUFS имеют совсем другой смысл.
Важно оценивать эту строку вместе с соседними сигналами. Один чистый API не перекрывает Java Binder, libc, raw netlink/syscall, procfs/sysfs, локальные сокеты и серверные признаки одновременно.
Запишите точный errno, перезагрузите устройство и повторите без VPN/firewall/DNS-filter app. Не уменьшайте MTU ради исчезновения ошибки.
Проверьте dmesg/AVC, iptables/nftables и модули socket hooks. Удаляйте только правило, которое реально блокирует loopback. Не выдавайте capabilities приложению.
adb logcat -d | grep -E 'avc: denied|udp_pmtu|sendto' | tail -80
adb shell iptables-save 2>/dev/null | grep -E 'lo|127[.]0[.]0[.]1|dport 53'
adb shell ip6tables-save 2>/dev/null | grep -E 'lo|::1|dport 53'
Для errno используйте detail RKNHardering; shell send имеет другой UID.
После любого изменения сделайте force-stop RKNHardering и VPN-клиента, запустите их заново и повторите полный scan. Для Zygisk/Xposed/kernel-модулей обычно нужна перезагрузка. Сравнивайте не только эту строку, но и соседние сигналы: частичный hook часто создаёт несогласованность между API.
Сама проба выполняется с обычными правами приложения и не запрашивает root. ADB-команды ниже служат только для ориентира: adb shell работает под другим UID и может видеть больше или меньше, чем процесс приложения. Решающий тест — повторный запуск самой проверки после force-stop.
Сброс всех firewall rules — разрушительный шаг: можно отключить VPN kill-switch и системную защиту. Не делайте глобальный flush.
Восстановите сохранённые правила или отключите виновный модуль через его manager; перезагрузитесь и проверьте DNS.
Средняя. Проверено по catch-all failure branch и medium default evaluation.
Статус стороннего решения не переносится автоматически на это устройство. Заявление разработчика модуля — это исходная гипотеза; подтверждением служит повторяемый результат RKNHardering на конкретной версии Android, прошивки и ядра.
native_signs_probe.cpp — нативная реализация проб.VpnNativeDetectorChecker.kt — deep VPN verdict и confidence.NativeSignalId.kt — полный реестр ID.NativeSignalCatalog.kt — категория, slug и mapping строк.Связанные сигналы: udp-pmtu-ok, traceroute-denied, syscall-unavailable.