Утилита netstat
Создана 29.11.2025
Отредактирована 02.12.2025
Отредактирована 02.12.2025
Конечно! netstat (Network Statistics) — это классическая сетевая утилита командной строки, доступная практически во всех операционных системах (Windows, Linux, macOS), которая используется для отображения разнообразной сетевой информации.
Если коротко, netstat показывает всё, что связано с сетевыми подключениями вашего компьютера (какие порты открыты).
netstat входит в пакет net-tools.
netstat входит в пакет net-tools.
Если не установлена, установить в CentOS # def install net-tools -y
Если не установлена, установить в OS семейства Debian (Ubuntu, Linux Mint и т.д. ) # sudo apt install net-tools -y
Вот основные цели использования netstat, от самых частых к более специфическим:
1. Просмотр всех установленных сетевых подключений
Это самое распространенное применение. Команда показывает, какие программы на вашем компьютере общаются с внешним миром прямо сейчас.
Что показывает:
- Протокол (TCP/UDP): По какому протоколу работает соединение.
- Локальный адрес и порт: IP-адрес вашего компьютера и порт, который используется программой.
- Внешний адрес и порт: IP-адрес и порт удаленного сервера или компьютера.
- Состояние (State): Статус соединения (например, ESTABLISHED — установлено, LISTENING — ожидает входящих подключений, CLOSE_WAIT — ожидает закрытия).
Пример использования:
netstat -an
Ключи: -a (показать всё), -n (не преобразовывать адреса и порты в имена, что ускоряет вывод).
Зачем это нужно? Чтобы найти подозрительные соединения, понять, какое приложение использует интернет-трафик, или диагностировать, соединился ли ваш клиент с нужным сервером.
2. Просмотр процессов, использующих сетевые подключения
Очень мощная функция, которая позволяет точно определить, какая программа "висит" на том или ином порту.
Пример использования:
- Windows: netstat -ano (ключ -o показывает PID — идентификатор процесса).
- Linux/macOS: netstat -tulp или sudo netstat -tulpn (ключ -p показывает имя процесса, -l — только слушающие порты).
Зачем это нужно? Если порт, который вам нужен (например, 80 для веб-сервера), занят, вы можете найти PID процесса и завершить его. Или наоборот, найти, какая программа "слушает" на незнакомом порту (возможно, вредоносная).
3. Просмотр статистики по сетевым интерфейсам и протоколам
netstat может показать общую статистику по использованию сетевых протоколов.
Пример использования:
netstat -s
Эта команда выведет огромное количество данных: количество отправленных/полученных пакетов, ошибки, сбросы соединений для протоколов TCP, UDP, ICMP и т.д.
Зачем это нужно? Для глубокой диагностики сетевых проблем. Например, большое количество ошибок TCP может указывать на проблемы с сетевым оборудованием или перегрузку канала.
4. Просмотр таблицы маршрутизации
Показывает, через какой шлюз и сетевой интерфейс будут отправляться пакеты в различные сети.
Пример использования:
netstat -r
Эта команда аналогична команде route print в Windows или route -n в Linux.
Зачем это нужно? Для диагностики проблем с доступом к другим сетям (например, к другой локальной сети или интернету).
5. Анализ multicast-рассылок (только для некоторых ОС)
Показывает членство в multicast-группах.
Практические примеры команд
- "Какие порты открыты и слушают входящие подключения?" netstat -an | findstr LISTEN (Windows) netstat -tulpn | grep LISTEN (Linux)
- "Какая программа использует порт 443?" netstat -ano | findstr :443 (Windows, найдет PID) sudo netstat -tulpn | grep :443 (Linux, найдет имя процесса)
- "Показать все установленные TCP-соединения в числовом формате" netstat -tn
| Команда | Функции команды |
| netstat -t | отображает tcp порты |
| netstat -u | отображает udp порты |
| netstat -l | отображает сокеты прослушивающего сервера |
| netstat -p | отображает PID/Название программы для сокетов |
| netstat -n | отображает ip адреса в числовом виде |
| netstat -r | отображает таблицу маршрутизации |
* более подробно о командах можно посмотреть набрав в командной строке netstat -help
Важное примечание: Современные альтернативы
Хотя netstat все еще очень распространен, во многих системах он считается устаревшим (legacy). Рекомендуется использовать более современные утилиты:
ss (Socket Statistics) — замена netstat в Linux. Быстрее и показывает больше информации.
Пример:
ss -tulpn
Get-NetTCPConnection — мощный аналог в PowerShell (Windows).
Пример:
Get-NetTCPConnection -State Listen
Итог
netstat — это швейцарский армейский нож для любого системного администратора, сетевого инженера или просто продвинутого пользователя. Она незаменима для:
- Диагностики сетевых проблем;
- Мониторинга сетевой активности;
- Обеспечения безопасности (поиск неавторизованных подключений).