Что такое порт и зачем он нужен? Всё просто. На компьютере запущено много процессов и если процесс хочет (должен) обмениваться данными через сеть, то данный процесс получает номер порта (или несколько портов). Если процесс получил номер порта для приёма/передачи данных, говорят, что процесс «слушает» порт. Номера портов придумали от 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”). Конечно же данную утилиту стоит взять на заметку и использовать.