Skip to main content

Daemon Environment Variables

These environment variables control the behavior of the Mullvad VPN daemon.

Firewall Configuration

TALPID_FIREWALL_DEBUG

Helps debug firewall rules. Behavior varies by platform:
Set to "1" to add packet counters to all firewall rules.

TALPID_FIREWALL_DONT_SET_SRC_VALID_MARK

Set to 1 to prevent the daemon from setting the net.ipv4.conf.all.src_valid_mark kernel parameter on Linux.
By default, the daemon sets this kernel parameter to 1 to prevent strict reverse path filtering from blocking relay traffic. Only disable if you understand the implications.

TALPID_FIREWALL_DONT_SET_ARP_IGNORE

Set to 1 to prevent the daemon from setting the net.ipv4.conf.all.arp_ignore kernel parameter on Linux.
By default, this parameter is set to 2 to prevent attackers from discovering the in-tunnel IP via ARP requests. Only disable for testing purposes.

DNS Configuration

TALPID_DNS_MODULE

Override the automatic DNS configuration method detection.
Available options:
  • "static-file" - Modify /etc/resolv.conf directly
  • "resolvconf" - Use the resolvconf program
  • "systemd" - Use systemd’s resolved service via DBus
  • "network-manager" - Use NetworkManager via DBus

TALPID_DISABLE_LOCAL_DNS_RESOLVER

Set to 1 to disable the local DNS resolver (macOS only).

TALPID_NEVER_FILTER_AAAA_QUERIES

Set to 1 to never ignore DNS AAAA queries (macOS only).

WireGuard Configuration

TALPID_FORCE_USERSPACE_WIREGUARD

Forces the daemon to use the userspace implementation of WireGuard instead of the kernel module.

Network Monitoring

TALPID_DISABLE_OFFLINE_MONITOR

Forces the daemon to always assume the host is online, disabling network connectivity checks.

Split Tunneling (Linux)

TALPID_CGROUP2_FS

Forces the daemon to look for the cgroup2 filesystem at a custom path instead of /sys/fs/cgroup.

TALPID_NET_CLS_MOUNT_DIR

Forces the daemon to mount the net_cls controller in a specific directory (cgroup v1 systems only).

Access Control

MULLVAD_MANAGEMENT_SOCKET_GROUP

Restricts access to the management interface socket to users in a specific group (Linux and macOS only).
By default, everyone has access to the management socket. Use this variable to restrict CLI and GUI access.

Debugging

MULLVAD_BACKTRACE_ON_FAULT

Controls whether the daemon logs a backtrace when encountering a fault (e.g., SIGSEGV).
  • 1 - Enable backtrace logging
  • 0 - Disable backtrace logging
  • Default: Enabled in debug builds, disabled in release builds
Backtrace logging causes heap allocation in the signal handler, which is technically undefined behavior. Enable at your own risk.

File Paths

These environment variables override default file and directory locations:

MULLVAD_SETTINGS_DIR

Customize the settings directory location.

MULLVAD_LOG_DIR

Customize the log directory location.

MULLVAD_CACHE_DIR

Customize the cache directory location.

MULLVAD_RPC_SOCKET_PATH

Customize the full path to the RPC socket.
See File Paths for default locations.

Development-Only Variables

These variables only work in development builds and are ignored in release builds.

MULLVAD_API_HOST

Set the hostname for API requests.

MULLVAD_API_ADDR

Set the IP address and port for API requests.

MULLVAD_API_DISABLE_TLS

Use plain HTTP for API requests instead of HTTPS.

MULLVAD_CONNCHECK_HOST

Set the hostname for connection check requests.

MULLVAD_ENABLE_DEV_UPDATES

Enable version checks in development builds.

Desktop Frontend Variables

These variables control the Electron desktop application.

MULLVAD_PATH

Customize the path to the mullvad-problem-report tool when running in development mode.
Defaults to <repo>/target/debug/.

MULLVAD_DISABLE_UPDATE_NOTIFICATION

Set to 1 to disable notifications when updates are available.

Setting Environment Variables

The method for setting environment variables varies by platform:
Use setx from an elevated command prompt:
Restart the daemon for changes to take effect: