Skip to content

VPNs, Private Relay and other filters

How Outbound coexists with VPNs, iCloud Private Relay and other content filters, and what the VPN apps trusted group does.

Outbound 1.3.0 · Updated

Outbound is a content filter, not a DNS proxy, and it has a trusted group for recognised VPN providers. When one of them stops an app, the Something not working? window is where that shows up. Use it to identify other active network extensions and connected VPNs.

Outbound identifies recognised VPN providers by their code signatures, through the “VPN apps” trusted group. It is on by default. The group covers the VPN, proxy and DNS-proxy providers installed as system extensions (Developer ID VPN providers) and as App Store app extensions inside apps in Applications. A provider is identified by the code identity its process runs under: its signing identifier and team, never its file path or hash, so an update of the VPN keeps its rule. Apple’s own providers and unsigned code are never members, and Outbound’s own filter is excluded.

The rules the group installs allow each provider to connect to any destination, in both directions. This lets recognised providers establish tunnel connections without Ask alerts for those connections. A VPN can still route or refuse traffic on its own end.

Outbound keeps the group’s membership current. It scans when the agent starts, and again whenever /Library/SystemExtensions (a system extension installed, replaced or removed) or /Applications (an App Store VPN) changes. You can see and change the group in Settings › Trusted.

When a VPN’s connection is allowed whatever its destination, as the group’s rules allow, Outbound decides it as soon as it starts, without waiting for destination details. A decision already made for an open connection is kept, so a tunnel isn’t held up or cut off while Outbound applies a change to your rules. Updating Outbound doesn’t rewrite a network filter configuration that is already set up correctly. These changes came in Outbound 1.3.0.

A VPN can switch profiles automatically. Outbound tells VPNs apart by the server they connect to, so two configurations of the same VPN app can switch to different profiles. The tunnels macOS 26 creates for its own services aren’t counted as a VPN, so they don’t change your profile.

VPN and tunnel apps can’t be given a speed limit, because they carry other apps’ connections.

A connected VPN can still refuse traffic on its own end, and it can carry your traffic somewhere else entirely. When an app fails while a VPN is up, Something not working? lists the connected VPNs macOS reports, with the suggestion to disconnect one to test.

Another network extension can be a filter too. When one is active, two filters can block the same connection, and the troubleshooting window lists the others with the suggestion to pause or quit one to test. A bundle that declares itself a content filter is never counted as a VPN app, so trusting VPN apps never gives a competing filter a pass.

iCloud Private Relay and Limit IP Address Tracking

Section titled “iCloud Private Relay and Limit IP Address Tracking”

These macOS settings route or hide some of your traffic before it leaves the Mac, and sites that block relays can fail when they are on. Outbound does not switch them; the troubleshooting window names them and links to System Settings › Network. See Apple’s own documentation for what each setting does.

Outbound’s Something not working window opened on two apps (Tailscale and Mail) with Show All, the filter’s state, and other software that can stop connections: an example content filter, a connected work VPN, and iCloud Private Relay with Limit IP Address Tracking, plus Open Network Settings
Example data.

Outbound checks whether the filter answers and whether its decision queue advances. A stalled queue or unprocessed new flows raises an issue. Open the health report and include the finding when you report a problem.

macOS itself can end up newer than the macOS release a build was tested on. In that case Outbound warns: “macOS is newer than this build’s tested version (); update Outbound before relying on filtering on this macOS release.” See After a macOS update.