Añadir rutas al config cliente de OpenVPN
OpenVPN admite directivas route por subred en el config cliente. NetRoute Pro genera estas directivas desde los dominios de cualquier sitio — añádelas a tu .ovpn y tendrás split tunneling en minutos.
Sintaxis del comando
Sintaxis:
route <NETWORK> <NETMASK>
Ejemplo:
route 1.1.1.0 255.255.255.0
Añade las directivas a tu archivo cliente .ovpn. Con route-nopull sólo estas rutas pasan por VPN. Ver el manual de OpenVPN 2.6.
Requisitos previos
- OpenVPN 2.4 o superior
- Acceso al archivo
.ovpndel cliente - Cliente OpenVPN (OpenVPN Connect, OpenVPN GUI,
openvpnCLI, Tunnelblick, etc.) - Extensión NetRoute Pro instalada en Chrome
Paso 1. Genera directivas route en NetRoute Pro
- Abre el sitio web objetivo en Chrome
- Lanza la extensión NetRoute Pro
- Selecciona la plataforma OpenVPN
- Haz clic en Analyze Website
- Copia el output generado
El formato es una directiva por línea:
route 104.21.32.0 255.255.255.0
route 172.67.0.0 255.255.0.0
route 162.159.128.0 255.255.224.0
Paso 2. Edita el archivo .ovpn
- Abre tu archivo
.ovpnen un editor de texto - Elimina la línea
redirect-gateway def1si está presente — esa directiva enruta todo el tráfico por la VPN y rompe el split tunneling - Elimina también
push "redirect-gateway def1"si aparece - Pega las directivas
routeal final del archivo, antes de cualquier bloque<cert>,<key>,<ca>o<tls-auth> - Guarda el archivo
Ejemplo de sección final del .ovpn:
remote vpn.example.com 1194
proto udp
dev tun
# redirect-gateway def1 ← eliminado
route 104.21.32.0 255.255.255.0
route 172.67.0.0 255.255.0.0
<ca>
-----BEGIN CERTIFICATE-----
...
Paso 3. Reconecta la VPN
Desconecta el túnel OpenVPN y vuelve a conectarlo para que cargue la nueva configuración. Las rutas se aplican automáticamente al establecer la conexión.
Alternativa: rutas server-side
Si administras el servidor OpenVPN, puedes empujar las rutas a todos los clientes desde el config del servidor:
push "route 104.21.32.0 255.255.255.0"
push "route 172.67.0.0 255.255.0.0"
Ventaja: no tienes que editar el .ovpn de cada cliente. Requiere reinicio del servicio del servidor.
DNS leak — lectura obligatoria
Esta guía enruta tráfico por IP. No enruta DNS. El navegador sigue preguntando al resolver del sistema (normalmente del ISP) por example.com — sólo el tráfico IP pasa por el túnel. Con route-nopull es peor: el DNS empujado por el servidor también se descarta, así que todo el DNS va al resolver por defecto.
Tres opciones, según el modelo de amenazas:
- Ocultar DNS al ISP usando el resolver de la VPN. Usa
pull-filterselectivo en lugar deroute-nopullcompleto — descarta sólo el redirect-gateway, conserva el push de DNS:
En Windows además añadepull-filter ignore "redirect-gateway" pull-filter accept "dhcp-option DNS"block-outside-dnspara evitar que el SO consulte el DNS del DHCP en paralelo. - Reducir visibilidad para el ISP (DoH/DoT público). Configura a nivel de SO un resolver público cifrado (Cloudflare 1.1.1.1, AdGuard, Quad9). El ISP deja de ver las consultas; el resolver público sí las ve.
- Aceptar la fuga. Si tu objetivo es acceder a contenido, no evitar vigilancia, está bien — sólo se cifra el tráfico.
Verifica con dnsleaktest.com o browserleaks.com/dns — el resolver mostrado debe coincidir con el que configuraste, no con el del ISP.
Fuga por IPv6 dual-stack
La directiva route es sólo IPv4. Si el destino tiene un registro AAAA (la mayoría de sitios populares lo tienen), el SO prefiere IPv6 sobre IPv4 (RFC 6724) — ese tráfico salta el túnel y sale por la ruta v6 por defecto del ISP.
Dos soluciones:
- Replica las rutas para v6 (si tu VPN soporta IPv6) usando
route-ipv6:
Para todo el tráfico v6 por el túnel: añaderoute-ipv6 2606:4700::/32 route-ipv6 2001:4860::/32redirect-gateway ipv6(o pulsa server-side). - Bloquea v6 por completo si tu VPN no tiene endpoint IPv6 — deshabilita IPv6 en el SO o añade una regla de firewall que rechace v6 saliente. De lo contrario los sitios dual-stack siguen filtrando.
Verificar
Tras reconectar, comprueba la tabla de enrutamiento:
route print # Windows
ip route # Linux
netstat -rn # macOS
Debes ver las subredes enrutadas por la interfaz tun0 (o similar).
Problemas comunes
La directiva --route es ignorada
Causas comunes:
- El servidor envía
redirect-gateway def1— sobrescribe tus líneasroutelocales (todo el tráfico pasa por la VPN). Añadepull-filter ignore "redirect-gateway"a tu config de cliente para descartar solo ese push sin perder otros. - Tus directivas
routeestán dentro de un bloque inline<cert>,<key>o similar — sácalas fuera. - Sintaxis incorrecta — la directiva usa
RED MÁSCARAen octetos, no CIDR. Usaroute 1.1.1.0 255.255.255.0, noroute 1.1.1.0/24.
Nota: route-nopull no hace que las directivas route locales sean ignoradas — solo descarta rutas enviadas por el servidor. Las líneas route locales del config cliente siguen aplicándose, que es justo lo que necesitas para split tunneling.
DNS leak en Windows
Añade al .ovpn:
block-outside-dns
Rutas añadidas pero el tráfico no va por la VPN
- Falta NAT/masquerade en la interfaz VPN del servidor — comprueba la configuración del servidor
- Firewall local bloqueando salida por
tun0 - Verifica con
tracert example.comque los primeros saltos van por la IP del gateway VPN
Error: "Options error: unrecognized option"
Versión de OpenVPN antigua. Actualiza a 2.4+.
Archivo de configuración de ejemplo
Plantilla lista para editar con comentarios. Reemplaza las rutas de ejemplo con la salida de NetRoute Pro para tus sitios.
openvpn-routes.ovpn— Fragmento de config cliente OpenVPN con directivasroute
# Example OpenVPN client config snippet for split tunneling.
# Generated by NetRoute Pro: https://alexander2k.github.io/netroute-site/
#
# Append these directives to your existing client .ovpn file. With route-nopull
# the server's pushed routes are ignored — only the explicit `route` lines below
# go through the VPN. Reconnect the client after editing.
route-nopull
# Format: route <NETWORK> <NETMASK>
# Replace these example networks with output from NetRoute Pro.
route 1.1.1.0 255.255.255.0
route 8.8.8.0 255.255.255.0
route 162.159.0.0 255.255.0.0
# Verify after reconnect: openvpn3 sessions-list (or) netstat -rn
Consejo: ¿Necesitas un config sin estas líneas de comentarios? En las opciones de NetRoute Pro desactiva «Incluir comentarios en archivos exportados» — la extensión exportará solo los comandos de rutas. Útil para routers que no toleran comentarios.
Ver todos los ejemplos en GitHub →
Documentación oficial
Guías relacionadas
- Keenetic — rutas desde archivo
.bat - MikroTik — importación de script
.rscde RouterOS - WireGuard — split tunneling con
AllowedIPs - Linux —
ip routecon script shell
¿Listo para probar?
NetRoute Pro — extensión gratuita de Chrome para generar rutas desde cualquier sitio web.
Instalar extensión