草庐IT

VpnService

全部标签

android - 使用 VpnService 在 android 4.0 中创建 VPN

我想在android4.0平台上创建一个vpn连接,如PPTP、IPSec等。Android4.0为我们提供了一个名为VpnService的新类,我已经查看了演示项目ToyVpn,但我仍然遇到了一些问题。ToyVpn似乎创建了一个自定义的vpn实现,我们需要处理vpn连接的细节。我只想创建类似系统设置Activity的vpn,所以有人知道吗?请让我知道...附言。在android2.3及之前,我们可以使用反射调用系统隐藏类来创建类似vpn的系统设置页面。但是从android4.0开始它不再工作了。谢谢!若超 最佳答案 我知道已经有一

android - 在 Android 中以编程方式基于 VpnService 创建 L2TP/IPSec VPN

找了一天,关于基于VpnService创建L2TP/IPSecVPN。但是没有匹配的结果。使用LocalVPN(https://github.com/hexene/LocalVPN),我可以创建一个基于VPNService的VPN(OpenVPN)android应用程序。但我想创建一个L2TP/IPSecVPNAndroid应用程序。有什么办法吗? 最佳答案 根本做不到。VPN服务不允许您使用用户名和密码创建配置文件,也不支持以编程方式创建L2TP或PPTP。很多人一直在寻找这个,但谷歌只是不分享他们的玩具。即使尝试使用隐藏API也

Android VpnService.Builder.establish() 偶尔为空

当我尝试为我的VpnService创建隧道接口(interface)时,出现以下错误:Attempttoinvokevirtualmethod'java.lang.Stringandroid.os.ParcelFileDescriptor.toString()'onanullobjectreference我目前唯一的解决办法是在发生这种情况时重启设备。否则,我根本无法创建隧道。我创建隧道的代码://ThisisinsidemyVpnServiceimplementationprivateParcelFileDescriptorconfigureTunnelWithPushOpts(Pu

java - Android VPN Service Builder.establish() 返回 null

我正在尝试让VPN服务在Android上运行。为此,我想我必须使用VpnService类中提供的Builder类,它由androidSDK提供。现在,当我尝试这样做时,方法builder.establish()返回空值。这是我写的完整方法;//IftheInterfacestillexistsfromlasttime,reuseit,ithasthesameparameters.if(theInterface!=null){return;}//configuretheVPNsettings.Builderbuilder=newBuilder();builder.setMtu(1500)

android - 如何在 Android 模拟器中启用 VPN 支持

我喜欢在Android模拟器中使用PPTPVPN。我的VPN提供商是Witopia。这些设置适用于真实手机(HTCDesire)。它不起作用,连接只是在一段时间后超时。adblogcat打印:D/VpnManager(1527):succeededtoconnecttoVPNserviceD/com.android.settings.vpn.AuthenticationActor(1527):~~~~~~connect()succeeded!I/SProxy_mtpd(2211):StopVPNdaemon:mtpdD/VpnSettings(1527):receivedconnect

以编程方式连接android vpn

我正在尝试以编程方式启动vpn连接。我收到此错误。我使用的是Android2.1,我的测试手机内核版本是2.6.32.9。当我手动连接时,我能够连接到vpn。但是以编程方式,我收到此错误。java.io.IOException:cannotstartservice:mtpdE/VpnService(11817):atcom.android.vpn.DaemonProxy.start(DaemonProxy.java:75)E/VpnService(11817):atcom.android.vpn.VpnDaemons.startDaemon(VpnDaemons.java:106)E/

java - Android VpnService 保护存储在 native 代码中的套接字?

我正在编写一个VPN应用程序,用于VPN连接的套接字是在我的nativeC代码中处理的,而不是在java中。如何在该套接字上使用VpnService.protect()?我注意到它有一个VpnService.protect(int)重载,我可以将socket从native代码返回的int返回给Java并以这种方式保护它吗?示例//NativeCodeintsocket;JNIEXPORTjintJNICALLJava_com_my_package_Class_initializeSocket(JNIEnv*env,jobjectjobj){socket=socket(AF_INET,S

Android开发,VPNService.buider中的FileDescriptor不能读写

我正在尝试使用Android4.xVPN服务与内部以太网服务器建立VPN隧道。IP地址是Internet上的全局ip。现在问题是:1.我使用TCPdump抓包,VPNService.build建立后,没有一个tcp包可以在之前连接到服务器的隧道中传输。2.构建建立后,我得到一个fileDescriptor,它不能写入任何字节(EINVAL错误),也不能读取任何字节(长度=0)。3.我使用sockettunnel与服务器通信,发送PPTP包,经过start-control-request,outgoing-call-request,服务器返回正确的信息,然后通过PPPLCP协议(prot

java - Android VpnService 转发数据包

我想使用android的VpnService来捕获数据包并根据IP地址过滤它们。我可以很好地从“tun”接口(interface)获取数据包,但在那之后我不确定如何将它们转发到它们的原始目的地。基于thisanswer的评论看来我只需要:创建到目标IP地址和端口的新套接字修剪IP和TCPheader以仅发送数据收到响应后重新附加IP和TCPheader将完整的数据包发送到输出流我试过这样发送数据:Socketsocket=newSocket();socket.bind(newInetSocketAddress(0));if(protect(socket)){Log.e(TAG,"Soc

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

我已经关注了这个link并使用VpnService创建了Vpn接口(interface)。将转发路由添加为“0.0.0.0”后,所有互联网流量都会转发到Vpn接口(interface)。我可以读取数据包、访问协议(protocol)、目标ip和端口。现在我正尝试通过tcp套接字将数据包转发到它的目的地。但是套接字连接失败,连接超时。exception:java.net.ConnectException:failedtoconnectto/74.125.227.114(port443):connectfailed:ETIMEDOUT(Connectiontimedout)注意:当我尝试使