启动未植根于任何地方的 Android VPN 服务

问题描述

我希望通过 Android VPN 服务复制 Ookla Speedtest 显示每个应用程序的数据使用情况。

他们似乎启动了 VPN 服务,但他们声明它不是通过他们的服务器路由的。

如何做到这一点,因为您无法使用空 IP 初始化 VPN 服务。是否有某种“本地主机”IP 可用于此目的?

Connection Request

enter image description here

解决方法

这可以通过简单的数据包操作来完成,您需要更改 UDP 和 TCP 数据包标头以返回到目的地的新通道,在这种情况下,该通道将存储 NAT 会话并将数据包返回到适当的地方。下面是一个可以帮助您入门的示例。

至于确定数据包源自哪个应用程序,我不知道他们是怎么做到的,也许您可​​以检查原始套接字,看看是否有办法确定是哪个应用程序打开了套接字。

https://github.com/DrBrad/Android-VPN-to-Socket