JavaRush /Курсы /Docker SELF /Настройка маршрутов: команды `ip route`, `netstat`, `ss`

Настройка маршрутов: команды `ip route`, `netstat`, `ss`

Docker SELF
4 уровень , 1 лекция
Открыта

1. Понятие маршрутизации

Сегодня мы погружаемся еще глубже: будем настраивать маршруты, анализировать сетевые соединения и разбираться с портами. Здесь начинается настоящая магия сетевого администрирования – разберёмся, куда и как бегают пакеты, и почему в этом вопросе важно быть "главным по маршрутам".

Маршрутизация – это не просто звучащая сложно штука, это основа основ современной сети. Представьте себе: ваш компьютер – это турист, который хочет попасть в другой компьютер (гостиницу), а маршруты – это дороги и указатели. Если маршрутов нет, турист будет блуждать, спрашивать дорогу у прохожих (а прохожие могут быть DNS-серверами, но не об этом сейчас) или вообще останется дома.

Зачем нужны маршруты

Каждому устройству в сети необходимо знать, как добраться до других устройств. Например, если ваш компьютер хочет отправить запрос к сайту example.com, он должен знать:

  1. Куда отправлять пакеты.
  2. Через какой шлюз или интерфейс это сделать.

Маршруты бывают двух типов:

  • Локальные маршруты: указания для устройств в вашей подсети (например, ваш компьютер и принтер).
  • Внешние маршруты: указания для устройств за пределами вашей подсети (например, для ресурса в интернете).

2. Таблица маршрутизации

Таблица маршрутизации – это таблица с правилами, которые определяют, куда отправлять пакеты на основе IP-адресов. Это словно Google Maps для вашего компьютера: "Если хочешь попасть туда, иди через этот шлюз".

Попробуйте вывести свою таблицу маршрутов:

ip route show

Образец вывода:

default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100

Что это значит:

  • default via 192.168.1.1: если пакету не указано, куда конкретно идти, отправляй его через шлюз с адресом 192.168.1.1.
  • dev eth0: используем интерфейс eth0.
  • 192.168.1.0/24: это маршрут для всей подсети 192.168.1.0/24. Пакеты остаются "дома" в локальной сети.
  • proto и metric – дополнительные параметры, о них чуть позже.

3. Команда ip route

Просмотр маршрутов

Для просмотра таблицы маршрутизации мы уже использовали ip route show. Можно добавить фильтры, например, для определения маршрута только для локальной сети:

ip route show match 192.168.1.0/24

Добавление маршрутов

Вы можете добавить статический маршрут – это как если сами поставите дорожный знак. Например, чтобы перенаправить все запросы к подсети 10.0.0.0/24 через определённый шлюз:

sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0

Разберём:

  • 10.0.0.0/24 – подсеть назначения.
  • via 192.168.1.1 – шлюз, через который отправляются пакеты.
  • dev eth0 – интерфейс, через который пакеты уходят.

Удаление маршрутов

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

sudo ip route del 10.0.0.0/24

4. Практика: Настройка статического маршрута

  1. Убедитесь, что у вас есть доступ к другой подсети.
  2. Добавьте маршрут:
sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
  1. Проверьте таблицу маршрутивизации:
ip route show
  1. Удалите маршрут, если он больше не нужен.

5. Команда netstat

Когда дело доходит до анализа текущих соединений, netstat – это старый добрый друг системного администратора (хотя ему уже есть более современная альтернатива – ss, о которой поговорим позже).

Проверка активных подключений

netstat -tun

Что это значит:

  • -t – показываем TCP-соединения.
  • -u – показываем UDP-соединения.
  • -n – использовать числовые адреса (вместо имен хостов).

Пример вывода:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 192.168.1.100:22        192.168.1.50:50240      ESTABLISHED

Что это значит:

  • Локальный адрес 192.168.1.100:22 – это ваш компьютер слушает порт 22 (SSH).
  • Удалённый адрес 192.168.1.50:50240 – это удалённый хост, который подключён к вашему порту.
  • ESTABLISHED – это активное соединение, данные передаются.

Прослушивание портов

Чтобы увидеть, какие порты "слушают" на вашем компьютере:

netstat -ltn

Флаг -l показывает только прослушиваемые порты, а -t и -n мы уже обсудили.


6. Команда ss

Если netstat – динозавр, то ss – это машина ДеЛориан из будущего: работает быстрее и даёт больше информации.

Проверка активных соединений

ss -tun

Пример вывода аналогичен netstat, но с большей скоростью и детализацией.

Прослушивание портов

ss -tln

Всё то же, что и с netstat, но работать с ss удобнее и современнее.


7. Мониторинг соединений

  1. Используйте netstat или ss, чтобы посмотреть, какие порты слушает ваш компьютер.
  2. Откройте SSH-соединение на другом устройстве и проверьте, появляется ли оно в списке соединений.
  3. Попробуйте интерпретировать вывод команд.

Мы погрузились в мир маршрутизации и мониторинга соединений: теперь вы можете использовать ip route, чтобы управлять таблицей маршрутов, и netstat/ss для анализа сетевых соединений. Эти инструменты – ваш швейцарский нож для решения самых запутанных сетевых проблем. Хотите помочь другу, который жалуется, что "интернет не работает"? Вытягивайте свои новые навыки и покажите класс!

На следующей лекции будет ещё интереснее: будем разбираться с DNS и его магией. А пока – потренируйтесь с ip route и зацените, как пакеты находят свой путь домой.

1
Задача
Docker SELF, 4 уровень, 1 лекция
Недоступна
Просмотр таблицы маршрутизации
Просмотр таблицы маршрутизации
1
Задача
Docker SELF, 4 уровень, 1 лекция
Недоступна
Добавление маршрута
Добавление маршрута
1
Задача
Docker SELF, 4 уровень, 1 лекция
Недоступна
Анализ активных соединений
Анализ активных соединений
1
Задача
Docker SELF, 4 уровень, 1 лекция
Недоступна
Удаление маршрута и мониторинг портов
Удаление маршрута и мониторинг портов
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Slevin Уровень 35
25 сентября 2025
Ничерта не понятно, но хотя бы задачи работают.
Anonymous #3268884 Уровень 24
30 марта 2025
не понял ни слова. что такое маршруты? что такое шлюзы?
Иван Румянцев Уровень 23
11 марта 2025
В лекции в примере удаление маршрута нету добавочного via , в задаче же оно требуется.