Comando route de Linux

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

# Muestra la tabla de enrutamiento completa (sin resolver nombres de host)
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

# Añade una ruta a un host específico
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

# Elimina una ruta específica
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 ruta
  • del:Eliminar ruta
  • -host:Operación dirigida a un host específico
  • -net:Operación dirigida a toda la red
  • gw:Especifica la puerta de enlace
  • dev: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

# Hace que los datos destinados a 10.0.0.0/24 salgan por la interfaz eth1
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

# Solo permite que un segmento de red específico pase por el túnel VPN
route add -net 172.16.0.0 netmask 255.240.0.0 dev tun0

Escenario 3: Prueba temporal de rutas

Ejemplo

# Añade temporalmente una ruta para realizar pruebas (se pierde al reiniciar)
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

auto eth0
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 usareplaceopción

8. Comando alternativo: ip route

En los sistemas Linux modernos se recomienda usarip routeel comando:

Ejemplo

# Muestra la tabla de enrutamiento
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.

Linux 命令大全Referencia completa de comandos Linux

Otras extensiones