Framework
NetworkExtension
Configure VPN tunnels. Customize and extend core networking features.
Overview
The Network Extension framework contains APIs that can be used to customize and extend the core networking features of iOS and macOS.
Network Extension Hotspot Entitlements
Personal VPN
The NEVPNManager API gives apps the ability to create and manage a Personal VPN configuration on iOS and macOS. Personal VPN configurations are typically used to provide a service to users that protects their Internet browsing activity on insecure networks such as public Wi-Fi networks.
About Always-on VPN
iOS supports Always-on VPN to ensure all IP traffic is tunneled back to the organization. See the iOS Deployment Reference for information about how to configure Always-on VPN.
Network Tunneling Protocol Client
You can use the NETunnelProvider family of APIs to connect iOS and macOS devices to a VPN server that uses a non-standard network tunneling protocol, such as an SSL-VPN server.
The NETunnelProvider family of APIs gives apps the ability to implement the client side of a custom network tunneling protocol, called a Tunnel Provider. The Tunnel Provider runs as an app extension. The NETunnelProvider family of APIs also contains the following classes, which are used to configure and control the Tunnel Provider:
On-Device Network Content Filter
The NEFilterProvider API gives apps the ability to dynamically filter network content on iOS devices. Apps can use the following classes in school environments to protect students as they browse the Internet using school-owned devices:
Wi-Fi Hotspot Authentication and Configuration
The NEHotspotHelper API gives your app the ability to perform custom authentication for Wi-Fi Hotspots. It gives users a way to seamlessly connect to a large aggregated network of Wi-Fi Hotspots. The NEHotspotConfiguration API lets your app configure those hotspots.
Topics
Classes
class NEAppProxyTCPFlowNEAppProxyTCPFlow is used to read data from and write data to a TCP socket that is being proxied by an App Proxy Provider.
class NEAppProxyUDPFlowNEAppProxyUDPFlow is used to read data from and write data to a UDP socket that is being proxied by an App Proxy Provider.
class NEAppRuleNEAppRule contains the match conditions for a rule that is used to match network connections based on a source app.
class NEFilterBrowserFlowNEFilterBrowserFlow contains details about a flow of network data which originated from a WebKit browser object.
class NEFilterDataVerdictNEFilterDataVerdict contains the decision that a Filter Data Provider makes about a chunk of network data.
class NEFilterFlowA representation of the flow of network data being examined by a filter provider.
class NEFilterManagerCreate and manage network content filter configurations and to control network content filters.
class NEFilterNewFlowVerdictNEFilterNewFlowVerdict contains the decision that a Filter Provider makes about a flow of network data that the Filter Provider has just seen for the first time.
class NEFilterProviderThe base class for the two Filter Provider extension principal classes that work together to make a complete on-device network content filtering system.
class NEFilterRemediationVerdictNEFilterRemediationVerdict contains the decision that Filter Data Provider makes about a flow of network data after the user has requested access to the network data.
class NEFilterSocketFlowNEFilterSocketFlow contains details about a flow of network data which originated from a socket.
class NEFlowMetaDataNEFlowMetaData contains additional information about a flow of network data beyond the flow’s local and remote network endpoints.
class NEHotspotEAPSettingsExtensible Authentication Protocol (EAP) settings for configuring WPA and WPA2 enterprise Wi-Fi networks.
class NEIPv4SettingsNEIPv4Settings contains the Internet Protocol version 4 (IPv4) settings of a IP layer network tunnel.
class NEIPv6SettingsNEIPv6Settings contains the Internet Protocol version 6 (IPv6) settings of a IP layer network tunnel.
class NEProviderNEProvider is the base class for all Network Extension Provider classes.
class NETunnelProviderCreate a principal class for Network Extension Provider app extensions that implement the client-side of a custom network tunneling protocol.
class NETunnelProviderSessionNETunnelProviderSession is used to control a network tunnel connection, and to introspect the status of a tunnel connection.
class NEVPNConnectionNEVPNConnection is used to control a VPN connection and to introspect the status of a VPN connection.
class NEVPNManagerNEVPNManager is used to create and manage VPN configurations and to control the resulting VPN tunnel connections.
class NWHostEndpointNWHostEndpoint specifies a network endpoint using the endpoint’s host name or IP address.
class NWPathNWPath contains the viability status and the properties of the path that a network connection will take on a device.
class NWTCPConnectionNWTCPConnection is used to establish TCP connections to a network endpoint and to send and receive data on the established TCP connection.
class NWTLSParametersNWTLSParameters defines advanced TLS options to be used with NWTCPConnection instances.
class NWUDPSessionNWUDPSession is used to establish UDP sessions to a network endpoint and send and receive datagrams.