OC网络学习10:OC项目中连接VPN的流程
前言
VPN
的英文全称是 Virtual Private Network
,翻译过来就是 虚拟专用网络
。虚拟专用网络(VPN)的主要功能是:在公用网络上建立专用网络,进行加密通讯。
VPN作用
- VPN可以提高上网的安全性
因为使用VPN时所用的网络访问都是加密进行的,所以使用VPN上网,安全性就更高,黑客很难截取用户的重要信息。如果你使用公共WIFI上网(例如在咖啡馆上网)时,需要做安全性强的操作(比如使用网上银行或网上投资账户),那么建议你连上VPN,因为这样会大大提高安全性。
- VPN可以隐藏上网者的身份
因为VPN用户访问任何网站都是通过VPN服务器间接访问的,所以被访问的网站看到的访问者是VPN服务器,而不是VPN用户本人的电脑,这样VPN用户就能对要访问的网站隐藏自己的真正身份。
- VPN可以突破网站的地域限制
很多网站都有地域限制,比如百度在不同省份提供不同的内容,北京用户访问百度时看到的是简体网站的内容,香港用户看到的是香港繁体的内容。网站的这种功能是通过查看访问者的IP地址属于哪个地区来实现的。而VPN可以用来突破这种IP限制。比如:香港的用户想要看到大陆版百度的内容,可以先连接到一台位于的VPN服务器。这样百度网站就会以为访问着来自大陆,而提供大陆版的内容。基于同样的道理,海外华人可以通过VPN网络封锁回国,观看仅限国内用户观看的视频内容。另外,VPN还可以用来在网上购物时省钱,因为一些酒店和租车网站对不同地区有不同的价格,本地人给予优惠,通过VPN换成不同地域的IP往往可以省钱。
- 突破网络封锁
为什么VPN可以用来网络封锁呢?先让我们看看网站是如何被封锁的。当用户外地想要访问公司ERP时,因为不是内网所以无法连接上。而如果你通过VPN访问这个网站,我们前面提到,VPN用户访问任何网站都是通过VPN服务器代为访问的,用户连接的其实是VPN服务器,而不是公司ERP(只是告诉VPN服务器你要访问公司ERP),然后VPN服务器去连接公司ERP,把公司ERP的内容回传给你。这样的话,实际与公司内部ERP交换信息的您的VPN服务器,而不是您的电脑,同时因为VPN传输是加密的,如果有黑对对您网络监控无法破解你和VPN服务器之间在传输什么信息。所以您公司的数据安全性大大增加。
使用
- 连接VPN的代码是由我一个Go语言的同事实现的,我需要将其封装好的.a静态库和.h头文件导入到项目中,用.c文件中的实现去调用.h中暴露出来的方法名,去.a静态库中查询即可
具体文件有三个:
- 将iOS_GO这个文件夹导入到项目中
Xcode会自动将 .a静态库
链接二进制,在 target -> bulid phases -> link binary with libraries
下查看:
- 查看一下.h文件下暴露的函数
- 查看.c文件下方法的使用
- 第一个方法
mira_start
1 | sd = mira_start("第一个参数", "https://ip:post"); |
通过两个参数去 建立VPN连接
- 通过
sd
获取连接成功的客户端App的ip地址
1 | sleep (5); |
- 第二个方法 update_map(“域名”, “https://ip:post“);
这个方法的作用是 设置代理
,一个 ip地址
可以对应 一个或多个域名
,如果没有指定特殊的端口号,默认的端口号是 443
- 如果返回了
客户端App的ip地址
那么代表你成功建立了 VPN 连接了
注:
1、VPN建立连接是要保证App在前台的情况下才不会断开
2、如果切换到后台VPN会断开连接,切换到前台时会恢复连接
3、VPN的主要作用就是用外网
访问内网
(实现外网访问内网的服务器请求或者h5等)
- Post title:OC网络学习10:OC项目中连接VPN的流程
- Post author:张建
- Create time:2023-05-25 09:37:09
- Post link:https://redefine.ohevan.com/2023/05/25/OC网络/OC网络学习10:OC项目中连接VPN的流程/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.