Команда route в Linux

Linux 命令大全Справочник команд Linux


1. Обзор команды route

Команда route — мощный инструмент в системах Linux для просмотра и изменения таблицы IP-маршрутизации. Как базовая команда для настройки сети, она позволяет администраторам:

  • Отображать текущую информацию о таблице маршрутизации
  • Добавлять/удалять статические маршруты
  • Изменять существующие правила маршрутизации
  • Управлять путём передачи сетевых пакетов

Базовый синтаксис

route [选项] [操作] [目标] [命令参数]

2. Основные понятия таблицы маршрутизации

1. Что такое таблица маршрутизации

Таблица маршрутизации — это структура данных, поддерживаемая ядром операционной системы, которая определяет, как сетевые пакеты передаются от исходного адреса к адресу назначения. Её можно сравнить с:

"Городская система навигации по дорожному движению: когда вы хотите добраться до пункта назначения, система подсказывает, какой маршрут выбрать — самый быстрый и эффективный"

2. Ключевые поля таблицы маршрутизации

Черезroute -nПри просмотре таблицы маршрутизации отображаются следующие важные столбцы:

Имя столбца Описание Пример значения
Назначение Сеть или узел назначения 192.168.1.0
Шлюз Шлюз следующего перехода 192.168.1.1
Genmask Маска сети 255.255.255.0
Флаги Флаги маршрута U (маршрут включен)
Метрика Стоимость маршрута 0
Iface Исходящий интерфейс eth0

3. Общие операции команды route

1. Просмотр таблицы маршрутизации

Пример

# Отобразить полную таблицу маршрутизации (без разрешения имён хостов)
route -n

# Пример вывода:
Таблица IP-маршрутизации ядра
Назначение Шлюз Маска Флаги Метрика Ссылка Использование 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. Добавление маршрута

Пример

# Добавить маршрут к конкретному хосту
route add -host 192.168.1.100 dev eth0

# Добавить маршрут к сети
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1

# Добавить шлюз по умолчанию
route add default gw 192.168.1.1

3. Удаление маршрута

Пример

# Удалить конкретный маршрут
route del -net 192.168.2.0 netmask 255.255.255.0

# Удалить шлюз по умолчанию
route del default gw 192.168.1.1

4. Подробное объяснение параметров команды

Команда route поддерживает следующие распространённые параметры:

Опция Описание
-n Отображать адреса в числовой форме (не разрешать имена хостов)
-e Отображать таблицу маршрутизации в формате netstat
-v Отображать подробную информацию об операции
-A family Указать семейство адресов (inet, inet6 и т. д.)
-F Отображать таблицу маршрутизации FIB ядра
-C Отображать кэш маршрутов

Специальные параметры команды:

  • add: Добавить маршрут
  • del: Удалить маршрут
  • -host: Операция применяется к конкретному хосту
  • -net: Операция применяется ко всей сети
  • gw: Указать шлюз
  • dev: Укажите сетевой интерфейс

5. Практические сценарии применения

Сценарий 1: Настройка маршрутов для нескольких сетевых интерфейсов

Когда на сервере несколько сетевых интерфейсов, необходимо указать исходящий интерфейс для разных сетей:

Пример

# Направлять трафик, предназначенный для 10.0.0.0/24, через интерфейс eth1
route add -net 10.0.0.0 netmask 255.255.255.0 dev eth1

Сценарий 2: Настройка маршрутов VPN

После подключения к VPN необходимо добавить конкретные маршруты:

Пример

# Пропускать только конкретную подсеть через VPN-туннель
route add -net 172.16.0.0 netmask 255.240.0.0 dev tun0

Сценарий 3: Тестирование временного маршрута

Пример

# Временно добавить маршрут для тестирования (будет потерян после перезагрузки)
route add -host 8.8.8.8 gw 192.168.1.254
ping 8.8.8.8  # Проверьте, работает ли маршрут
route del -host 8.8.8.8  # Удалить после завершения тестирования

6. Конфигурация постоянных маршрутов

Маршруты, добавленные с помощью команды route, будут потеряны после перезагрузки. Чтобы они действовали постоянно:

1. Системы Debian/Ubuntu

Правка/etc/network/interfaces:

Пример

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. Системы RHEL/CentOS

Создайте файл конфигурации маршрута/etc/sysconfig/network-scripts/route-eth0:

10.0.0.0/8 via 192.168.1.2

7. Устранение распространённых проблем

1. Шаги проверки, если маршрут не работает

2. Устранение типичных ошибок

Ошибка 1:"SIOCADDRT: Network is unreachable"

  • Причина: шлюз не входит в прямой широковещательный домен локальной сети
  • Решение: сначала убедитесь, что адрес шлюза пингуется

Ошибка 2:"RTNETLINK answers: File exists"

  • Причина: попытка добавить уже существующий маршрут
  • Решение: сначала удалите старый маршрут, а затем добавьте его, или используйтеreplaceoption

8. Альтернативная команда: ip route

Современные системы Linux рекомендуют использоватьip routeкоманда:

Пример

# Показать таблицу маршрутизации
ip route show

# Добавить маршрут
ip route add 10.0.0.0/8 via 192.168.1.2

# Удалить маршрут
ip route del 10.0.0.0/8

Хотяip routeявляется более мощной, ноrouteкоманда по-прежнему широко используется, потому что она проста и интуитивно понятна.


Из этого руководства вы должны были освоить основное использование команды route. Рекомендуется чаще практиковать эти команды в реальной среде и наблюдать влияние изменений маршрутов на сетевые подключения. При возникновении сложных проблем маршрутизации вы можете сочетать их сtracerouteиpingи другими инструментами для комплексной диагностики.

Linux 命令大全Справочник команд Linux

Другие расширения