通过 VPN 重定向所有 Android 流量

Redirect all Android traffic via VPN

我的任务是编写一个可以通过 VPN 将所有流量重定向到 Android 的应用程序。据我了解,它可以通过设置包含在 android 中,但我需要以编程方式进行。

我学习了 VpnServis,据我所知,我可以用它创建一个可以使用自己创建的 Vpn 服务的应用程序,我还可以将 vpn always on 分配给其他使用它创建的 Vpn 服务的应用程序。

但我想知道是否可以对所有已安装的应用程序执行此操作,如果可能的话,如何操作。并且还可以在所有已安装的应用程序上设置始终启用 vpn。谢谢!

当你使用VpnService时,你需要使用VpnService.Builder来创建它。在调整 VpnService.Builder 参数时,您需要分配您感兴趣的流量。这是通过 addRoute() 方法添加路由来完成的。

如果您使用 0.0.0.0/0 作为路线,您将捕获来自所有应用的所有流量。

只有 API 级别 24 才支持 VPN 始终开启,因此请确定是否要使用它。您需要另一种方法(例如工作)在较低 API 级别创建此功能。