Tener una VPN en el mundo actual es una necesidad, y no puedo recomendar Mullvad VPN lo suficiente. Lo he estado usando durante años y estoy muy satisfecho (publicidad no pagada).
Mullvad VPN se toma en serio la privacidad, zero-knowledge, no requiere registro de correo electrónico, y puedes pagar con cripto (y aún mejor, Monero).

Clientes Mullvad
Cliente Linux: Mullvad tiene un cliente Linux que funciona genial en Fedora (y cualquier otra distro). Es simple de usar y funciona genial. Buena GUI para configuraciones normales y un cliente CLI para ajustes avanzados.
Cliente Android: Mullvad también tiene una aplicación cliente Android realmente buena (no me gusta la cárcel del ecosistema Apple), que funciona genial, simple y con todas las funciones.
Ejecutar Múltiples VPNs
Normalmente, usarías solo una VPN para todo el tráfico, sin embargo necesito usar 2 VPNs a la vez.
- Mullvad para proteger todo mi tráfico de red
- Tailscale para acceder a mis servicios privados disponibles en un VPS público. El VPS ejecuta un servidor Headscale que permite conexiones solo desde clientes Tailscale autenticados.
Usualmente, tendrías problemas ejecutando 2 VPNs simultáneamente. Una toma el control del enrutamiento, y la otra se rompe. Mullvad permite túnel dividido para que el tráfico de una aplicación específica evite la VPN y se conecte directamente, pero esto es basado en aplicaciones, lo cual no funciona con Tailscale.

Usando Tanto Mullvad como Tailscale
Investigué en línea una solución y encontré que Tailscale ofrece un complemento pagado para permitir tráfico Tailscale sobre Mullvad a través de nodos de salida, así que, decidí crear una regla simple de nftables para permitir ambas conexiones en Linux.
Cómo Funciona
La función de túnel dividido de Mullvad usa marcado de paquetes nftables. Etiqueta el tráfico excluido con:
0x00000f41para seguimiento de conexiones0x6d6f6c65para enrutamiento
Al aplicar estas marcas al tráfico Tailscale (identificado por el rango IP 100.64.0.0/10 y la marca 0x80000 de Tailscale), el kernel lo enruta fuera del túnel Mullvad. En otras palabras, conéctate vía Tailscale a cualquier servidor Headscale/Tailscale mientras usas Mullvad VPN en todo el otro tráfico.
Configuración
Crear la Configuración nftables
# Crear el directorio nftables si no existe
sudo mkdir -p /etc/nftables
# Crear archivo de configuración
sudo vim /etc/nftables/mullvad-tailscale.nft
# Contenidos de mullvad-tailscale.nft
table inet mullvad-tailscale {
chain prerouting {
type filter hook prerouting priority -100; policy accept;
# Marcar tráfico Tailscale entrante (usando la subred Tailscale predeterminada)
ip saddr 100.64.0.0/10 ct mark set 0x00000f41 meta mark set 0x6d6f6c65;
}
chain outgoing {
type route hook output priority -100; policy accept;
# Marcar tráfico saliente con la marca de Tailscale
meta mark 0x80000 ct mark set 0x00000f41 meta mark set 0x6d6f6c65;
# Marcar tráfico hacia IPs Tailscale (usando la subred Tailscale predeterminada)
ip daddr 100.64.0.0/10 ct mark set 0x00000f41 meta mark set 0x6d6f6c65;
}
}
Cargar las Reglas
sudo nft -f /etc/nftables/mullvad-tailscale.nft
Hacer los Cambios Persistentes
# Habilitar e iniciar servicio
sudo systemctl enable --now nftables
Verificar que la Tabla Está Cargada
sudo nft list table inet mullvad-tailscale
Hecho. No se necesitan reinicios.
Pruebas
Esto debería ser suficiente. No se necesita configuración compleja. El tráfico regular pasa a través de Mullvad y las conexiones Tailscale evitan Mullvad (lo que hace posible el acceso al servidor Headscale).
Cuándo Tiene Sentido Esto
Esto es útil si necesitas acceder a servicios protegidos por VPN Headscale/Tailscale mientras también necesitas enrutar todo tu tráfico a través de Mullvad VPN. Ha funcionado para mí durante muchos meses y no he tenido problemas. Así que lo comparto con el mundo.