<!--
{
  "documentType" : "article",
  "framework" : "NetworkExtension",
  "identifier" : "/documentation/NetworkExtension/dns-proxy-provider",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "DNS proxy provider"
}
-->

# DNS proxy provider

Create an on-device DNS proxy using a custom protocol.

## Discussion

A DNS proxy provider is an app extension that implements DNS proxying. You should create a DNS proxy provider if you want to take responsibility for resolving all DNS queries on the system. Typically this involves forwarding the queries in a way that improves performance, reliability or security. For example, a DNS proxy provider might:

- Forward DNS queries to a well-known Internet-wide DNS server
- Talk to a DNS proxying service using DNS over HTTPS (DoH) or DNS over TLS (DoT)
- Implement a completely custom DNS proxying protocol

For detailed information about DNS proxy provider deployment options, see <doc://com.apple.documentation/documentation/Technotes/tn3134-network-extension-provider-deployment>.

## Topics

### Essentials

  <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.networking.networkextension>

### Provider

[`NEDNSProxyProvider`](/documentation/NetworkExtension/NEDNSProxyProvider)

The principal class for a DNS proxy provider app extension.

[`NEDNSSettings`](/documentation/NetworkExtension/NEDNSSettings)

The DNS resolver settings of a network tunnel or a system-wide configuration.

### Handling flows

[`NEAppProxyTCPFlow`](/documentation/NetworkExtension/NEAppProxyTCPFlow)

An object for reading and writing data to and from a TCP connection being proxied by the provider.

[`NEAppProxyUDPFlow`](/documentation/NetworkExtension/NEAppProxyUDPFlow)

An object for reading and writing data to and from a UDP conversation being proxied by the provider.

[`NEAppProxyFlow`](/documentation/NetworkExtension/NEAppProxyFlow)

An abstract base class shared by NEAppProxyTCPFlow and NEAppProxyUDPFlow.

### Configuration

[`NEDNSProxyManager`](/documentation/NetworkExtension/NEDNSProxyManager)

An object to create and manage an DNS proxy provider’s configuration.

[`NEDNSProxyProviderProtocol`](/documentation/NetworkExtension/NEDNSProxyProviderProtocol)

Configuration parameters for a DNS proxy.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)