我正在使用[VpnService](http://developer.android.com/reference/android/net/VpnService.html)!并能够建立VPN连接。我可以看到(tracert)所有通过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建立的每个套接字上调用保护prepare(...)

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

10-10 01:33