OC网络学习10:OC项目中连接VPN的流程

张建 lol

前言

VPN 的英文全称是 Virtual Private Network ,翻译过来就是 虚拟专用网络 。虚拟专用网络(VPN)的主要功能是:在公用网络上建立专用网络,进行加密通讯。

VPN作用

  1. VPN可以提高上网的安全性

因为使用VPN时所用的网络访问都是加密进行的,所以使用VPN上网,安全性就更高,黑客很难截取用户的重要信息。如果你使用公共WIFI上网(例如在咖啡馆上网)时,需要做安全性强的操作(比如使用网上银行或网上投资账户),那么建议你连上VPN,因为这样会大大提高安全性。

  1. VPN可以隐藏上网者的身份

因为VPN用户访问任何网站都是通过VPN服务器间接访问的,所以被访问的网站看到的访问者是VPN服务器,而不是VPN用户本人的电脑,这样VPN用户就能对要访问的网站隐藏自己的真正身份。

  1. VPN可以突破网站的地域限制

很多网站都有地域限制,比如百度在不同省份提供不同的内容,北京用户访问百度时看到的是简体网站的内容,香港用户看到的是香港繁体的内容。网站的这种功能是通过查看访问者的IP地址属于哪个地区来实现的。而VPN可以用来突破这种IP限制。比如:香港的用户想要看到大陆版百度的内容,可以先连接到一台位于的VPN服务器。这样百度网站就会以为访问着来自大陆,而提供大陆版的内容。基于同样的道理,海外华人可以通过VPN网络封锁回国,观看仅限国内用户观看的视频内容。另外,VPN还可以用来在网上购物时省钱,因为一些酒店和租车网站对不同地区有不同的价格,本地人给予优惠,通过VPN换成不同地域的IP往往可以省钱。

  1. 突破网络封锁

为什么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 下查看:

  1. 查看一下.h文件下暴露的函数

  1. 查看.c文件下方法的使用

  • 第一个方法 mira_start
1
sd = mira_start("第一个参数", "https://ip:post");

通过两个参数去 建立VPN连接

  • 通过 sd 获取连接成功的 客户端App的ip地址
1
2
3
4
5
6
7
sleep (5);
char addr_out[100];
get_ip(sd, addr_out, sizeof(addr_out));

printf("-----------------------------------------\n");
printf("IP addr %s\n", addr_out);
printf("-----------------------------------------\n");

这个方法的作用是 设置代理,一个 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.
On this page
OC网络学习10:OC项目中连接VPN的流程