Android VpnService 'protect' 方法不起作用

标签 android vpn

我正在使用[VpnService] (http://developer.android.com/reference/android/net/VpnService.html)!并能够创建 VPN 连接。我可以看到(跟踪)所有通过 VPN 的互联网流量。

现在,我的要求是绕过某些 URL 的 VPN(例如 www.google.com)。为了实现这一点,我编写了以下代码:

if (vpnService.protect(new Socket(InetAddress.getByName("74.125.225.241"), 80))) {
    Log.d("TAG", "Socket protection for google.com is successfull");
}

但是在访问www.google.com时,我仍然可以在tracert上看到VPN服务器IP。因此,通过这段代码,VpnService 似乎并没有保护此请求不被发送到 VPN 服务器。

有人可以指出我哪里出错了,并建议正确的方法吗?

最佳答案

据我了解,您仅从 VPN 隧道中排除(保护)一个特定套接字。

因此,您使用同一目标打开的每个其他套接字仍会通过 VPN 隧道。 您必须在从您的设备向 Google 建立的每个套接字上调用 protected prepare(...)

关于Android VpnService 'protect' 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21112588/

相关文章:

Android VpnService - 如何转发拦截的互联网流量?

MySQL:简单查询挂起

ios - VPN Apple iOS 隐藏 API

amazon-web-services - 将AWS VPN与Google IdP联合登录使用-app_not_configured_for_user

android - 如何仅针对 VPN 过滤 android logcat

java - 如何将 cURL 转换为改造正确的形式?

android - MapView 中的 OnTouch 仅在第一次触发

android - 我如何更改 AndEngine 上的背景纹理?

android相机预览错误的纵横比

java - 具体如何在ImageView中显示图片