利用NetworkExtension库配置VPN

VPN简单说就是连接局域网的一个通道。Ios8之后苹果增加了一个VPN的接口NEVPNManager,它可以方便的添加VPN连接。

首先在你的Xcode内,TARGETS->Capabilities->打开persion VPN

在项目中添加NetWorkExtension库

引入头文件<NetworkExtension/NEVPNManager.h>以后

//创建管理对象

NEVPNManager *vpnManager = [NEVPNManager sharedManager];

从设置里面加载VPN

//给VPN配置信息

[manager loadFromPreferencesWithCompletionHandler:^(NSError * _Nullable error) {

NEVPNProtocolIPSec *set =(NEVPNProtocolIPSec*) self.manager.protocolConfiguration;

if(!set)

{

set = [[NEVPNProtocolIPSec alloc]init];

}

set.username = @"username";//VPN用户名

set.passwordReference = [@"password" dataUsingEncoding:NSUTF8StringEncoding];//VPN密码

set.serverAddress = @"ip";//ip地址

set.sharedSecretReference = [@"SecretReference"  dataUsingEncoding:NSUTF8StringEncoding];

//            NEVPNIKEAuthenticationMethodCertificate:使用证书和私钥作为身份验证凭据。

//            NEVPNIKEAuthenticationMethodSharedSecret:使用共享密钥的身份验证凭据

set.authenticationMethod = NEVPNIKEAuthenticationMethodSharedSecret;

set.useExtendedAuthentication = YES;//这是一个标志指示如果扩展验证将协商

set.disconnectOnSleep = NO;//这个布尔表示是否VPN连接时,必须断开设备睡觉

self.manager.protocolConfiguration = set;

self.manager.localizedDescription = @"hrjd";//VPN的描述

[self.manager setOnDemandEnabled:YES];

[self.manager saveToPreferencesWithCompletionHandler:^(NSError * _Nullable error) {

NSError * error1 ;

//连接VPN

[manager.connection startVPNTunnelAndReturnError:&error1];

if (error) {

NSLog(@"VPN连接失败");

}else{

NSLog(@"VPN连接成功");

}

}];

}];

[vpnManager.connection stopVPNTunnel];

//断开VPN

时间: 2024-11-13 08:05:03

利用NetworkExtension库配置VPN的相关文章

利用openswan配置VPN服务

CentOS6.5  利用openswan xl2tpd配置VPN服务 OpenSWan是Linux下IPsec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性.完整性问题OpenSWan支持2.0.2.2.2.4以及2.6内核,可以运行在不同的系统平台下,包括X86.X86_64.IA64.MIPS以及ARMOpenSWan是开源项目FreeS/WAN停止开发后的后继分支项目,由三个主要组件构成:配置工具(ipsec命令脚本)Key管理工具(pluto)内核组件(KLIPS/26

怎么配置VPN远程访问服务器?(图文详解)

VPN(VirtualPrivate Network)即虚拟专用网络,通过一个公用网络(如Internet)建立一个临时的.安全的.模拟的点对点连接.这是一条穿越公用网络的信息隧道,数据可以通过这条隧道在公用网络中安全地传输.借助VPN,企业外出人员可随时连到企业的VPN服务器,进而连接到企业内部网络. VPN工作原理:      *VPN客户端通过Internet将请求VPN发送到VPN服务器(请求拨入服务器) *VPN 服务器请求DC进行身份验证,然后得到授权信息 *VPN 服务器回应VPN

Windows server 2012 搭建VPN图文教程(三)配置VPN访问账户

Windows server 2012 搭建VPN图文教程(一)安装VPN相关服务 Windows server 2012 搭建VPN图文教程(二)配置路由和远程访问服务 Windows server 2012 搭建VPN图文教程(三)配置VPN访问账户 Windows server 2012 搭建VPN图文教程(四)客户端访问VPN测试 Part III 配置VPN访问账户 本部分主要介绍如何配置VNP相关服务以及配置VPN访问账户的方法,具体如下: 选择路由和远程访问服务器,右键,选择"属性

ubuntu14.04 PPTP方式配置vpn

第一步,安装openvpn sudo apt-get install openvpn 第二步,首先点击桌面右上角的网络图标,在下拉菜单里选择“配置VPN” 第三步,在网络连接窗口中切换到VPN选项卡,点击“添加”. 第四步,在弹出创建VPN类型窗口中选择“Point-to-Point Tunneling Protocol (PPTP)”,点击“新建”. 第五步,填写连接名称和VPN服务器地址.用户名密码 第六步,点击上图右下角的“Advanced”按钮,在高级设置里取消“EAP”选项,另外勾选“

Fedora配置VPN

最近GFW发疯了,甚至导致往openstack提交代码都无法成功. 因为一直在Linux下进行开发,所以研究了下如何配置VPN. 1. 安装pptp的gnome plugin. 2. 打开network页面. 3. 通过左下角的加号添加VPN 4. 配置VPN(IP,用户/密码,可以在网上获得.或者在淘宝买一个) 5. 配置VPN认证(关闭其他的,只选择MSCHAP,MSCHAPv2) 6. 通过右上角的菜单启动VPN 7. 从此可以自由的驰骋网络了.当然我们的目的是提交代码到openstack

PPTP配置VPN服务器

一. 安装PPTP pptp是(Point to Point Tunneling Protocol),即点对点隧道协议.该协议是在ppp协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网(VPN),可以通过密码验证协议(PAP).可扩展认证协议(EAP)等方法增强安全性.pptpd是指运行在服务器上提供上述协议服务的软件. 首先我们需要安装pptpd,centos服务器用以下命令: # yum install pptpd Ubuntu服务器使用以下命令: # sudo apt-get

ubuntu10.4 server 配置VPN 安装pptp无法连接外网解决(转)

链接:http://www.ppkj.net/2011/04/30/ubuntu10-4-server-%E5%AE%89%E8%A3%85pptp%E6%97%A0%E6%B3%95%E8%BF%9E%E6%8E%A5%E5%A4%96%E7%BD%91%E8%A7%A3%E5%86%B3.html PPTP是一个比较简单的VPN构建方式,但是很难找到比较全的说明文档.因此,记录一篇说明文档,详细记录架设VPN服务器以及总结一些其他比较容易遇到的问题. 安装PPTP基本上安装pptp是比较简单

CentOS下配置VPN客户端

今天想在centos下创建个vpn连接,可谁知点击打开后无法添加vpn连接...悲剧了... 后来在网上找到如下资料解决了...呵呵... 注意,当安装好如下软件包后,点击添加vpn时,记得网关填写的是vpn的地址... 原因:缺少相关软件包 1. Point-to-Point Tunneling Protocol(PPTP) Client 2. NetworkManager vpn plugin for pptp 解决方法: 1. 有EPEL更新源 (EPEL更新源配置http://blog.

ubuntu下配置vpn支持訪问外网

公司的开发环境都是局域网的,在公司内部使用没有什么问题.可是有时候确实要在外部比方家里.出差使用,这时候就须要配置vpn连接公司内网了.vpn的配置非常easy,但有时我们连了vpn后还须要公网资源.比方qq接收文件.查资料之类的,断了vpn再连外网.查完资料后再连vpn,非常烦.这就须要vpn同一时候也能訪问外网.windows环境下这样的配置非常easy.vpn的连接属性上.把ipv4的属性改为"自己主动获得IP地址"和"自己主动获得DNSserver地址"即可