← Volver al inicio

Añadir rutas en Linux mediante script .sh

NetRoute Pro genera un script Bash simple con comandos ip route add. Se aplica con un solo comando. Hacer las rutas persistentes entre reinicios requiere un paso extra según tu distribución.

Requisitos previos

Paso 1. Genera .sh en NetRoute Pro

  1. Abre el sitio web objetivo en Chrome
  2. Lanza la extensión NetRoute Pro
  3. Selecciona la plataforma Linux
  4. Introduce el gateway VPN (p.ej. 10.8.0.1)
  5. Haz clic en Analyze Website
  6. Descarga routes.sh
Consejo: activa optimización RIPE BGP en la extensión — agrupa IPs individuales en prefijos BGP reales, dando rutas estables aunque el CDN rote IPs.

Paso 2. Aplica el script

chmod +x routes.sh
sudo bash routes.sh

El script añade todas las rutas al kernel en una sola pasada. Las rutas son inmediatamente efectivas.

Paso 3. Haz las rutas persistentes

Las rutas añadidas con ip route add se pierden al reiniciar. Elige una opción según tu distribución:

systemd-networkd

Crea un drop-in para la interfaz VPN:

sudo mkdir -p /etc/systemd/network/10-vpn.network.d
sudo nano /etc/systemd/network/10-vpn.network.d/routes.conf

Contenido del archivo (repite el bloque [Route] por cada subred):

[Route]
Destination=104.21.32.0/24
Gateway=10.8.0.1

[Route]
Destination=172.67.0.0/16
Gateway=10.8.0.1

Aplicar:

sudo systemctl restart systemd-networkd

NetworkManager dispatcher

Crea un script dispatcher que se ejecuta cuando la interfaz VPN sube:

sudo nano /etc/NetworkManager/dispatcher.d/99-vpn-routes
sudo chmod +x /etc/NetworkManager/dispatcher.d/99-vpn-routes

Contenido:

#!/bin/bash
# $1 = nombre de interfaz, $2 = acción
if [ "$1" = "wg0" ] && [ "$2" = "up" ]; then
    ip route add 104.21.32.0/24 via 10.8.0.1
    ip route add 172.67.0.0/16 via 10.8.0.1
fi

Ajusta wg0 al nombre real de tu interfaz VPN.

@reboot cron

Opción más simple y universal — funciona en cualquier distro:

sudo mv routes.sh /usr/local/bin/routes.sh
sudo chmod +x /usr/local/bin/routes.sh
sudo crontab -e

Añade la línea:

@reboot /usr/local/bin/routes.sh

Verificar

ip route show | grep 10.8.0.1

Debes ver todas las subredes enrutadas por tu gateway VPN. Prueba con traceroute:

traceroute example.com

Revertir

Para eliminar las rutas, genera un script inverso reemplazando add por del y ejecútalo, o reinicia el sistema si no las hiciste persistentes.

Problemas comunes

Network is unreachable

La interfaz VPN no está activa. Comprueba con ip link show que tu interfaz VPN (p.ej. wg0, tun0) está UP. Activa la VPN antes de aplicar rutas.

RTNETLINK answers: File exists

La ruta ya existe en la tabla. Elimínala primero con ip route del <destino> y vuelve a ejecutar el script, o edita el script para usar ip route replace.

Permission denied

Necesitas privilegios root. Ejecuta con sudo.

Las rutas no se aplican tras reiniciar

No configuraste persistencia. Elige una de las tres opciones del Paso 3.

Documentación oficial

¿Listo para probar?

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

Instalar extensión