Лаб. работа "Сетевые инструменты в Linux"

Лабораторная работа по теме “Сетевые инструменты в Linux”


Цель работы

Изучить основные сетевые утилиты и инструменты для диагностики сети в операционной системе Linux. Получить практические навыки работы с сетевыми командами для проверки connectivity, анализа сетевого трафика, диагностики проблем и мониторинга сетевых соединений.

Теоретические сведения

Сетевые инструменты в Linux представляют собой мощный набор утилит для работы с сетевыми протоколами, диагностики соединений и мониторинга сетевой активности. Эти инструменты используются системными администраторами, разработчиками и DevOps-инженерами для обеспечения стабильной работы сетевых сервисов.

Основные категории сетевых инструментов:

1. Диагностика connectivity:

  • ping - проверка доступности узла
  • traceroute - трассировка маршрута
  • mtr - комбинированный инструмент ping+traceroute

2. Анализ сетевых интерфейсов:

  • ifconfig - настройка сетевых интерфейсов
  • ip - современная замена ifconfig
  • netstat - статистика сетевых соединений
  • ss - современная замена netstat

3. Анализ портов и сервисов:

  • nmap - сканирование портов
  • telnet - проверка TCP соединений
  • nc (netcat) - универсальный инструмент для работы с TCP/UDP

4. Анализ трафика:

  • tcpdump - захват сетевого трафика
  • wireshark - графический анализатор трафика
  • iftop - мониторинг сетевого трафика в реальном времени

5. DNS утилиты:

  • nslookup - запросы к DNS серверам
  • dig - детальный DNS анализ
  • host - простые DNS запросы

Необходимое программное обеспечение

  1. Операционная система Linux (Ubuntu, CentOS, Debian)
  2. Терминал с доступом к интернету
  3. Права обычного пользователя (для большинства команд)
  4. Права суперпользователя (для некоторых диагностических команд)

Ход работы

Задание 1. Проверка сетевого подключения

  1. Откройте терминал и выполните команду для проверки подключения к интернету:
1ping -c 4 8.8.8.8

Объясните вывод команды. Что означают параметры -c 4?

  1. Проверьте доступность локального интерфейса:
1ping -c 3 localhost
  1. Проверьте доступность шлюза по умолчанию (замените IP на ваш шлюз):
1ip route | grep default
2ping -c 2 <IP_вашего_шлюза>

Задание 2. Трассировка маршрута

  1. Выполните трассировку до популярного сайта:
1traceroute google.com
  1. Сравните с результатом современного аналога:
1mtr google.com
  1. Проанализируйте результаты. Сколько промежуточных узлов проходит пакет до цели?

Задание 3. Анализ сетевых интерфейсов

  1. Просмотрите информацию о сетевых интерфейсах:
1ip addr show
  1. Получите информацию о маршрутизации:
1ip route show
  1. Проверьте статистику сетевых интерфейсов:
1ip -s link show

Задание 4. Анализ сетевых соединений

  1. Просмотрите все активные TCP соединения:
1ss -tuln
  1. Найдите процессы, использующие сетевые соединения:
1ss -tulnp
  1. Проверьте только установленные соединения:
1ss -tn state established

Задание 5. Работа с портами

  1. Проверьте, какие порты открыты на локальной машине:
1netstat -tuln
  1. Используйте nc для проверки конкретного порта:
1nc -zv localhost 22
2nc -zv localhost 80
  1. Проверьте доступность внешнего сервиса:
1nc -zv google.com 80

Задание 6. DNS анализ

  1. Выполните DNS запрос с помощью dig:
1dig google.com
  1. Получите только A запись:
1dig google.com A +short
  1. Проверьте MX записи для домена:
1dig google.com MX
  1. Используйте nslookup для сравнения:
1nslookup google.com

Задание 7. Сканирование портов (с осторожностью!)

ВНИМАНИЕ: Сканирование портов на чужих системах может нарушать закон. Используйте только на своих системах или с разрешения.

  1. Установите nmap (если не установлен):
1sudo apt install nmap  # для Ubuntu/Debian
2# или
3sudo yum install nmap  # для CentOS/RHEL
  1. Сканируйте порты на локальной машине:
1nmap localhost
  1. Сканируйте конкретные порты:
1nmap -p 22,80,443 localhost

Задание 8. Мониторинг сетевого трафика

  1. Установите iftop для мониторинга трафика:
1sudo apt install iftop
  1. Запустите мониторинг (требует sudo):
1sudo iftop
  1. Для анализа трафика используйте tcpdump (тоже требует sudo):
1sudo tcpdump -i any -c 10

Задания для самостоятельной работы

Задание 9. Создание сетевого скрипта

Создайте скрипт network_check.sh, который:

  1. Проверяет доступность интернета (ping до 8.8.8.8)
  2. Проверяет DNS разрешение имен
  3. Показывает активные сетевые соединения
  4. Выводит информацию о сетевых интерфейсах
 1#!/bin/bash
 2
 3echo "=== Проверка сетевого подключения ==="
 4echo "1. Ping до 8.8.8.8:"
 5ping -c 3 8.8.8.8
 6
 7echo -e "\n2. DNS разрешение:"
 8dig google.com +short
 9
10echo -e "\n3. Активные соединения:"
11ss -tuln | head -10
12
13echo -e "\n4. Сетевые интерфейсы:"
14ip addr show | grep -E "^[0-9]|inet "

Задание 10. Анализ производительности сети

  1. Измерьте скорость соединения с помощью iperf3 (если доступен):
1# На сервере (если есть)
2iperf3 -s
3
4# На клиенте
5iperf3 -c <IP_сервера>
  1. Используйте ping для измерения задержки:
1ping -c 100 google.com | tail -1

Контрольные вопросы

  1. В чем разница между командами ping и traceroute?
  2. Что показывает команда ss -tulnp?
  3. Как проверить, какие порты прослушивает конкретный процесс?
  4. В чем разница между nslookup и dig?
  5. Что означает результат команды traceroute с символами * * *?
  6. Какой инструмент лучше использовать для анализа сетевого трафика в реальном времени?
  7. Что показывает TTL в результатах ping и traceroute?
  8. Как проверить DNS серверы, которые использует ваша система?
  9. В чем разница между netstat и ss?
  10. Какой порт используется по умолчанию для HTTP и HTTPS соединений?

Дополнительные материалы

  • man ping - справочная страница ping
  • man traceroute - справочная страница traceroute
  • man ss - справочная страница ss
  • man dig - справочная страница dig
  • man nmap - справочная страница nmap
← Лаб. работа "Управление пакетами в ОС Linux" Лаб. работа "Мониторинг и анализ системы … →