首页 > 解决方案 > 如何以编程方式扩展 VpnService 以在 android 中打开 L2TP/IPSEC 连接?

问题描述

我正在寻找一种解决方案来打开L2TP/IPSEC来自 android 应用程序的连接,这样我就可以简单地通过server ip, pre-shared key,usernamepassword设备连接到这个 VPN 服务器

我在这里查看https://developer.android.com/reference/android/net/VpnService.html,我们需要扩展和构建我们自己的 VPN 解决方案来做到这一点。

是否有任何可用的解决方案,以便我们可以使用它而不是重新发明轮子?

我尝试了以下实现,VpnService但没有一个对我有用

并尝试了这个

并得到以下错误

mtpd:启动 VPN 守护进程:mtpd W/libc:将属性“ctl.start”设置为“mtpd” 无法将属性“ctl.start”设置为“mtpd”:连接失败;errno=13(权限被拒绝) E/SysPropJNI: SystemProperties_set key:ctl.start,val:mtpd W/System.err: java.io.IOException: cannot start service: mtpd W/System.err: at com.mega.speed .vpn.DaemonProxy.start(DaemonProxy.java:58) W/System.err: at com.mega.speed.vpn.VpnDaemons.startDaemon(VpnDaemons.java:92) at com.mega.speed.vpn.VpnDaemons.startMtpd (VpnDaemons.java:113) at com.mega.speed.vpn.VpnDaemons.startL2tp(VpnDaemons.java:36) W/System.err: at com.mega.speed.vpn.L2tpService.connect(L2tpService.java:16 ) 在 com.mega.speed.fragments.HotspotFragment.onCreateView(HotspotFragment.java:
在 android.os.Handler.dispatchMessage(Handler.java:101) 在 android.os.Looper.loop(Looper.java:166) W/System.err: 在 android.app.ActivityThread.main(ActivityThread.java:7529 ) W/System.err: 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) W/System.err: 在 com .android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

标签: androidvpnipsecl2tp

解决方案


推荐阅读