3

我希望你们一切都好。

我在我的应用程序中实现了 VPNService。我参考了https://github.com/hexene/LocalVPN github 代码来创建 VPN。

我想知道请求/响应,

如何使用 VPNService 知道哪个应用程序发送请求或哪个应用程序接收响应。

我想阻止 VPNService 中的一些应用程序请求。

提前致谢。

4

1 回答 1

1

如果您只需要一个简单的 VpnService 来阻止应用程序流量,而不需要处理 LocalVPN 提供的数据包 tcp/udp 标头的额外功能,您可以使用 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 那样对数据包进行低级别访问,那么我不确定如何执行此操作。如果您发现了,请发布有关完成此操作的任何提示,因为我目前正在尝试自己解决此问题!

于 2019-08-27T17:51:34.077 回答