- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从 Android 获取 .ovpn 文件,我有用户名和密码,我应该连接到 VPN 服务器,但我不知道该怎么做。我尝试过这样的事情:
let manager = NEVPNManager.sharedManager()
manager.loadFromPreferencesWithCompletionHandler { (error) -> Void in
if manager.`protocol` == nil {
let newIPSec = NEVPNProtocolIKEv2()
newIPSec.serverAddress = "xxx.xxx.xxx.xxx"
newIPSec.username = "username"
let keychain = Keychain(service: "com.app.ios")
let data = keychain[data: "vpnpassword"]
newIPSec.passwordReference = data
newIPSec.authenticationMethod = NEVPNIKEAuthenticationMethod.None
newIPSec.disconnectOnSleep = false
manager.`protocol` = newIPSec
manager.enabled = true
manager.saveToPreferencesWithCompletionHandler({ (error) -> Void in
print(error)
})
}
}
我不知道如何添加证书(.ovpn 中的 <ca>
之间)信息以及如何设置它。文件 .ovpn 看起来像这样(我只是删除 <ca>
标记中的数据并更改服务器地址:
client
dev tun
proto udp
remote xx.xx.xx.xx 443
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
<auth-user-pass>
#username#
#userpass#
</auth-user-pass>
cipher AES-256-CBC
<ca>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</ca>
感谢您的帮助
最佳答案
这有点晚了,但你必须明白这是两个完全不同的事情。
在撰写此答案时,NetworkExtension API(我有 iOS 9.3.4)支持两种协议(protocol):- 使用 IKEv1 的 IPSec- AEP 和证书 (IKEv2)
您的服务器是 OpenVPN 服务器。目前没有 OpenVVPN 的 API(如果您发现任何 API,请告诉我)。那么第一个问题,您的 VPN Server 支持 IKEv1 还是 v2?
有适用于 iOS 的客户端 OpenVPN-connect,但它是专有的且封闭源代码。您仍然可以从应用程序内部调用它,它会弹出给用户,如下所示:```` swift func actConnectButtonPressed(发送者: AnyObject) { 让应用程序:UIApplication = UIApplication.sharedApplication()
let alert = UIAlertController(title: "Warning", message: "OpenVPN Connect needs to be installed to process .ovpn configuration files on your device. Go to OpenVPN Connect page in AppStore?", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Yes", style: .Default, handler: { (action: UIAlertAction!) in
app.openURL(NSURL(string: "https://itunes.apple.com/app/id590379981?mt=8")!)
}))
alert.addAction(UIAlertAction(title: "No", style: .Default, handler: { (action: UIAlertAction!) in
let server:Server = self.api.findServerByName(self.settings.loadValue(SettingsController.keyServerName, defValue: "") as! String)!
let protocolPort:Int = self.settings.loadValue(SettingsController.keyProtocolPort, defValue: 0) as! Int
app.openURL(NSURL(string: self.api.getOvpnConfigURL(server, proto: self.protocolAndPorts[protocolPort]))!)
}))
presentViewController(alert, animated: true, completion: nil)
}
```
此示例来自 safejump 客户端。看看这里 https://github.com/proxysh/Safejumper-for-iOS
我自己仍在尝试让 IPSec 客户端以编程方式在 iOS 上运行,这是我所学到的- 建议使用共享 key 方法而不是 None- 共享 key 也必须保存在钥匙串(keychain)中- 如果您使用共享 key ,则还要启用扩展身份验证- 确保在启动连接之前保存配置
希望这有帮助
关于ios - Swift - 使用 NEVPNManager 连接到 VPN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33923854/
我的目标平台是 OS X 10.10/Xcode 7.2 我正在尝试保存 NEVPNManager 的首选项,但在域 = NEConfigurationErrorDomain 中出现错误: Error
我使用以下代码创建了网络管理器。但是一旦第一行调用运行,管理器就为零,因此任何其他方法都不会受到影响。谁能告诉我我做错了什么? NEVPNManager *manager = [NEV
我正在使用 NetworkExtension 框架在 iOS 上使用 VPN。我能够安装配置并建立连接。我的问题是是否有办法检测 VPN 配置是否仍在安装或检测用户是否已卸载配置? 我不一定要在后台寻
Apple 在 iOS 8 中发布了一个新的框架“NetworkExtension”。 我想使用 NEVPNManager 从应用程序启动 VPN 连接,或者这个框架有其他用途吗? 有人提供有关此框架
当 NEVPNProtocol 属性被服务器更新使得用户名和密码不再有效时,我们有办法处理这个问题吗? 比方说,如果我们为 NEVPNManager 打开 onDemandEnabled 标志,当服务
我想找出两者之间的区别。我知道 NETunnel 适用于 ssl-vpn 和自定义 vpn,但它们仍然可以互换使用吗?我可以使用 NETunnel 连接到 IPSec VPN 吗? 我的主要需求是为
所以我正在尝试使用 NEVPNManager 以编程方式设置我的 VPN。我被困在配置上,真的很困惑什么在哪里。 sharedSecretReference 真的让我很困惑。我在其他地方看到过说我需要
我尝试在 iOS 14 测试版上运行我的应用程序。它在 iOS 13 上运行良好,但无法连接到 iOS 14 beta 上的任何服务器。 NEVPNManager.shared().connectio
我从 Android 获取 .ovpn 文件,我有用户名和密码,我应该连接到 VPN 服务器,但我不知道该怎么做。我尝试过这样的事情: let manager = NEVPNManager.share
您好,我正在尝试创建 IPSEC VPN 连接并自动连接,但即使我定义了共享 key ,它也会显示没有提供 VPN 共享 key 错误。我的代码如下所示,它正在保存 VPN 配置但未连接。 我正在尝试
请参阅下面的代码。每当我在运行 iOS 7 的 iPhone 5c 上运行此代码时,我都会在 let manager: NEVPNManager = NEVPNManager.sharedManage
我正在尝试在我的应用程序中创建 VPN 连接。我通过这个链接 https://developer.apple.com/documentation/networkextension/nevpnmanag
我在网上找到了一些文章,例如 this one其中讨论了在 iOS 8 中使用新的 NetworkExtension.framework 及其相应的 NEVPNManager 类以编程方式创建自定义
我正在尝试设置 IPSec VPN 连接,但是当我尝试运行时 manager.saveToPreferences 或 manager.loadFromPreferences 永远不会调用回调函数,因此
我无法找到关于如何执行此操作的明确答案,所以这就是我创建此线程的原因。 我正在开发一个 Swift 应用程序 (Swift 2),我想在其中使用一个函数连接 VPN 服务器。所以我想创建一个 func
我想通过协议(protocol)扩展现有的 NetworkExtension 类,以便对我的代码进行单元测试。 我首先为 NEVPNManager 创建了协议(protocol) protocol N
我正在尝试在 Xcode 中使用 Swift 连接到 VPN。我正在使用 KeychainSwift 来保存钥匙串(keychain)引用。我的代码如下所示: private func con
我正在尝试在我的 iOS 应用程序中创建 IPSEC VPN 连接。 我设置配置的代码如下所示: -(void)setUpConfig NEVPNManager *manager = [NEVP
我的客户希望我为 IOS (IOS 9.2) 编写一个 VPN 客户端。 VPN 客户端应该使用 SSL 连接到 openVPN 服务器。我将使用苹果提供的 NEVPNManager 类(NEVPNM
查看apple的Configurator工具中的VPN配置,它提供了很多不同类型的VPN,例如 L2TP PPTP 思科 AnyConnect 瞻博网络 SSL Check Point 移动 VPN等
我是一名优秀的程序员,十分优秀!