Overview
Themullvad split-tunnel command manages split tunneling by excluding specific processes from the VPN tunnel. This feature is currently available on Linux only.
Note: To launch applications outside the tunnel, use the mullvad-exclude program instead of this command.
Syntax
Platform Support
Split tunneling implementation varies by platform:- Linux - Process-based split tunneling (by PID)
- macOS - Application-based split tunneling
- Windows - Application-based split tunneling
Subcommands
list
List all processes excluded from the tunnel:add
Add a process ID (PID) to exclude from the tunnel:<PID>- Process ID to exclude
delete
Remove a PID from the exclusion list:<PID>- Process ID to stop excluding
clear
Remove all processes from the exclusion list:Examples
List Excluded Processes
Add Process by PID
Find the process ID first:Remove Process from Exclusions
Clear All Exclusions
Using mullvad-exclude
The recommended way to launch applications outside the tunnel is using themullvad-exclude program:
Launch Application
Start Firefox outside the tunnel:Process Exclusion Behavior
When you exclude a process:- The process and all its child processes bypass the VPN
- Network traffic uses your normal internet connection
- The process has your real IP address
- DNS queries may use system DNS (not VPN DNS)
Process IDs and Exclusions
Finding PIDs
Find process ID by name:PID Limitations
Process IDs are temporary:- PIDs are only valid while the process is running
- When a process exits, its PID becomes invalid
- Restarting an application creates a new PID
- Excluded PIDs are automatically cleaned up when processes exit
mullvad-exclude to launch applications.
Use Cases
Exclude Specific Application
Route web browser outside VPN:Local Network Access
Exclude local services:Testing and Debugging
Compare connection with and without VPN:Performance-Sensitive Applications
Exclude applications that don’t need VPN:Security Considerations
What Gets Excluded
When you exclude a process:- ✓ Process bypasses VPN tunnel
- ✓ Uses real IP address
- ✓ Uses system DNS
- ✓ Subject to ISP monitoring
- ✓ Not protected by VPN encryption
What Stays Protected
All other processes:- ✓ Route through VPN
- ✓ Use VPN IP address
- ✓ Use VPN DNS
- ✓ Protected by VPN encryption
Privacy Warning
Excluded processes expose your real IP address and are not protected by the VPN. Only exclude processes when necessary.Related Commands
Exit Status
| Code | Description |
|---|---|
| 0 | Command executed successfully |
| 1 | Invalid PID or operation failed |
Notes
- Split tunneling is implemented differently on each platform (see platform docs)
- On Linux, split tunneling works by process ID
- Use
mullvad-excludefor persistent exclusions - Excluded processes are not protected by VPN encryption
- PIDs are automatically cleaned up when processes exit
- Child processes of excluded processes are also excluded
Source Reference
Implementation:mullvad-cli/src/cmds/split_tunnel/linux.rs