Domain Bypass

Domain bypass allows users to selectively route internet traffic for specific domains outside of a VPN connection. This feature provides flexibility in managing network traffic, optimizing performance, and maintaining access to certain resources that may be restricted or perform poorly when accessed through a VPN.

Understanding Domain Bypass Configuration

At its core, domain bypass is controlled through a configuration structure that specifies which domains should bypass the VPN. This configuration typically includes three main components:

  1. A boolean flag to enable or disable bypass functionality

  2. A list of domains that should bypass the VPN

  3. An optional DNS server to use for bypassed domains

For example, a basic domain bypass configuration might look like this:

let bypassConfig = BypassConfiguration(
    isBypassEnabled: false,
    bypassDomains: ["*domain1.com", "domain2.net", "domain3.org"],
    bypassDNSServer: nil
)
  • Since we do not provide default values for this initializer at the moment, you need to explicitly specify isBypassEnabled: false.

  • It's important to be aware that if you use isBypassEnabled: true, it will result in a full bypass, meaning that all traffic will be bypassed and not routed through the VPN.

The resulting BypassConfiguration instance may look like this when inspected:

{
  bypassDomains = 3 values {
    [0] = "*domain1.com"
    [1] = "domain2.net"
    [2] = "domain3.org"
  }
  bypassDNSServer = nil
  bypassDomainsBehaviour = bypass
}

The configuration also supports wildcards. In the example, *domain1.com means the domain and all its subdomains will bypass the VPN.

Use Cases

Use Case
Description

Improved Performance

For domains that don't require VPN protection, such as content delivery networks (CDNs) or local network resources, bypassing the VPN can improve network performance and reduce latency. This is especially beneficial for apps that heavily rely on media streaming or frequent communication with local devices.

Access to Local Resources

When connected to a VPN, iOS and macOS devices may have difficulty accessing resources on the local network, such as printers, smart home devices, or media servers. By bypassing the VPN for local network domains, apps can seamlessly communicate with these resources while still maintaining VPN protection for other connections.

Compliance with Regional Restrictions

Some services or content may be restricted or have different behavior based on the user's geographical location. If an app needs to access such services or content, bypassing the VPN for those specific domains allows the app to comply with regional restrictions and provide the appropriate user experience.

Compatibility with Captive Portals

Captive portals, commonly found in public Wi-Fi networks, often require users to log in or agree to terms of service before granting internet access. By bypassing the VPN for captive portal domains, apps can ensure that users can properly authenticate and access the internet when connected to such networks.

Last updated