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
iproute2(preinstalado en casi todas las distros: Ubuntu, Debian, Fedora, Arch)- Acceso root/sudo
- Interfaz VPN configurada y funcional (WireGuard, OpenVPN, IKEv2, etc.)
- Extensión NetRoute Pro instalada en Chrome
Paso 1. Genera .sh en NetRoute Pro
- Abre el sitio web objetivo en Chrome
- Lanza la extensión NetRoute Pro
- Selecciona la plataforma Linux
- Introduce el gateway VPN (p.ej.
10.8.0.1) - Haz clic en Analyze Website
- Descarga
routes.sh
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
- ip-route(8) man page (en)
- systemd.network(5) (en)
- NetworkManager Dispatcher (en)
- Arch Wiki: systemd-networkd (en)
¿Listo para probar?
NetRoute Pro — extensión gratuita de Chrome para generar rutas desde cualquier sitio web.
Instalar extensión