Утилита netstat (ОС "Windows и Linux") - полезно знать

Что такое порт и зачем он нужен? Всё просто. На компьютере запущено много процессов и если процесс хочет (должен) обмениваться данными через сеть, то данный процесс получает номер порта (или несколько портов). Если процесс получил номер порта для приёма/передачи данных, говорят, что процесс «слушает» порт. Номера портов придумали от 0 до 65535. Ряд номеров портов стандартизован и поддерживается некоммерческой организацией JANA. Порты от 0 до 1023 являются общеизвестными портами (например HTTP – 80; SMTP – 25). Порты 1024 – 49151 являются пользовательскими, остальные являются динамическими (частными). Для быстрого определения открытых портов в системе существует утилита netstat. Работает как в ОС "Windows", так и в ОС "Linux".

 

 Как работает утилита netstat.

В ОС Windows для получения списка открытых портов в командной строке:

Открываем командную строку с привилегиями администратора:

  • netstat /? - справка
  • netstat –a – отображает все подключения и ожидающие порты
    • –a – отображает все подключения и ожидающие порты
  • netstat –ano | more – постраничный вывод для удобства
    • –a – отображает все подключения и ожидающие порты
    • -n – отображает адреса и номера портов в числовом формате
    • -o – отображает PID процесса
  • netstat –ano | find /i “listening” – выдаст список всех открытых портов в системе (находящихся в режиме прослушивания (LISTENING)
    • -a – отображает все подключения и ожидающие порты
    • -n – отображает адреса и номера портов в числовом формате
    • -o – отображает PID процесса
    • /i – при поиске текста не учитывает регистр символов (не надо писать LISTENING)
  • netstat –ano | find /i “established” – выдаст список всех открытых портов, у которых установлено соединение в данный момент
    • -a – отображает все подключения и ожидающие порты
    • -n – отображает адреса и номера портов в числовом формате
    • -o – отображает PID процесса
    • /i – при поиске текста не учитывает регистр символов (не надо писать ESTABLISHED)
  • netstat –e – получить статистические данные
  • netstat –sp icmp – получить статистические данные по протоколу ICMP

Узнать, кто использует данные порты:

  • netstat –bno – получить список вех сетевых соединений и связанных с ними программ
    • -n – отображает адреса и номера портов в числовом формате
    • -b – отображает исполняемый файл, участвующий в создании каждого соединения

CLOSE_WAIT - ожидание закрытия соединения

CLOSED - соединение закрыто

ESTABLISHED - соединение установлено

LISTENING - ожидается соединение (слушается порт)

TIME_WAIT - превышение времени ответа

В операционной системе Linux утилиту netstat использовать еще проще:

    • netstat –lnptux – объединяем ключи
      • -l – показывает все открытые порты (LISTEN)
      • -t – по протоколу TCP
      • -u – по протоколу UDP
      • -x – по протоколу UNIX Socket
      • -s – без резолва IP/имён
      • -p – показывать названия процессов и PID
    • netstat –l – прослушивание всех портов
      • -l – показывает все открытые порты (LISTEN)
  • netstat –ie – показать расширенную информацию об интерфейсах
    • -i – показывает таблицу всех сетевых интерфейсов
    • -e – выводит дополнительную информацию (можно указать дважды для наибольшего количества деталей)

Как видно из примеров, утилита имеет множество вариантов ключей (особенно в ОС “Linux”). Конечно же данную утилиту стоит взять на заметку и использовать.