Как заблокировать сетевой запрос приложения с помощью VPNService?

Надеюсь, у вас все хорошо.

Я реализовал VPNService в Моем приложении. У меня есть ссылка https://github.com/hexene/LocalVPN github code для создания VPN.

Я хочу знать о запросе / ответе,

Как узнать, какое приложение отправляет запрос или какое приложение получает ответ, используя VPNService.

Я хочу заблокировать некоторые запросы приложений в VPNService.

Заранее спасибо.

0 ответов

Если вам просто нужен простой VpnService, который блокирует трафик приложения, без дополнительной функции обработки заголовков пакетов tcp / udp, которые предлагает LocalVPN, вы можете просто использовать ToyVPN (https://android.googlesource.com/platform/development/+/master/samples/ToyVpn) и используйте builder.addAllowedApplication или builder.addDisallowedApplication.

ToyVpnConnection.java:

   for (String packageName : mPackages) {
        try {
            if (mAllow) {
                builder.addAllowedApplication(packageName);
            } else {
                builder.addDisallowedApplication(packageName);
            }
        } catch (PackageManager.NameNotFoundException e){
            Log.w(getTag(), "Package not available: " + packageName, e);
        }
    }

Однако, если вам нужен низкоуровневый доступ к пакетам, например, с LocalVPN, я не знаю, как это сделать. Если вы узнаете, пожалуйста, опубликуйте какие-либо советы по выполнению этого, поскольку я сейчас пытаюсь понять это сам!

Другие вопросы по тегам