Команда NETSTAT — отображение статистики сетевых соединений
    Команда NETSTAT предназначена для получения сведений о состоянии сетевых соединений и слушаемых на данном компьютере портах TCP и UDP, а также, для отображения статистических данных по сетевым интерфейсам и протоколам.
Формат командной строки:
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-t] [интервал]
Параметры командной строки:
-a — Отображение всех подключений и ожидающих портов.
-b — Отображение исполняемого файла, участвующего в создании каждого подключения, или ожидающего порта. Иногда известные исполняемые файлы содержат множественные независимые компоненты. Тогда отображается последовательность компонентов, участвующих в создании подключения, либо ожидающий порт. В этом случае имя исполняемого файла находится снизу в скобках [], сверху — компонент, который им вызывается, и так до тех пор, пока не достигается TCP/IP. Заметьте, что такой подход может занять много времени и требует достаточных разрешений.
-e — Отображение статистики Ethernet. Может применяться вместе с параметром -s.
-f — Отображение полного имени домена (FQDN) для внешних адресов.
-n — Отображение адресов и номеров портов в числовом формате.
-o — Отображение кода (ID) процесса каждого подключения.
-p протокол — Отображение подключений для протокола, задаваемых этим параметром. Допустимые значения: TCP, UDP, TCPv6 или UDPv6. Используется вместе с параметром -s для отображения статистики по протоколам. Допустимые значения: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP или UDPv6.
-r — Отображение содержимого таблицы маршрутов.
-s — Отображение статистики протокола. По умолчанию статистика отображается для протоколов IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP и UDPv6. Параметр -p позволяет указать подмножество выводимых данных.
-t — Отображение текущего подключения в состоянии переноса нагрузки с процессора на сетевой адаптер при передаче данных ( «offload» ).
-v — Подробный вывод информации, если это возможно.
интервал — Повторный вывод статистических данных через указанный интервал в секундах. Для прекращения вывода данных нажмите клавиши CTRL+C. Если параметр не задан, сведения о текущей конфигурации выводятся один раз.
На практике, утилиту netstat.exe удобно использовать в цепочке с командами постраничного вывода ( more ), перенаправления стандартного вывода в файл ( > ) и поиска текста в результатах вывода ( find ).
netstat -a | more — отобразить все соединения в постраничном режиме вывода на экран.
netstat -a -n| more — то же, что и в предыдущем примере, но с отображением номеров портов и IP-адресов в числовом формате. В отличие от предыдущего примера, команда netstat с параметром -t отрабатывает намного быстрее.
netstat -a -f | more — то же, что и в предыдущем примере, но с отображением полных DNS-имен узлов, участвующих в соединениии.
netstat -a > C:\netstatall.txt — отобразить все соединения с записью результатов в файл C:\netstatall.txt.
netstat -a | find /I «LISTENING» — отобразить все соединения со статусом LISTENING, т.е. отобразить список сетевых интерфейсов и портов, ожидающих входящие соединения ( «слушаемых» портов ). Ключ /I в команде find указывает, что при поиске текста, не нужно учитывать регистр символов.
netstat -a | find /I «listening» > C:\listening.txt — отобразить все соединения со статусом LISTENING с записью результатов в файл C:\listening.txt.
Пример отображаемой информации:
Имя TCP TCP TCP TCP . . . | Локальный адрес 0.0.0.0:80 0.0.0.0:445 192.168.0.3:5401 127.0.0.1:56635 | Состояние LISTENING LISTENING ESTABLISHED ESTABLISHED |
Имя — название протокола.
Локальный адрес — локальный IP-адрес участвующий в соединении или связанный со службой, ожидающей входящие соединения (слушающей порт). Если в качестве адреса отображается 0.0.0.0 , то это означает — «любой адрес», т.е в соединении могут использоваться все IP-адреса существующие на данном компьютере. Адрес 127.0.0.1 — это петлевой интерфейс, используемый в качестве средства IP протокола для взаимодействия между процессами без реальной передачи данных.
Внешний адрес Внешний IP-адрес, участвующий в создании соединения.
Состояние — состояние соединения. Состояние Listening говорит о том, что строка состояния отображает информацию о сетевой службе, ожидающей входящие соединения по соответствующему протоколу на адрес и порт, отображаемые в колонке «Локальный адрес «. Состояние ESTABLISHED указывает на активное соединение. В колонке «Состояние» для соединений по протоколу TCP может отображаться текущий этап TCP-сессии определяемый по обработке значений флагов в заголовке TCP — пакета (Syn, Ask, Fin . ). Возможные состояния:
CLOSE_WAIT — ожидание закрытия соединения.
CLOSED — соединение закрыто.
ESTABLISHED — соединение установлено.
LISTENING — ожидается соединение (слушается порт)
TIME_WAIT — превышение времени ответа.
Имя программного модуля, связанного с данным соединением отображается, если задан параметр -b в командной строке при запуске netstat.exe.
netstat -a -b — получить список всех сетевых соединений и связанных с ними программ.
TCP 192.168.0.3:3389 89.22.52.11:5779 ESTABLISHED
CryptSvc
[svchost.exe]
В данном примере отображается информация о соединении, в создании которого участвуют программные компоненты CryptSvc и svchost.exe .
netstat -ab — параметры командной строки можно объединять. Параметр -ab эквивалентен -a -b
netstat -e — получить статистические данные для обмена по протоколу Ethernet. Отображается суммарные значения принятых и полученных байт для всех сетевых адаптеров Ethernet.
Байт
Одноадресные пакеты
Многоадресные пакеты
Отброшено
Ошибки
Неизвестный протокол
3572722456
73723923
15666
0
0
0
516793893
75953549
1091239
0
0
0
netstat -e -v — кроме суммарной статистики, отображается информация об обмене данными через отдельные сетевые интерфейсы.
netstat -e -s — дополнительно к статистике Ethernet, отображается статистика для протоколов IP , ICMP , TCP , UDP
Байт
Одноадресные пакеты
Многоадресные пакеты
Отброшено
Ошибки
Неизвестный протокол
3748575434
76249208
15694
0
0
0
1576644689
79843939
1094958
0
0
0
Получено пакетов Получено ошибок в заголовках Получено ошибок в адресах Направлено датаграмм Получено неизвестных протоколов Отброшено полученных пакетов Доставлено полученных пакетов Запросов на вывод Отброшено маршрутов Отброшено выходных пакетов Выходных пакетов без маршрута Требуется сборка Успешная сборка Сбоев при сборке Успешно фрагментировано датаграмм Сбоев при фрагментации датаграмм Создано фрагментов | = 10877781 = 0 = 27307 = 0 = 0 = 448 = 11384479 = 11919871 = 0 = 1517 = 6 = 0 = 0 = 0 = 5918 = 0 = 11836 |
Получено пакетов Получено ошибок в заголовках Получено ошибок в адресах Направлено датаграмм Получено неизвестных протоколов Отброшено полученных пакетов Доставлено полученных пакетов Запросов на вывод Отброшено маршрутов Отброшено выходных пакетов Выходных пакетов без маршрута Требуется сборка Успешная сборка Сбоев при сборке Успешно фрагментировано датаграмм Сбоев при фрагментации датаграмм Создано фрагментов | = 0 = 0 = 0 = 0 = 0 = 0 = 391 = 921 = 0 = 0 = 14 = 0 = 0 = 0 = 0 = 0 = 0 |
Сообщений Ошибок ‘Назначение недостижимо’ Превышений времени Ошибок в параметрах Просьб «снизить скорость» Переадресовано Ответных пакетов Эхо-сообщений Отметок времени Ответы на отметки времени Масок адресов Ответов на маски адресов Маршрутизатор Маршрутизатор | Получено 11892 0 10461 613 0 0 0 818 0 0 0 0 0 0 0 | Отправлено 1374 0 528 0 0 0 0 0 846 0 0 0 0 0 0 |
Сообщений Ошибок ‘Назначение недостижимо’ Пакет слишком велик Превышений времени Ошибок в параметрах Эхо-сообщений Ответных пакетов MLD-запросы MLD-отчеты MLD выполнено Маршрутизатор Маршрутизатор Окружение Окружение Переадресовано Перенумер. маршрутизатора | Получено 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | Отправлено 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
Активных открыто Пассивных открыто Сбоев при подключении Сброшено подключений Текущих подключений Получено сегментов Отправлено сегментов Повторно отправлено сегментов | = 225128 = 12675 = 108237 = 1871 = 42 = 8606912 = 8138192 = 403595 |
Статистика TCP для IPv6
Активных открыто Пассивных открыто Сбоев при подключении Сброшено подключений Текущих подключений Получено сегментов Отправлено сегментов Повторно отправлено сегментов | = 64 = 64 = 10164 = 4 = 4 = 3341 = 3341 = 0 |
Статистика UDP для IPv4
Получено датаграмм Отсутствие портов Ошибки при получении Отправлено датаграмм | = 4714809 = 448 = 0 = 5332065 |
Статистика UDP для IPv6
Получено датаграмм Отсутствие портов Ошибки при получении Отправлено датаграмм | = 419 = 0 = 0 = 391 |
netstat -s -p icmp — получить статистику только по протоколу ICMP
Пример отображаемых статистических данных:
Сообщений Ошибок ‘Назначение недостижимо’ Превышений времени Ошибок в параметрах Просьб «снизить скорость» Переадресовано Ответных пакетов Эхо-сообщений Отметок времени Ответы на отметки времени Масок адресов Ответов на маски адресов Маршрутизатор Маршрутизатор | Получено 12092 0 10654 619 0 0 0 819 0 0 0 0 0 0 0 | Отправлено 1375 0 528 0 0 0 0 0 847 0 0 0 0 0 0 |
Для циклического опроса состояния сетевых соединений используется запуск программы с указанием интервала вывода статистических данных в секундах.
netstat -e 3 — отображать статистику по Ethernet с интервалом 3 секунды.
netstat –f 10 — каждые 10 секунд отображать статистику сетевых соединений с использованием полных DNS-имен узлов.
netstat -n 5 | find /i «Established» — каждые 5 секунд отображать статистику по установленным соединениям.
Источник
Как проверить прослушивающие порты в Linux (используемые порты)
При устранении неполадок сетевого подключения или проблем, связанных с конкретным приложением, в первую очередь следует проверить, какие порты фактически используются в вашей системе и какое приложение прослушивает конкретный порт.
В этой статье объясняется, как использовать команды netstat , ss и lsof чтобы узнать, какие службы прослушивают какие порты. Инструкции применимы для всех операционных систем Linux и Unix, таких как macOS.
Что такое порт прослушивания
Сетевой порт идентифицируется по его номеру, связанному IP-адресу и типу протокола связи, например TCP или UDP.
Порт прослушивания — это сетевой порт, на котором приложение или процесс прослушивает, выступая в качестве конечной точки связи.
Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра. В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
У вас не может быть двух служб, слушающих один и тот же порт на одном IP-адресе.
Например, если вы используете веб-сервер Apache, который прослушивает порты 80 и 443 и вы пытаетесь установить Nginx , последний не запустится, потому что порты HTTP и HTTPS уже используются.
Проверьте порты прослушивания с помощью netstat
netstat — это инструмент командной строки, который может предоставить информацию о сетевых подключениях.
Чтобы вывести список всех прослушиваемых портов TCP или UDP, включая службы, использующие порты, и статус сокета, используйте следующую команду:
Параметры, используемые в этой команде, имеют следующее значение:
- -t — Показать TCP-порты.
- -u — Показать порты UDP.
- -n — Показывать числовые адреса вместо разрешающих узлов.
- -l — Показать только прослушивающие порты.
- -p — Показать PID и имя процесса слушателя. Эта информация отображается только в том случае, если вы запускаете команду от имени пользователя root или sudo .
Результат будет выглядеть примерно так:
Важными столбцами в нашем случае являются:
- Proto — протокол, используемый сокетом.
- Local Address — IP-адрес и номер порта, который прослушивает процесс.
- PID/Program name — PID и имя процесса.
Если вы хотите отфильтровать результаты, используйте команду grep . Например, чтобы узнать, какой процесс прослушивает TCP-порт 22, введите:
Выходные данные показывают, что на этой машине порт 22 используется сервером SSH:
Если вывод пуст, это означает, что порт ничего не прослушивает.
Вы также можете фильтровать список по критериям, например, PID, протоколу, состоянию и так далее.
netstat устарел и заменен ss и ip , но все же это одна из наиболее часто используемых команд для проверки сетевых подключений.
Проверьте порты прослушивания с помощью ss
ss — это новый netstat . В нем отсутствуют некоторые функции netstat , но он предоставляет больше состояний TCP и работает немного быстрее. Параметры команды в основном те же, поэтому переход с netstat на ss не представляет труда.
Чтобы получить список всех прослушивающих портов с помощью ss , введите:
Результат почти такой же, как у netstat :
Проверьте порты прослушивания с помощью lsof
lsof — это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.
В Linux все является файлом. Вы можете думать о сокете как о файле, который записывает в сеть.
Чтобы получить список всех прослушивающих TCP-портов с типом lsof :
Используются следующие параметры:
- -n — Не преобразовывать номера портов в имена портов.
- -p — Не разрешать имена хостов, показывать числовые адреса.
- -iTCP -sTCP:LISTEN — Показать только сетевые файлы с состоянием TCP LISTEN.
Большинство имен выходных столбцов говорят сами за себя:
- COMMAND , PID , USER — имя, pid и пользователь, запускающий программу, связанную с портом.
- NAME — номер порта.
Чтобы узнать, какой процесс прослушивает определенный порт, например порт 3306 вы должны использовать:
Выходные данные показывают, что сервер MySQL использует порт 3306 :
Для получения дополнительной информации посетите страницу руководства lsof и прочтите обо всех других мощных возможностях этого инструмента.
Выводы
Мы показали вам несколько команд, которые вы можете использовать, чтобы проверить, какие порты используются в вашей системе, и как узнать, какой процесс прослушивает определенный порт.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Источник