Команда route в 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: Настройка маршрутов для нескольких сетевых интерфейсов
Когда на сервере несколько сетевых интерфейсов, необходимо указать исходящий интерфейс для разных сетей:
Пример
route add -net 10.0.0.0 netmask 255.255.255.0 dev eth1
Сценарий 2: Настройка маршрутов 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:
Пример
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