Что такое netstat и как им проверить открытые порты

4 минуты чтения
Средний рейтинг статьи — 4.8

netstat — это мощная консольная утилита, предназначенная для мониторинга сетевых подключений, таблиц маршрутизации, интерфейсов и статистики. Она часто используется системными администраторами и разработчиками для диагностики сетевых проблем и аудита безопасности.

В этой статье мы разберём, как использовать netstat для проверки открытых портов, узнаем ключевые флаги и приведём практические примеры.

Что делает netstat

netstat расшифровывается как network statistics. Она отображает информацию о:

  • Активных подключениях TCP/UDP
  • Портах, на которых "слушают" процессы
  • Статистике интерфейсов
  • Таблицах маршрутизации
  • Использовании сокетов

⚠️ В некоторых дистрибутивах Linux netstat считается устаревшей, и её заменяет команда ss, но netstat всё ещё широко используется и полезна.

Установка

На большинстве Linux-систем netstat входит в пакет net-tools. Если он не установлен:

sudo apt install net-tools      # Debian/Ubuntu
sudo yum install net-tools      # CentOS/RHEL

Проверка открытых портов

Чтобы узнать, какие порты в данный момент открыты и на них слушает процесс:

sudo netstat -tuln

Расшифровка флагов:

  • -t — TCP
  • -u — UDP
  • -l — только "слушающие" (listening)
  • -n — выводить адреса и порты в числовом виде

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

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
udp        0      0 0.0.0.0:68              0.0.0.0:*

Здесь видно, что SSH слушает порт 22, HTTP — порт 80, а также активен DHCP (порт 68/UDP).

Кто использует порт?

Чтобы узнать, какой процесс использует порт, добавьте флаг -p:

sudo netstat -tulnp

Пример:

tcp6       0      0 :::80       :::*       LISTEN      1453/nginx: master

Полезно, если вы подозреваете, что какой-то порт открыт "не тем" процессом.

Активные подключения

Чтобы посмотреть все активные подключения (не только listening):

netstat -ant

Это покажет список всех TCP-подключений, включая состояние (ESTABLISHED, TIME_WAIT и т.д.).

Вывод сетевой статистики

netstat -s

Покажет сводную информацию по переданным пакетам, ошибкам, сбоям TCP и UDP — удобно при анализе проблем с сетью.

Просмотр таблицы маршрутизации ядра

Чтобы отобразить таблицу маршрутизации, используйте опцию -r:

netstat -r

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

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         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

Объяснение:

  • Destination: куда направляется трафик
  • Gateway: IP шлюза
  • Iface: интерфейс (например, eth0)

Это удобно для диагностики маршрутизации, особенно если у вас несколько сетевых интерфейсов или VPN.

Примеры использования

Полезный однострочник для вывода количества подключений с каждого IP:

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

Результат поможет вам быстро определить подозрительную активность (например, DDoS).

Все подключения к порту 443:

netstat -an | grep ':443'

Альтернатива: утилита ss

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

ss -tuln

Она быстрее и не требует установки дополнительных пакетов, но netstat остаётся удобной для быстрого анализа.

Заключение

netstat — универсальный инструмент, который позволяет быстро узнать, какие порты открыты, какие процессы их используют и какие соединения установлены. Даже несмотря на то, что его считают устаревшим, он по-прежнему полезен в диагностике и анализе сетевого состояния.

4 минуты чтения
Средний рейтинг статьи — 4.8

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний