что делает команда netstat

&nbsp &nbsp Команда NETSTAT предназначена для получения сведений о состоянии сетевых соединений и слушаемых на данном компьютере портах TCP и UDP, а также, для отображения статистических данных по сетевым интерфейсам и протоколам.

Формат командной строки:

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-t] [интервал]

Параметры командной строки:

На практике, утилиту netstat.exe удобно использовать в цепочке с командами постраничного вывода ( more ), перенаправления стандартного вывода в файл ( > ) и поиска текста в результатах вывода ( find ).

Пример отображаемой информации:

Состояние
LISTENING
LISTENING
ESTABLISHED
ESTABLISHED

Внешний адрес Внешний IP-адрес, участвующий в создании соединения.

TCP 192.168.0.3:3389 89.22.52.11:5779 ESTABLISHED
CryptSvc
[svchost.exe]

Байт
Одноадресные пакеты
Многоадресные пакеты
Отброшено
Ошибки
Неизвестный протоколПолучено

3572722456
73723923
15666
0
0
0Отправлено

516793893
75953549
1091239
0
0
0

Байт
Одноадресные пакеты
Многоадресные пакеты
Отброшено
Ошибки
Неизвестный протоколПолучено

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

Статистика TCP для IPv4

Сообщений
Ошибок
‘Назначение недостижимо’
Пакет слишком велик
Превышений времени
Ошибок в параметрах
Эхо-сообщений
Ответных пакетов
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

Пример отображаемых статистических данных:

Сообщений
Ошибок
‘Назначение недостижимо’
Превышений времени
Ошибок в параметрах
Просьб «снизить скорость»
Переадресовано
Ответных пакетов
Эхо-сообщений
Отметок времени
Ответы на отметки времени
Масок адресов
Ответов на маски адресов
Маршрутизатор
Маршрутизатор
Получено
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

Отображение активных подключений TCP, портов, прослушиваемых компьютером, статистики Ethernet, таблицы маршрутизации IP, статистики IPv4 (для протоколов IP, ICMP, TCP и UDP) и IPv6 (для протоколов IPv6, ICMPv6, TCP через IPv6 и UDP через IPv6). Запущенная без параметров, команда nbtstat отображает подключения TCP.

Синтаксис

Параметры

Примечания

Имя протокола (TCP или UDP).

IP-адрес локального компьютера и номер используемого порта. Имя локального компьютера, соответствующее IP-адресу и имени порта, выводится только в том случае, если не указан параметр -n. Если порт не назначен, вместо номера порта будет выведена звездочка (*).

IP-адрес и номер порта удаленного компьютера, подключенного к данному сокету. Имена, соответствующие IP-адресу и порту, выводятся только в том случае, если не указан параметр -n. Если порт не назначен, вместо номера порта будет выведена звездочка (*).

Указание состояния подключения TCP. Возможные значения:

Для получения дополнительных сведений о состояниях подключения TCP смотрите документ RFC 793.

Примеры

Для вывода статистики Ethernet и статистики по всем протоколам введите следующую команду:

Для вывода статистики только по протоколам TCP и UDP введите следующую команду:

Для вывода активных подключений TCP и кодов процессов каждые 5 секунд введите следующую команду:

Для вывода активных подключений TCP и кодов процессов каждые с использованием числового формата введите следующую команду:

Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).

Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь

Источник

Как использовать команды Netstat для мониторинга сети в Windows?

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Команда Netstat на cmd может быть очень полезна для определения состояния сети различных отдельных протоколов, таких как TCP, UDP, ICMP и версии IP, такие как IPv4 и IPv6. В этой статье мы также увидим другой вариант этой команды.

Мы часто обращаемся за помощью к программе или инструменту для выполнения небольших вещей в нашей Windows, таких как очистка диска, управление брандмауэром и т. д. Однако эти вещи, вплоть до уровня, также возможны, если вы знакомы с основными CMD команды.

Список команд Netstat для мониторинга сети в Windows

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

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

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

Также вы можете заметить, что команда netstat отображает текущее состояние всех соединений на устройстве. Вот некоторые примеры штатов:

Каждая запись в этой команде показывает IP-адрес, за которым следует номер порта. Вы увидите что-то вроде этого —

Здесь TCP является протоколом, 192.168.1.8 является локальным IP-адресом, 55544 является номером локального порта, 111.221.29.125 является внешним IP-адресом, а 443 является номером внешнего порта, в то время как соединение уже установлено.

Если вам известны номера портов, то из приведенной выше записи вы можете выяснить, что это HTTPS-соединение с IP-адресом 111.221.29.125.

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

С помощью этой команды вы можете увидеть все активные соединения, и вместо того, чтобы просто показывать необработанный IP-адрес внешнего адреса, он также выполняет поиск DNS.

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Эта команда netstat показывает статистику по протоколу. Если вы хотите узнать статистику по конкретному протоколу, вы можете использовать следующие варианты команд netstat, как показано ниже:

Источник

Что делает команда netstat

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-01

Всем привет ранее я начал рассказ про сетевые утилиты системного администратора в статье «Утилита pathping или как диагностировать проблему на маршруте до сайта. Сетевые утилиты 3 часть», движемся дальше и разбираем еще одну утилиту netstat или, как определить какие порты слушает ваш компьютер. Данная программка, будет не заменимым инструментом в багаже софта, любого системного инженера, поможет ему провести быструю диагностику ситуации и обнаружить ряд всевозможных проблем с сервисами и их доступностью.

Команды netstat

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

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-02

Отображение статистики протокола и текущих сетевых подключений TCP/IP.

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-x] [-t]
[интервал]

Давайте посмотрим интересные ключи утилиты netstat. Первое что вводим

и у нас на экране появится статистика сетевых пакетов ethernet.

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-03

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-04

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-05

Очень полезно посмотреть все что слушает ваш хост для этого пишем

Вывод команды содержит Тип протокола либо TCP либо UDP, локальный адрес с портом который слушается и внешний адрес с портом и состояние действия.

Для полного понимания информации, предоставляемой этой командой, необходимо понять принципы установки соединения в протоколе TCP/IP. Вот основные этапы процесса установки соединения TCP/IP:

1. При попытке установить соединение клиент отправляет сообщение SYN серверу.

2. Сервер отвечает собственным сообщением SYN и подтверждением (ACK).

Процесс разрыва соединения состоит из следующих этапов:

1. Клиент сообщает «Я закончил», отправляя сообщение FIN серверу. На этом этапе клиент только принимает данные от сервера, но сам ничего не отправляет.

2. После этого сервер отправляет сообщение ACK и отправляет собственное сообщение FIN клиенту.

3. После этого клиент отправляет сообщение ACK серверу, подтверждая запрос сервера FIN.

4. При получении сообщения ACK от клиента сервер закрывает соединение.

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

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-06

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-07

также можно вывести только TCP порты

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-08

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-09

Вот такая вот полезная утилиты с которой вы всегда будите знать по каким портам общаются службы на хосте. Читайте далее Утилита TCPView. Как определить какие порты слушает ваш компьютер. Сетевые утилиты 5 часть

Популярные Похожие записи:

6 Responses to Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть

thank you very much, would you weird area for any designers to hide this setting up. i had been possessing a number of difficulties with a new Dreamhost machine and i had not been guaranteed the reason why works out which they modify demonstrating invisible documents automagically, whereas different hosting space we connect to together with Filezilla appear to indicate invisible documents automagically. your own personal article allowed me to figure it available, i really appreciate it.

Уважаемый Иван, большое спасибо, это отличная получилась статья! У меня все получилось.

Очень рад, что смог вам помочь!

Добрый день. А как узнать какая программа занимает 80 порт?

Очень просто вы через netstat или tcpView смотрите PID процесса, который висит на порту, далее по PID вычисляете исполняемый файл.

>Добрый день. А как узнать какая программа занимает 80 порт?

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как проверить открытые порты на своём компьютере. Что означают 0.0.0.0, :*, [::], 127.0.0.1. Как понять вывод NETSTAT

Почему важно знать, какие порты открыты на компьютере?

Открытый порт на вашем компьютере (если не настроен файервол для запрета входящих соединений) означает, что к вашему компьютеру можно подключиться из вне.

Если ваш компьютер заражён вредоносным программным обеспечением, таким как троян, бэкдор (вирусы, которые позволяют злоумышленнику удалённо подключаться к вашему компьютеру и управлять им), то обычно такой бэкдор открывает порт и прослушивает сеть, в ожидании входящего соединения. Хотя могут быть варианты, например, многие бэкдоры подключаются к компьютеру злоумышленника и ожидают команд — в этом случае правильнее говорить не об открытом порте, а об установленном соединении. Это распространённый способ поведения вредоносного ПО, поскольку в данном случае не требуется, чтобы у жертвы был белый IP (что для домашних компьютеров является редкостью). Поэтому важно проверять открытые порты и установленные сетевые соединения. Конечно, установленное соединение означает наличие открытого порта, но с технической точки зрения это всё-таки разные вещи.

Ещё один пример, когда нужно определить, какая именно служба прослушивает порт: вы пытаетесь установить сетевую службу (веб-сервер Apache или СУБД MySQL), а они не запускаются, так как какая-то другая служба уже заняла их порт, который они используют по умолчанию. В этом случае нужно найти эту службу и отключить её или настроить на работу с другим портом.

Но, как и во многих IT задачах (да и вообще во многих профессиональных сферах), получить данные это только самое начало. Главное — это правильно их истолковать и понять.

Поэтому в этой статье мы рассмотрим, как узнать, какие порты открыты, как проверить, какая служба прослушивает определённый порт, а также научимся правильно понимать вывод команды NETSTAT и аналогичных.

Как проверить открытые порты в Windows

В Windows есть команда netstat, которая отображает статистику протокола и текущих сетевых подключений TCP/IP.

Используя команду со следующими ключами, можно посмотреть информацию о всех подключениях и прослушиваемых портах в Windows:

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Как с помощью PowerShell проверить открытые порты в Windows

Get-NetTCPConnection — это PowerShell-эквивалент NETSTAT, запуск команды без опций возвращает результат аналогичный netstat (но только по TCP портам и соединениям!).

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Чтобы вывести список открытых портов, используйте опцию -State со значением Listen:

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Командлет Get-NetUDPEndpoint получает текущую статистику для конечной точки UDP. Командлет возвращает свойства конечной точки UDP, например локальные и удалённые порты UDP. Если вы не укажете никаких параметров, командлет получит статистику для всех конечных точек UDP. Get-NetUDPEndpoint запущенный без опций вернёт локальный адрес и локальный порт.

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

А следующая команда покажет открытые на всех сетевых интерфейсах UDP порты:

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Связанные статьи:

Как в Windows узнать, какая программа прослушивает порт (с помощью PowerShell)

В этом примере будет получено имя процесса, связанного с каждым открытым портом:

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Эта команда покажет все процессы связанные с любой сетевой активностью (открытые порты, а также установленные соединения и другие статусы):

Чтобы узнать, какая именно программа прослушивает определённый порт, используйте следующий набор команд:

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Замените «80» в первой строке на порт, который вас интересует.

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

Используйте следующую команду, чтобы отобразить имя процесса, открывшего UDP порт:

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Как в Windows узнать, какая программа прослушивает порт (используя CMD)

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

Для поиска службы, можно добавить к команде NETSTAT опцию -b, которая означает показать исполнимый файл, прослушивающий порт:

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Также имеется альтернативный способ определения исполнимого файла, привязанного к порту. Для него откройте Командную строку Windows. Для этого нажмите сочетание клавиш Win+x, там выберите Windows PowerShell (Администратор). В открывшемся окне введите:

чтобы переключиться на Windows Console Host (обычную командную строку).

Там запустите команду вида:

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Эта команда найдёт службы, которые прослушивают 80 порт. Чтобы найти информацию о другом порте, замените в команде цифру 80 на интересующий вас порт.

Пример вывода в моём случае:

Запись 0.0.0.0:80 означает, порт 80 для любых IPv4 адресов прослушивает служба httpd.exe (веб-сервер Apache). А запись [::]:80 — означает, что порт 80 для любых IPv6 адресов прослушивает та же самая служба httpd.exe (веб-сервер Apache). Мы ещё вернёмся к более подробному анализу данных далее в этой статье.

Менять порт в длинной команде не всегда удобно, поэтому рекомендую создать текстовый файл с именем port.bat, в этот файл скопируйте:

Сохраните и закройте этот файл.

Теперь в Windows PowerShell или в командной строке Windows с помощью команды cd перейдите в папку, куда вы сохранили файл. Например, я его сохранил в папку C:\Users\Alex\Documents\, тогда для перехода туда я выполняю:

Теперь запустите файл командой вида:

Где ПОРТ замените на интересующий вас порт, например, меня интересует порт 80, тогда:

Вновь получаю аналогичный результат.

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

Если у вас множество портов прослушивает процесс svchost.exe, то чтобы разобраться, какие именно это службы, смотрите статью «Почему svchost.exe прослушивает много портов? Как узнать, какие именно программы открыли порты».

Как проверить открытые порты в Linux. Как узнать, какая служба прослушивает порт

Для Linux тоже есть команда netstat, но она, вроде как, теперь считается устаревшей и на её замену рекомендуется команда ss. Показываемая информация у ss и netstat очень похожи. Даже основные опции идентичны.

Итак, для вывода открытых портов TCP и UDP протоколов вместе с показом процессов, которые их прослушивают, используется команда:

что делает команда netstat. Смотреть фото что делает команда netstat. Смотреть картинку что делает команда netstat. Картинка про что делает команда netstat. Фото что делает команда netstat

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

Больше опций, а также больше способов найти, какие порты прослушиваются, смотрите в статье «4 способа узнать, какие порты прослушиваются в Linux».

Что означает вывод netstat и ss

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

TCP и UDP

TCP и UDP это протоколы транспортного уровня. Самое главное что вам нужно о них знать: любой из них может использоваться для передачи информации.

Кстати, про протокол TCP вы практически наверняка слышали, по крайней мере должны были встречать запись TCP/IP — эта связка протоколов очень важна для Интернета. Протокол IP отвечает за то, куда отправлять данные, а TCP отвечает за непосредственную передачу данных и проверку их целостности.

Работу протокола TCP можно представить как создание соединения между двумя компьютерами, по этому соединению передаются данные. Внутри этого соединения данные проверяются на предмет повреждения — если какая-то часть повреждена, то она отправляется повторно.

Протокол UDP тоже передаёт данные, но вместо того, чтобы создавать устойчивое соединение, внутри которого данные проверяются на целостность, он только отправляет пакет данных на определённый адрес, при этом не осуществляется контроль, был ли покет доставлен без повреждений и был ли доставлен вообще. По сути это и есть главное отличие между этими протоколами.

LISTENING, ESTABLISHED, CLOSE_WAIT и другие состояния

Как вы можете увидеть в выводе команды netstat для протокола TCP доступны разные варианты состояний.

Самые популярные из них это LISTENING — означает, что порт прослушивает запущенное на данном компьютере приложение, что оно готово принять соединение, например, от другого компьютера или от другой службы, запущенной на этом же компьютере. Также применяются термины «открытый порт», «привязка порта».

ESTABLISHED означает уже установленное соединение. Пример такого соединения: веб-браузер инициализировал загрузку страницы сайта и пока данные передаются по этому соединению, у этого соединения статус ESTABLISHED.

Имеются и другие виды состояний, но для наших целей они не очень важны. По большому счёту нас интересует только LISTENING, так как это означает открытые порты на нашем компьютере и возможность подключаться к нему. Также нам важно состояние ESTABLISHED, поскольку оно означает, что данные уже передаются по сетевому соединению.

UDP и LISTENING

Про UDP уже сказано чуть выше, что этот протокол не создаёт соединений в том смысле, как это делает TCP. Поэтому для этого протокола нет никаких состояний соединения — это просто неприменимо к нему. По этой причине в графе Состояние для него никогда не пишется LISTENING. Но значит ли это, что UDP порт не может быть прослушиваемым? Нет! Порт UDP также может быть прослушиваемым и доступным для соединений. В том числе этот порт может использоваться вирусами и злоумышленниками, поэтому эти порты также подлежат исследованию.

Пример анализа открытых портов

Я начну с анализа открытых портов на Linux. Просто потому, что мне так проще, а затем мы постепенно перейдём изучить открытые порты на Windows.

Пример информации об открытых портах, полученных командой:

Пример прослушиваемых портов на Linux:

В выводимых данных имеются следующие поля:

Рассмотрим, что означает запись 127.0.0.1:9050: она говорит о том, что прослушивается порт 9050. Причём он прослушивается только для IP адреса 127.0.0.1. Адрес 127.0.0.1 относится к так называемым Loopback, то есть это замыкающийся на себя, закольцованный адрес. Сетевой интерфейс с этим адресом называется петлевым. Пакеты, которые отправляются с компьютера на этот адрес, приходят на этот же самый компьютер (точнее говоря, они никуда даже не уходят). Доступ к этому адресу может иметь только служба, работающая на этом же самом компьютере. Отсюда важное следствие: хотя порт 9050 прослушивается, никто другой не может к нему подключиться из любой сети. Это же относится и к адресам из диапазона ::1/128 — это такие же адреса, но уже для IPv6, в IPv6 аналог для 127.0.0.1 это ::1 (тоже часто можно видеть в выводимой информации).

Смотрите также:

Если прослушиваются какие-либо адреса из локальных

то к таким портам могут подключиться только компьютеры, расположенные в этих самых локальных сетях (если не настроить особым образом маршрутизацию или проброску портов (port forwarding)).

Для вывода прослушиваемых портов и уже установленных сетевых подключений используйте следующую команду:

Звёздочка (*) вместо адреса или порта

Мы можем увидеть записи вроде *:80 или даже *:*

Здесь звёздочка означает любой адрес или любой порт. Например, *:80 в колонке Local Address:Port (Локальный адрес:Порт) означает, что прослушивается 80 порт сразу на всех сетевых интерфейсах, доступных в данной системе. То есть служба ответит на запрос к 80 порту откуда бы он не пришёл: из локальной сети, из глобальной сети (если есть прямое соединение и интерфейс с белым IP) или с закольцованного адреса — это неважно, служба всё равно примет это соединение.

Кстати, служба может прослушивать порт в соответствии со следующими правилами:

То есть порт должен в любом случае быть указан, поэтому для Local Address:Port (Локальный адрес:Порт) допустима запись *:80, но запись вида *:* никогда не встретится в этом столбце.

Для Peer Address:Port (Удалённый адрес:Порт) запись *:* означает, что принимаются соединения от любого IP, отправленные с любого порта.

Кстати, просто для справки: если ваш компьютер подключается к веб сайту, то веб сайты обычно работают на 80 и 443 портах. Следовательно, веб браузер подключается именно к 80 порту (или 443, если это безопасное HTTPS соединение). Но на вашем компьютере открывается новое соединение на каком угодно, но только не на 80 и 443 портах — обычно используются порты с номерами >30000, например, на вашем компьютере может быть открыто исходящее соединение с портом 42063 и оно будет адресовано к 80 порту какого-либо веб сервера.

Прослушиваемые порты IPv4 и IPv6 адресов в Linux

В Linux у программ netstat и ss имеется особенность вывода информации о прослушиваемых портах, когда прослушиваются одновременно IPv4 и IPv6 адреса — выводится информация только об IPv6 адресе! Возможно это связано с какими-то глубинными особенностями реализации ядра Linux, но в Windows, например, есть чёткое разделение и если служба одновременно прослушивает порт на IPv4 и IPv6 адресах, то информация об этой службе выводится два раза — пример этого почти в самом начале статьи, где мы ищем, какая служба прослушивает 80-й порт и в найденной информации нам дважды показана служба httpd.

Что означает 0.0.0.0 в netstat. Различные виды нотаций в netstat и ss

0.0.0.0 — это самый первый IP адрес. Но он относится к IP специального назначения (как например 127.0.0.1) и выполняет разные функции.

Обозначение 0.0.0.0 может иметь разное значение в зависимости от того, где используется. Когда говорят о прослушиваемых портах, это обозначение в Linux символизирует заполнитель, то есть означает «любой IP адрес».

В программе netstat также используется запись 0.0.0.0:* которая также обозначает «любой IPv4 адрес с любого порта».

Но в netstat для обозначения «любой IPv6 адрес с любого порта» используется . *

Помните об этих различиях, чтобы не запутаться. А также помните о том, что если показано, что прослушивается протокол tcp6 (IPv6), то одновременно может прослушиваться порт и на tcp (IPv4) — при этом данные в выводимой информации отсутствуют!

В Windows в качестве Local Address (Локального адреса), когда прослушивается любой IP адрес на определённом порту, используется запись вида 0.0.0.0:80 (в этом примере прослушивается любой IP адрес, доступный в системе, на 80 порту). Для IPv6 адресов в этом случае используется запись вида [::]:80.

В качестве внешнего адреса, когда доступно подключения с любого IP и с любого порта, для TCP протокола пишется 0.0.0.0:0, а для UDP протокола в этих же условиях пишется *:*. Что тоже не особо логично и сбивает с толку. Точнее говоря такое различие в обозначениях вытекает из разницы протоколов TCP и UDP.

Если информация относится к IPv6, то для TCP когда имеется ввиду любой адрес на любом порту, используется запись вида [::]:0. А для UDP используются одинаковые нотации как для IP, так и для IPv6, то есть *:*

Нужно помнить, что некоторые из этих обозначений пересекаются с нотациями из Linux, где они имеют своё собственное значение.

Чтобы чуть облегчить жизнь, я составил такую табличку, которую можно использовать в качестве шпаргалки:

Определённый локальный IPv4 адрес на определённом порту

Любой локальный IPv4 адрес на определённом порту

Определённый локальный IPv6 адрес на определённом порту

Любой локальный IPv6 адрес на определённом порту

Любой внешний IPv4 адрес на любом порту

Любой внешний IPv6 адрес на любом порту

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *