我已阅读有关VpnService的内容和VpnService.Builder但无法获得任何将vpn类型设置为PPTP或L2TP的方法,即使我没有获得任何可以设置用户/密码的方法。注意:SO中有很多问题我看了但是没有找到解决方案。我查看了ToyVpn应用程序,但我们在此应用程序中只设置了3个参数。请帮忙。如果有3partyAPI,请给出引用。 最佳答案 是的,stackoverflow中的所有答案都应该告诉您VPNServiceAPI用于使用自己的VPN堆栈(可能恰好是PPTP/LT2P/ToyVPN/OpenVPN/MyOwnVer
根据https://developer.android.com/reference/android/net/VpnService.html#protect(int)保护套接字免受VPN连接后,通过该套接字发送的数据将直接到达底层网络,因此其流量不会通过VPN转发。如果某些连接需要保持在VPN之外,则此方法很有用。例如,如果VPN隧道的目的地被VPN路由覆盖,则VPN隧道应该保护自己。否则它的传出数据包将被发送回VPN接口(interface)并导致无限循环。如果申请未准备好或被撤销,此方法将失败。我知道Android是基于Linux构建的,此功能背后使用了哪些Linux机制或实用程序,
根据https://developer.android.com/reference/android/net/VpnService.html#protect(int)保护套接字免受VPN连接后,通过该套接字发送的数据将直接到达底层网络,因此其流量不会通过VPN转发。如果某些连接需要保持在VPN之外,则此方法很有用。例如,如果VPN隧道的目的地被VPN路由覆盖,则VPN隧道应该保护自己。否则它的传出数据包将被发送回VPN接口(interface)并导致无限循环。如果申请未准备好或被撤销,此方法将失败。我知道Android是基于Linux构建的,此功能背后使用了哪些Linux机制或实用程序,
我有两个使用VpnService类的应用程序。但同一时间只能运行一个VPN连接。创建新接口(interface)时,现有接口(interface)将被停用,我希望新应用程序不要启动vpnservice以避免旧接口(interface)被停用及其VPN连接。所以我想在调用startService()之前检查是否启动了另一个vpnservice。是否有任何api可以执行此操作? 最佳答案 据我所知,您无法直接检查。以下是我在应用程序中用于检查VPN连接的方法。1)为http://jsonip.com调用HTTPGetpublicstat
我正在我的Activity中启动一个VPNService,我想在服务启动后启动一些线程。这就是我启动服务的方式:Intentintent=VpnService.prepare(getActivity());if(intent!=null){startActivityForResult(intent,123);else{onActivityResult(123,Activity.RESULT_OK,null);}然后在onActivityResult中我开始我的线程@OverridepublicvoidonActivityResult(intrequestCode,intresultCo
我正在尝试将新的Android4.0VPN框架与模拟器结合使用。在我调用的示例应用中:Intentintent=VpnService.prepare(SimpleVpnActivity.this);if(null!=intent){startActivityForResult(intent,1);}但应用程序因异常而崩溃,因为VpnService.prepare()返回一个明确的Intent:Intent:{cmp=com.android.vpndialogs/.ConfirmDialog}对于无法找到的ActivitystartActivityForResult()。我做错了什么吗?
我正在考虑使用新的android(4.0)VpnService接口(interface)来实现简单的数据包捕获和分析的可能性。有谁知道是否可以获取您在VpnService实现中收到的数据包并将它们简单地写出到Activity/默认网络设备?当然,要接收数据,我还必须能够从网络设备读取数据。如果可能,可以使用哪些API写入网络设备? 最佳答案 tPacketCapture创建到远程机器的第二个套接字以转发数据包。我已经使用adbshellnetstat查看了tPacketCapture:ProtoRecv-QSend-QLocalAd
我正在探索Android的VpnService的功能。目前,我已经通过在用户空间中重建IP堆栈来构建一个非常基本的请求转发器:我从VpnService的输入流中读取IP数据包,解析它们,对于我不想转发的连接,我尝试重新创建那些VPN连接之外的套接字连接。我知道这最后一点是由VpnService.protect()促成的,并尝试按如下方式实现它:Socketsocket=newSocket();vpnService.protect(socket);socket.connect(newInetSocketAddress(header.getDestinationAddress(),//Fr
我有两个关于VpnService.Builder的问题类。假设我知道一个App与其服务器www.somedomain.com通信,我知道服务器的IP地址是210.32.204.165。关于addAddress(Stringaddress,intprefixLength)功能。在文档中,它说这个功能“将网络地址添加到VPN接口(interface)”,这是什么意思?这是否意味着流向该地址(应用程序的服务器IP地址)的流量将通过VPN,或者来自该地址(设备IP?)的流量将通过VPN?有一个函数addAllowedApplication(StringpackageName)它指定哪个应用程序
我正在创建基于ToyVPN的应用程序来捕获tcp/udp数据包。在我的应用程序中收到传出数据包后,我想将它们转发到原始目的地。我已经设法从header中获取目标ip和端口,但我不知道如何与远程服务器通信,然后将响应写回源。我认为这是可能的,因为有这个app.这是我的第一次尝试:privatevoidrunVpnConnection()throwsException{configure();FileInputStreamin=newFileInputStream(mInterface.getFileDescriptor());FileOutputStreamout=newFileOutp