Supported Operating Systems
Windows
- Windows 10
- Windows 11
macOS
- The three latest major releases
Linux
| Distribution | Supported Versions |
|---|---|
| Ubuntu | The two latest LTS releases and the latest non-LTS releases |
| Fedora | Versions not yet EOL |
| Debian | 12 and newer |
Linux testing is performed using the Gnome desktop environment. Other desktop environments should work but are not regularly tested.
Architecture
The desktop application consists of three main components:System Service (mullvad-daemon)
The core VPN service that runs with system privileges:- Location: Runs as a system service/daemon
- Privileges: Requires administrator/root access
- Always Running: Operates continuously in the background, even when GUI is closed
- Management Interface: Exposes control via Unix domain sockets (Linux/macOS) or named pipes (Windows)
- Responsibilities:
- Tunnel management
- Firewall rule configuration
- DNS settings management
- Kill switch enforcement
- API communication
Graphical User Interface (GUI)
An Electron-based desktop application:- Technology: Built with Electron + React
- Security: Only loads local resources, never remote content
- Communication: Connects exclusively to
mullvad-daemonvia management interface - Per-User Settings: Stores GUI preferences separately for each user
- Location:
- Linux:
$XDG_CONFIG_HOME/Mullvad VPN/gui_settings.json - macOS:
~/Library/Application Support/Mullvad VPN/gui_settings.json - Windows:
%LOCALAPPDATA%\Mullvad VPN\gui_settings.json
- Linux:
Command-Line Interface (CLI)
A Rust-based terminal interface:- Binary Name:
mullvad - Full Control: Access to all daemon functionality
- Automation: Ideal for scripts and automation
- See: CLI documentation for complete reference
Installation
Windows
- Download the installer from mullvad.net/download
- Run the
.exeinstaller - The installer will:
- Install the system service
- Configure Windows Firewall Integration (WFP)
- Create Start Menu shortcuts
- Set up auto-start (optional)
macOS
- Download the
.pkginstaller from mullvad.net/download - Open and run the installer package
- The installer will:
- Install the system service as a LaunchDaemon
- Configure Packet Filter (PF) integration
- Install the application to
/Applications
Linux
Debian/Ubuntu
Fedora
Arch Linux
Available in the AUR:- Systemd service:
mullvad-daemon.service - nftables firewall integration
- Desktop entry for application menu
Features
Firewall Integration
Desktop platforms have direct firewall access for maximum security:- Windows: Windows Filtering Platform (WFP)
- macOS: Packet Filter (PF)
- Linux: nftables
Kill Switch
Always-on kill switch prevents leaks:- Automatic: Enabled by default, cannot be disabled
- Blocks All Traffic: When connecting, disconnecting, or in error state
- No Leak Windows: Atomic firewall transactions prevent gaps
- See: Security documentation for details
Lockdown Mode
Blocks all network access when disconnected:- Purpose: Ensures device can only communicate via VPN
- Setting: Enable in app settings
- Effect: Applies firewall rules even in disconnected state
Split Tunneling
Allow specific applications to bypass the VPN:- Platform Support: Windows, macOS, and Linux
- Use Cases:
- Local network services
- Applications requiring direct internet access
- Performance-sensitive applications
- Configuration: Available in app settings or via CLI
Custom DNS
Configure custom DNS servers:- Default: Uses VPN server’s DNS
- Custom Options:
- Custom DNS servers (through tunnel)
- DNS content blocking (ads, trackers, malware)
- Leak Protection: DNS queries always go through tunnel
Local Network Sharing
Allow access to local network devices:- When Enabled: Traffic to private IP ranges is allowed
- Use Cases:
- Printers
- File shares
- IoT devices
- IP Ranges:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16, link-local addresses
WireGuard Features
All desktop platforms support advanced WireGuard features:- Multihop: Route through two VPN servers
- Quantum-Resistant: Post-quantum cryptography support
- Transport Options: TCP, Shadowsocks, QUIC obfuscation
- DAITA: Defense Against AI-Guided Traffic Analysis
- LWO: Lightweight WireGuard Obfuscation
System Service Management
Windows
Manage via Services or command line:macOS
Manage via launchctl:Linux
Manage via systemd:File Locations
Settings
| Platform | Path |
|---|---|
| Linux | /etc/mullvad-vpn/ |
| macOS | /etc/mullvad-vpn/ |
| Windows | %LOCALAPPDATA%\Mullvad VPN\ |
Logs
| Platform | Path |
|---|---|
| Linux | /var/log/mullvad-vpn/ + systemd journal |
| macOS | /var/log/mullvad-vpn/ |
| Windows | C:\ProgramData\Mullvad VPN\ |
Cache
| Platform | Path |
|---|---|
| Linux | /var/cache/mullvad-vpn/ |
| macOS | /Library/Caches/mullvad-vpn/ |
| Windows | C:\ProgramData\Mullvad VPN\cache |
Tray Icon (Linux)
The tray icon may require additional setup on some Linux desktop environments:GNOME
Install the AppIndicator extension:- Visit GNOME Extensions
- Install “AppIndicator and KStatusNotifierItem Support”
Other Desktop Environments
Install one of these packages:libappindicator3-1libappindicator1libappindicator
Environment Variables
The daemon supports several environment variables for advanced configuration:Common Variables
TALPID_FORCE_USERSPACE_WIREGUARD: Force userspace WireGuard implementationTALPID_DISABLE_OFFLINE_MONITOR: Always assume host is onlineMULLVAD_MANAGEMENT_SOCKET_GROUP: (Linux/macOS) Restrict management interface access to specific group
Setting Environment Variables
Windows
Linux
macOS
Troubleshooting
Connection Issues
- Check daemon status using system service commands
- Review logs in the log directory for your platform
- Try connecting via CLI:
mullvad connect - Check firewall rules aren’t conflicting
Firewall Issues
If experiencing network issues:- Windows: Ensure WFP isn’t blocked by other security software
- macOS: Check PF isn’t disabled or conflicting with other rules
- Linux: Verify nftables is installed and no conflicting iptables rules exist
GUI Not Connecting
If GUI cannot connect to daemon:- Ensure daemon service is running
- Check management interface socket/pipe permissions
- Verify no other security software is blocking communication
Next Steps
CLI Reference
Learn to use the command-line interface
Security Architecture
Understand the security model
Troubleshooting
Common issues and solutions
Settings
Configure advanced settings