← Volver al inicio

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

Paso 1. Genera directivas route en NetRoute Pro

  1. Abre el sitio web objetivo en Chrome
  2. Lanza la extensión NetRoute Pro
  3. Selecciona la plataforma OpenVPN
  4. Haz clic en Analyze Website
  5. 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
Consejo: activa optimización RIPE BGP en la extensión — genera prefijos BGP anunciados estables en lugar de IPs individuales, evitando que las rutas se rompan cuando CDNs rotan IPs. Importante: RIPE BGP devuelve todos los prefijos anunciados por el AS — para CDN multi-tenant (Cloudflare AS13335, AWS AS16509, DigitalOcean AS14061) son decenas de miles de IPs cubriendo sitios sin relación. Usa optimización BGP para AS single-tenant; mantén /24 CIDR para CDN compartidos.

Paso 2. Edita el archivo .ovpn

  1. Abre tu archivo .ovpn en un editor de texto
  2. Elimina la línea redirect-gateway def1 si está presente — esa directiva enruta todo el tráfico por la VPN y rompe el split tunneling
  3. Elimina también push "redirect-gateway def1" si aparece
  4. Pega las directivas route al final del archivo, antes de cualquier bloque <cert>, <key>, <ca> o <tls-auth>
  5. 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:

  1. Ocultar DNS al ISP usando el resolver de la VPN. Usa pull-filter selectivo en lugar de route-nopull completo — descarta sólo el redirect-gateway, conserva el push de DNS:
    pull-filter ignore "redirect-gateway"
    pull-filter accept "dhcp-option DNS"
    En Windows además añade block-outside-dns para evitar que el SO consulte el DNS del DHCP en paralelo.
  2. 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.
  3. 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:

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:

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

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.


# 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

¿Listo para probar?

NetRoute Pro — extensión gratuita de Chrome para generar rutas desde cualquier sitio web.

Instalar extensión