美文网首页网络iOS之框架架构iOS之基础知识
NetworkExtension框架详细解析(一) —— 基本概

NetworkExtension框架详细解析(一) —— 基本概

作者: 刀客传奇 | 来源:发表于2018-02-08 18:07 被阅读1668次

    版本记录

    版本号 时间
    V1.0 2018.02.08

    前言

    NetworkExtension框架配置VPN通道,定制和扩展核心网络功能。接下来几篇我们就一起看一下这个框架。

    Overview

    下面先看一下该框架的基本信息。

    下面我们看一下该框架的基本结构。

    Network Extension框架包含API,可用于定制和扩展iOS和MacOS的核心网络功能。


    Network Extension Hotspot Entitlements

    除了使用NEHotspotHelper类以外,您不需要从Apple获得使用Network Extension类的权利。 要申请使用Hotspot Helper的权利,请访问https://developer.apple.com/contact/network-extension


    Personal VPN

    NEVPNManager API使应用程序能够在iOS和MacOS上创建和管理个人VPN配置。 个人VPN配置通常用于向用户提供服务,以保护其在诸如公共Wi-Fi网络等不安全网络上的互联网浏览活动。


    Network Tunneling Protocol Client

    您可以使用NETunnelProvider系列API将iOS和MacOS设备连接到使用非标准网络隧道协议(例如SSL-VPN服务器)的VPN服务器。

    NETunnelProvider API系列使应用程序能够实现自定义网络隧道协议(称为Tunnel Provider)的客户端。 Tunnel Provider作为应用程序扩展运行。NETunnelProvider系列的API还包含以下类,用于配置和控制Tunnel Provider


    On-Device Network Content Filter

    NEFilterProvider API使应用程序能够在iOS设备上动态过滤网络内容。 应用程序可以在学校环境中使用以下的类,在使用学校拥有的设备浏览互联网时保护学生:


    Wi-Fi Hotspot Authentication and Configuration

    NEHotspotHelper API使您的应用能够为Wi-Fi热点执行自定义身份验证。 它为用户提供了一种无缝连接到大型Wi-Fi热点聚合网络的方法。 NEHotspotConfiguration API可让您的应用程序配置这些热点。


    Topics

    1. Classes

    • NEAppProxyFlow

      • NEAppProxyFlow用于从网络套接字读取数据并将数据写入网络套接字。
    • NEAppProxyProvider

      • App Proxy Provider应用程序扩展创建一个主体类。
    • NEAppProxyProviderManager

      • 配置和控制由App Proxy Provider应用程序扩展提供的网络隧道。
    • NEAppProxyTCPFlow

      • NEAppProxyTCPFlow用于从应用程序代理提供程序代理的TCP套接字中读取数据和将数据写入该套接字。
    • NEAppProxyUDPFlow

      • NEAppProxyUDPFlow用于从应用程序代理提供程序代理的UDP套接字中读取数据和将数据写入该套接字。
    • NEAppRule

      • NEAppRule包含用于匹配基于源应用程序的网络连接的规则的匹配条件。
    • NEDNSSettings

      • NEDNSSettings包含网络隧道的DNS解析器设置。
    • NEEvaluateConnectionRule

      • NEEvaluateConnectionRule将网络连接的属性与操作相关联。
    • NEFilterBrowserFlow

      • NEFilterBrowserFlow包含有关从WebKit浏览器对象发起的网络数据流的详细信息。
    • NEFilterControlProvider

      • 创建一个Filter Control Provider应用程序扩展的主体类。
    • NEFilterControlVerdict

      • NEFilterControlVerdict包含 Filter Control Provider对网络数据流的决定。
    • NEFilterDataProvider

      • Filter Data Provider应用程序扩展创建一个主体类。
    • NEFilterDataVerdict

      • NEFilterDataVerdict包含Filter Data Provider对网络数据块做出的决定。
    • NEFilterFlow

      • 被过滤器提供者检查的网络数据流的表示。
    • NEFilterManager

      • 创建和管理网络内容过滤器配置并控制网络内容过滤器。
    • NEFilterNewFlowVerdict

      • NEFilterNewFlowVerdict包含Filter ProviderFilter Provider刚刚第一次看到的网络数据流的决定。
    • NEFilterProvider

      • 两个Filter Provider扩展主体类的基类,它们一起工作以制作完整的设备上的网络内容过滤系统。
    • NEFilterProviderConfiguration

      • NEFilterProviderConfiguration包含 Filter Provider的配置设置
    • NEFilterRemediationVerdict

      • NEFilterRemediationVerdict包含Filter Data Provider在用户请求访问网络数据之后对网络数据流作出的决定。
    • NEFilterSocketFlow

      • NEFilterSocketFlow包含有关源自套接字的网络数据流的详细信息。
    • NEFilterVerdict

      • 内容过滤器的抽象基类判定类。
    • NEFlowMetaData

      • NEFlowMetaData包含有关流量的本地和远程网络端点之外的网络数据流的附加信息。
    • NEHotspotConfiguration

      • Wi-Fi网络热点的配置设置。
    • NEHotspotConfigurationManager

      • 配置管理器,应用并删除Wi-Fi网络的热点配置。
    • NEHotspotEAPSettings

      • 用于配置WPAWPA2企业Wi-Fi网络的可扩展身份验证协议(EAP)设置。
    • NEHotspotHelper

      • 注册一个应用程序作为热点帮手。
    • NEHotspotHelperCommand

      • NEHotspotHelperCommand包含一个Hotspot Helper应用程序处理的命令。
    • NEHotspotHelperResponse

      • NEHotspotHelperResponse包含对Hotspot Helper命令的响应。
    • NEHotspotHS20Settings

      • 用于配置Hotspot 2.0 Wi-Fi网络的设置。
    • NEHotspotNetwork

      • NEHotspotNetwork将关于网络的信息传达给Hotspot Helper应用程序。
    • NEIPv4Route

      • NEIPv4Route包含IPv4路由的设置。
    • NEIPv4Settings

      • NEIPv4Settings包含IP层网络隧道的Internet协议版本4(IPv4)设置。
    • NEIPv6Route

      • NEIPv6Route包含IPv6路由的设置。
    • NEIPv6Settings

      • NEIPv6Settings包含IP层网络隧道的Internet协议版本6(IPv6)设置。
    • NEOnDemandRule

      • NEOnDemandRule定义了何时自动启动VPN连接的规则。
    • NEOnDemandRuleConnect

      • NEOnDemandRuleConnect使用NEOnDemandRuleActionConnect操作定义了一个Connect On Demand规则。
    • NEOnDemandRuleDisconnect

      • NEOnDemandRuleDisconnect使用NEOnDemandRuleActionDisconnect操作定义了一个Connect On Demand规则。
    • NEOnDemandRuleEvaluateConnection

      • NEOnDemandRuleEvaluateConnection使用NEOnDemandRuleActionEvaluateConnection操作定义了一个Connect On Demand规则。
    • NEOnDemandRuleIgnore

      • NEOnDemandRuleIgnore使用NEOnDemandRuleActionIgnore操作定义了一个Connect On Demand规则。
    • NEPacket

    • NEPacketTunnelFlow

      • NEPacketTunnelFlow用于读取数据包并将数据包写入TUN虚拟接口。
    • NEPacketTunnelNetworkSettings

      • NEPacketTunnelNetworkSettings包含IP层隧道的IP网络设置。
    • NEPacketTunnelProvider

      • 为数据包Tunnel Provider应用程序扩展创建主体类。
    • NEProvider

      • NEProvider是所有Network Extension Provider类的基类。
    • NEProxyServer

      • NEProxyServer包含代理服务器的设置。
    • NEProxySettings

      • NEProxySettings包含HTTP代理设置。
    • NETunnelNetworkSettings

      • NETunnelNetworkSettings包含网络隧道的网络设置。
    • NETunnelProvider

      • 为实现自定义网络隧道协议的客户端的Network Extension Provider应用程序扩展创建主体类。
    • NETunnelProviderManager

      • 配置和控制由Tunnel Provider应用程序扩展提供的VPN连接。
    • NETunnelProviderProtocol

      • NETunnelProviderProtocol包含网络隧道的配置参数。
    • NETunnelProviderSession

      • NETunnelProviderSession用于控制网络隧道连接,以及内部通道连接的状态。
    • NEVPNConnection

      • NEVPNConnection用于控制VPN连接并查看VPN连接的状态。
    • NEVPNIKEv2SecurityAssociationParameters

      • NEVPNIKEv2SecurityAssociationParameters包含IKEv2安全关联的参数。
    • NEVPNManager

      • NEVPNManager用于创建和管理VPN配置并控制生成的VPN隧道连接。
    • NEVPNProtocol

      • NEVPNProtocol包含VPN配置的协议特定部分
    • NEVPNProtocolIKEv2

      • NEVPNProtocolIKEv2包含VPN配置的IKEv2特定部分。
    • NEVPNProtocolIPSec

      • NEVPNProtocolIPSec包含VPN配置的IPSec特定部分。
    • NWBonjourServiceEndpoint

      • NWBonjourServiceEndpoint包含使用Bonjour解析的网络端点的规范。
    • NWEndpoint

    • NWHostEndpoint

      • NWHostEndpoint指定使用端点的主机名或IP地址的网络端点。
    • NWPath

      • NWPath包含网络连接在设备上的可行性状态和路径的属性。
    • NWTCPConnection

      • NWTCPConnection用于建立到网络端点的TCP连接,并在建立的TCP连接上发送和接收数据。
    • NWTLSParameters

      • NWTLSParameters定义了与NWTCPConnection实例一起使用的高级TLS选项。
    • NWUDPSession

      • NWUDPSession用于建立到网络端点的UDP会话并发送和接收数据报。
    • NEDNSProxyManager

      • 管理DNS代理的对象。
    • NEDNSProxyProvider

      • DNS代理的主要类。
    • NEDNSProxyProviderProtocol

      • DNS代理提供商提供的特定于网络扩展的配置设置。
    • NEFilterReport

      • 数据提供者对流采取的行动的报告。

    2. Protocols

    • NWTCPConnectionAuthenticationDelegate
      • NWTCPConnectionAuthenticationDelegate声明了NWTCPConnection对象在其委托上调用的方法,以使它们对某些连接事件执行自定义操作。

    3. Reference

    后记

    本篇已结束,后面更精彩~~~

    相关文章

      网友评论

      • 唛扣丶憨德孙:楼主 抓紧研究啊 我好吃现成的 我的功力不行啊:dizzy_face:
        我想实现抓https包修改返回数据 不知道能不能实现啊
        刀客传奇:@唛扣丶憨德孙 可以先用别人的,人家写出来的都是很专业的,靠着自己研究出来一套很费时,有精力可以做,话说如果真可以自己研究出来一个这样的工具,阿里应该可以很多研发岗的职位都随便挑了。
        唛扣丶憨德孙:@刀客传奇 用别人的软件没有用自己舒服啊 :smile:
        刀客传奇:@唛扣丶憨德孙 我功力也不行啊,我也是在学习,这个好像有些抓包工具可以满足需求吧。
      • 帆ny:楼主辛苦,但是怎么没有后续的文章了,希望尽快更新。
        刀客传奇:谢谢支持,因为我还没来得及时间深研究呢,后续会更新~~
      • 辉过来辉过去:希望不单单是对官方文档的翻译, 多加点自己的实战经验更好
        刀客传奇:@辉过来辉过去 刚接触,后期会深入,这个我也没用过,这是在搭建这方面的结构,谢谢您的建议
      • 449a5f373022:关注 继续更新啊楼主
        刀客传奇:@程二狗 谢谢,会继续深入更新。

      本文标题:NetworkExtension框架详细解析(一) —— 基本概

      本文链接:https://www.haomeiwen.com/subject/vbvttftx.html