Tag: networkextension

自定义OpenVPN iOS客户端

我正在开发一个定制的iOS OpenVPN客户端。 我发现这个本地的OpenVPN客户端核心来源https://staging.openvpn.net/openvpn3/ 我可以为iOS平台构build它。 我怎样才能把这个OpenVPNClient作为一个扩展来集成,以便从我的应用程序中为iOS设备build立一个OpenVPNnetworking? 可能吗?

“错误域= NEVPNErrorDomain代码= 1”(空)\“”当连接VPN服务器

我只在连接到VPN服务器时第一次得到“错误域= NEVPNErrorDomain代码= 1”(空)\“”,以后才能完美工作。 我已经检查NEVPNErrorDomain错误1当试图启动类似于我的问题的TunnelProvidernetworking扩展 ,并按照其在这个解决scheme中说的方式,但仍然得到相同的错误。 所以这里是我使用networking扩展连接到VPN服务器的代码。 func initVPNTunnelProviderManager(){ self.vpnManager.loadFromPreferences { (error) -> Void in if((error) != nil) { print("VPN Preferences error: 1") } else { let p = NEVPNProtocolIKEv2() p.username = "******" p.remoteIdentifier = "*****" p.serverAddress = "******" let keychain = KeychainSwift() let data = keychain.getData("vpnPassword") p.passwordReference = data p.authenticationMethod = NEVPNIKEAuthenticationMethod.none p.useExtendedAuthentication = true […]

NetworkExtension connectOnDemand规则不起作用

我有一个由新的NetworkExtension框架创build的VPNconfiguration的应用程序。 它工作得很好,但现在我只需要添加一些规则来打开这个VPN只有当我想连接到一个特定的URL。 我计划使用NEVPNManager的connectOnDemandfunction,但它似乎没有为我工作。 当我在safari中打开http://some-site.com时 ,我的VPN连接应该build立,但由于某种原因,它不会。 我尝试了不同types的configuration以及使用生成的.mobileconfig文件来使connectOnDemand工作,但没有运气。 它出什么问题了? 我正在testing这样的代码: let manager = NEVPNManager.sharedManager() manager.enabled = true manager.loadFromPreferencesWithCompletionHandler { (err) -> Void in manager.removeFromPreferencesWithCompletionHandler { (err0) -> Void in print("err0 \(err0)") print("err \(err)") let config = NEVPNProtocolIPSec() config.localIdentifier = "NEVPNProtocolIPSec" config.remoteIdentifier = "NEVPNProtocolIPSecRemote" config.disconnectOnSleep = true config.serverAddress = server config.authenticationMethod = .Certificate //configurating here manager.protocolConfiguration = config […]