Android VpnService'保护'方法不起作用

时间:2014-01-14 11:36:58

标签: android vpn

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

现在,我的要求是绕过某些网址的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服务器。

有人能指出我哪里出错了,并提出正确的做法吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您可以通过检查DNS查询并保存链接到您要绕过的网址的IP地址来了解IP地址是否属于某个网址(例如google.com)。浏览器将首先启动DNS查询以获取其要连接的域的IP地址。