Comando route de Linux
Referencia completa de comandos Linux
1. Resumen del comando route
El comando route es una potente herramienta del sistema Linux para ver y manipular la tabla de enrutamiento IP. Como comando básico de configuración de red, permite al administrador:
- Mostrar la información actual de la tabla de enrutamiento
- Añadir/eliminar rutas estáticas
- Modificar reglas de enrutamiento existentes
- Gestionar la ruta de transmisión de los paquetes de red
Sintaxis básica
route [选项] [操作] [目标] [命令参数]
2. Conceptos básicos de la tabla de enrutamiento
1. ¿Qué es la tabla de enrutamiento?
La tabla de enrutamiento es una estructura de datos mantenida por el núcleo del sistema operativo que determina cómo se transmiten los paquetes de red desde la dirección de origen hasta la dirección de destino. Se puede comparar con:
Un sistema de navegación de tráfico urbano: cuando quieres llegar a un destino, el sistema te indica qué camino es el más rápido y eficiente.
2. Campos clave de la tabla de enrutamiento
Medianteroute -nAl ver la tabla de enrutamiento, se muestran las siguientes columnas importantes:
| Nombre de la columna | Descripción | Valor de ejemplo |
|---|---|---|
| Destination | Red u host de destino | 192.168.1.0 |
| Gateway | Puerta de enlace de siguiente salto | 192.168.1.1 |
| Genmask | Máscara de red | 255.255.255.0 |
| Flags | Indicadores de ruta | U (ruta habilitada) |
| Metric | Costo de la ruta | 0 |
| Iface | Interfaz de salida | eth0 |
3. Operaciones comunes del comando route
1. Ver la tabla de enrutamiento
Ejemplo
route -n
# Ejemplo de salida:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
2. Añadir una ruta
Ejemplo
route add -host 192.168.1.100 dev eth0
# Añade una ruta a una red
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
# Añade la puerta de enlace predeterminada
route add default gw 192.168.1.1
3. Eliminar una ruta
Ejemplo
route del -net 192.168.2.0 netmask 255.255.255.0
# Elimina la puerta de enlace predeterminada
route del default gw 192.168.1.1
4. Explicación detallada de las opciones del comando
El comando route admite las siguientes opciones comunes:
| Opción | Descripción |
|---|---|
| -n | Muestra direcciones en formato numérico (sin resolver nombres de host) |
| -e | Muestra la tabla de enrutamiento en formato netstat |
| -v | Muestra información detallada de la operación |
| -A family | Especifica la familia de direcciones (inet, inet6, etc.) |
| -F | Muestra la tabla de enrutamiento FIB del núcleo |
| -C | Muestra la caché de rutas |
Parámetros especiales del comando:
add:Añadir rutadel:Eliminar ruta-host:Operación dirigida a un host específico-net:Operación dirigida a toda la redgw:Especifica la puerta de enlacedev:Especifica la interfaz de red
5. Escenarios de aplicación práctica
Escenario 1: Configuración de rutas con múltiples tarjetas de red
Cuando el servidor tiene múltiples interfaces de red, es necesario especificar la salida para diferentes redes:
Ejemplo
route add -net 10.0.0.0 netmask 255.255.255.0 dev eth1
Escenario 2: Configuración de rutas VPN
Después de conectarse a la VPN, es necesario añadir rutas específicas:
Ejemplo
route add -net 172.16.0.0 netmask 255.240.0.0 dev tun0
Escenario 3: Prueba temporal de rutas
Ejemplo
route add -host 8.8.8.8 gw 192.168.1.254
ping 8.8.8.8 # Comprueba si la ruta está activa
route del -host 8.8.8.8 # Elimina la ruta después de las pruebas
6. Configuración de rutas persistentes
Las rutas añadidas con el comando route se pierden tras un reinicio; para que sean permanentes:
1. Sistemas Debian/Ubuntu
Editar/etc/network/interfaces:
Ejemplo
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2
2. Sistemas RHEL/CentOS
Crear el archivo de configuración de rutas/etc/sysconfig/network-scripts/route-eth0:
10.0.0.0/8 via 192.168.1.2
7. Solución de problemas comunes
1. Pasos para comprobar por qué una ruta no funciona

2. Resolución de errores típicos
Error 1:"SIOCADDRT: Network is unreachable"
- Causa: la puerta de enlace no está en el dominio de difusión directa de la red local
- Solución: asegúrate primero de que puedes hacer ping a la dirección de la puerta de enlace
Error 2:"RTNETLINK answers: File exists"
- Causa: se intenta añadir una ruta que ya existe
- Solución: elimina primero la ruta antigua y luego añádela, o usa
replaceopción
8. Comando alternativo: ip route
En los sistemas Linux modernos se recomienda usarip routeel comando:
Ejemplo
ip route show
# Añade una ruta
ip route add 10.0.0.0/8 via 192.168.1.2
# Elimina una ruta
ip route del 10.0.0.0/8
Aunqueip routees más potente, perorouteel comando sigue siendo ampliamente utilizado por su simplicidad e intuición.
A través de esta guía, debería haber dominado los usos principales del comando route. Se recomienda practicar estos comandos en un entorno real y observar cómo los cambios de ruta afectan a la conexión de red. Cuando se encuentre con problemas de enrutamiento complejos, puede combinarlos contracerouteypingy otras herramientas para realizar un diagnóstico integral.