Список сокетов, находящихся в состоянии LISTEN
Перечислить все прослушиваемые порты: netstat -l
# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN tcp6 0 0 :ssh :* LISTEN udp 0 0 192.168.128.134:ntp *:*
Перечислить прослушиваемые TCP порты: netstat -lt
# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp6 0 0 :ssh :* LISTEN
Перечислить прослушиваемые UDP порты: netstat -lu
# netstat -lu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:bootpc *:* udp6 0 0 :ntp :*
Перечислить прослушиваемые UNIX сокеты: netstat -lx
# netstat -lx Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 STREAM LISTENING 3141 /var/run/fail2ban/fail2ban.sock unix 2 STREAM LISTENING 20492 /var/run/mysqld/mysqld.sock unix 2 STREAM LISTENING 23323 /var/run/php5-fpm.sock
Как посмотреть порт IP-адреса или открытые порты в Windows
Порт – это натуральное число от 0 до 65535. Он используется, для определения получателя при доставке пакета через сеть, поэтому иногда возникает необходимость узнать свой порт.
Если на одном компьютере открыто более одного сетевого приложения, то без порта создать соединение с каким-то одним процессом не получится. Так как IP-адрес – один на все устройство, то становится неизвестно, с чем именно нужно выполнять соединение. В свою очередь, номер относится к одному конкретному приложению, поэтому он сможет идентифицировать процесс и пользователь создаст соединение с одним нужным ему сервером.
Для примера можно привести многоквартирный дом. Сам дом – это компьютер с операционной системой и уникальным адресом (ip), а квартиры – это программы и процессы. Допустим, пришло письмо (пакет). Но, если на квартирах не будет адреса или в письме получателя, то доставку произвести не получится.
Поэтому и на квартире и на письме стоит номер, чтобы сразу стало ясно, куда именно пришел пакет. Именно так действует порт. Пакет приходит с некоторой определенной цифрой. Когда компьютер его принимает, он смотрит номер и согласно ему отправляет пакет дальше нужному процессу или программе.
Но в Windows адресация пакетов явно нигде не указана, поэтому чтобы узнать порт ip-адреса или программы используют стандартные средства системы, сторонние утилиты или онлайн-сервисы.
Поиск по содержимому
В случае необходимости отображения только подключений с определенными параметрами или адресами лучше всего использовать дополнительную команду find, которая перед выводом сведений произведет фильтрацию данных, и это освободит вас от надобности вручную искать каждый соответствующий пункт. Тогда полная консольная команда приобретает следующий вид:
- Введите , что задаст параметр отображения только портов с состоянием LISTENING, аргумент /I при этом используется для отмены учета регистра символов.
В результатах отобразится только подходящая информация.
Выше вы узнали о методах определения открытых портов через встроенную команду netstat. После этого можете приступить к работе с программами или пробросу других портов в случае необходимости. К слову, этой теме посвящен отдельный материал на нашем сайте. Перейдите по указанным ниже ссылкам, чтобы ознакомиться с подробными инструкциями.
Что такое порт
Сначала нужно пояснить, что собой представляет сетевой порт. Это канал, через который компьютер может принимать и отправлять информацию. Он является своего рода дополнением к сетевому адресу, а его номер необходим для понимания того, на какой адрес нужно доставлять данные.
На заметку. Большое количество открытых портов не только предлагает широкие возможности обмена информацией, но и вызывает риск заражения компьютера вирусами.
Сетевые координаты отличаются по своему предназначению. Одни выполняют функцию прямой отправки файлов, вторые тестируют связь, а третьи осуществляют поиск ресурсов. Поэтому современный компьютер поддерживает огромное количество портов, для каждого из которых присвоен определенный номер. Также отличается протокол, используемый для конкретной «тропинки».
Что такое протокол TCP?
TCP — это протокол транспортного уровня, предоставляющий транспортировку (передачу) потока данных, с необходимостью предварительного установления соединения, благодаря чему гарантирует уверенность в целостности получаемых данных, также выполняет повторный запрос данных в случае потери данных или искажения. Помимо этого протокол TCP отслеживает дублирование пакетов и в случае обнаружения — уничтожает дублирующиеся пакеты. TCP — это аббревиатура от Transmission Control Protocol (Протокол Управления Передачей) — является обязательным протоколом стандарт TCP/IP, определенный в стандарте RFC 793, «Transmission Control Protocol (TCP)».
В отличие от протокола UDP гарантирует целостность передаваемых данных и подтверждения отправителя о результатах передачи. Используется при передаче файлов, где потеря одного пакета может привести к искажению всего файла.
TCP обеспечивает свою надежность благодаря следующему:
- Данные от приложения разбиваются на блоки определенного размера, которые будут отправлены.
- Когда TCP посылает сегмент, он устанавливает таймер, ожидая, что с удаленного конца придет подтверждение на этот сегмент. Если подтверждение не получено по истечении времени, сегмент передается повторно.
- Когда TCP принимает данные от удаленной стороны соединения, он отправляет подтверждение. Это подтверждение не отправляется немедленно, а обычно задерживается на доли секунды
- TCP осуществляет расчет контрольной суммы для своего заголовка и данных. Это контрольная сумма, рассчитываемая на концах соединения, целью которой является выявить любое изменение данных в процессе передачи. Если сегмент прибывает с неверной контрольной суммой, TCP отбрасывает его и подтверждение не генерируется. (Ожидается, что отправитель отработает тайм-аут и осуществит повторную передачу.)
- Так как TCP сегменты передаются в виде IP датаграмм, а IP датаграммы могут прибывать беспорядочно, также беспорядочно могут прибывать и TCP сегменты. После получения данных TCP может по необходимости изменить их последовательность, в результате приложение получает данные в правильном порядке.
- Так как IP датаграмма может быть продублирована, принимающий TCP должен отбрасывать продублированные данные.
- TCP осуществляет контроль потока данных. Каждая сторона TCP соединения имеет определенное пространство буфера. TCP на принимающей стороне позволяет удаленной стороне посылать данные только в том случае, если получатель может поместить их в буфер. Это предотвращает от переполнения буферов медленных хостов быстрыми хостами.
Как проверить открытые порты в Windows
В Windows есть команда netstat, которая отображает статистику протокола и текущих сетевых подключений TCP/IP.
Использование команды:
NETSTAT
Опции netstat:
-a Отображение всех подключений и портов прослушивания. -b Отображение исполняемого файла, участвующего в создании каждого подключения или порта прослушивания. Иногда известные исполняемые файлы содержат множество независимых компонентов. Тогда отображается последовательность компонентов, участвующих в создании подключения или порта прослушивания. В этом случае имя исполняемого файла находится снизу в скобках [], сверху находится вызванный им компонент, и так до тех пор, пока не достигнут TCP/IP. Заметьте, что такой подход может занять много времени и требует достаточных разрешений. -e Отображение статистики Ethernet. Может применяться вместе с параметром -s. -f Отображение полного имени домена (FQDN) для внешних адресов. -n Отображение адресов и номеров портов в числовом формате. -o Отображение ИД процесса каждого подключения. -p протокол Отображение подключений для протокола, задаваемых этим параметром. Допустимые значения: TCP, UDP, TCPv6 или UDPv6. Если используется вместе с параметром -s для отображения статистики по протоколам, допустимы следующие значения: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP или UDPv6. -q Отображение всех подключений, портов прослушивания и ограниченных непрослушивающих TCP-портов. Ограниченные непрослушивающие порты могут быть или не быть связанными с активными подключениями -r Отображение содержимого таблицы маршрутов. -s Отображение статистики по протоколам. По умолчанию статистика отображается для протоколов IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP и UDPv6. Параметр -p позволяет указать подмножество выводимых данных. -t Отображение состояния разгрузки для текущего подключения. -x Отображение подключений, прослушивателей и общих конечных точек NetworkDirect. -y Отображение шаблона подключений TCP для всех подключений. Не может использоваться вместе с другими параметрами. interval Повторное отображение выбранной статистики с паузой между отображениями, заданной интервалом в секундах. Чтобы прекратить повторное отображение статистики, нажмите клавиши CTRL+C. Если этот параметр опущен, netstat напечатает текущую информацию о конфигурации один раз.
Используя команду со следующими ключами, можно посмотреть информацию о всех подключениях и прослушиваемых портах в Windows:
netstat -an
nmap.
Одним из лучших инструментов для сканирования является nmap. Умеет работать в различных операционных системах. Много опций и различных сочетаний, различные виды сканирования, даже имеется возможность добавления скриптов.
Умеет сканировать один порт, множество портов, различное их сочетание:
# nmap -p 8080 192.168.10.243# nmap -p 80, 8080 192.168.10.243# nmap -p 0-65536 192.168.10.243# nmap -p T:80,U:5547,22,137-139
Сканировать все TCP или UDP порты:
# nmap -sT 192.168.10.243# nmap -sU 192.168.10.243
Определить открытые порты:
# nmap --open 192.168.10.243
Распознавать версии программ, запущенных на хосте:
# nmap -sV 192.168.10.243
Сохранить результаты в текстовый файл:
# nmap 192.168.10.243 > nmap-out.txt
В целях тестирования разрешено сканировать scanme.nmap.org, но небольшое количество раз в течение одного дня.
Встроенные инструменты контроля портов
Мы предлагаем две команды, чтобы показать список. В первом списке отображаются активные порты вместе с именем процесса, который их использует. В большинстве случаев эта команда будет работать нормально. Иногда, однако, имя процесса не поможет вам определить, какое приложение или служба фактически использует порт. В таком случае вам нужно будет перечислить активные порты вместе со номерами идентификатора процессов, а затем просмотреть эти процессы в диспетчере задач.
Просмотр портов вместе с именами процессов
Во-первых, вам нужно открыть командную строку в режиме администратора. Нажмите «Поиск», а затем введите «командная» в поле поиска. Когда вы увидите «Командная строка» в результатах, щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора».
В командной строке введите следующий текст и нажмите «Ввод»:
netstat -ab
После того, как вы нажмете Enter, результаты могут занять минуту или две для полного отображения, поэтому будьте терпеливы. Прокрутите список, чтобы найти порт (который указан после двоеточия справа от локального IP-адреса), и вы увидите имя процесса, использующего этого порт.
Если вы хотите сделать это немного проще, вы также можете выгрузить результаты команды в текстовый файл. Затем вы можете просто найти номер порта в текстовом файле.
Здесь, например, вы можете видеть, что порт 62020 связан процессом Skype4Life.exe. Skype – это приложение для общения между пользователями, поэтому мы можем предположить, что этот порт фактически связан процессом, который регулярно проверяет наличие обновлений для приложения.
Просмотр портов вместе с идентификаторами процессов
Если имя процесса для номера порта, который вы просматриваете, затрудняет определение того, какому приложению он соответствует, вы можете попробовать версию команды, которая показывает идентификаторы процессов (PID), а не имена. Введите следующий текст в командной строке, а затем нажмите Enter:
netstat -aon
В столбце справа справа перечислены PID, поэтому просто найдите тот, который связан с портом, который вы пытаетесь устранить.
Затем откройте диспетчер задач, щелкнув правой кнопкой мыши любое открытое пространство на панели задач и выбрав «Диспетчер задач».
Если вы используете Windows 8 или 10, перейдите на вкладку «Подробности» в диспетчере задач. В более старых версиях Windows вы увидите эту информацию на вкладке «Процессы». Отсортируйте список процессов по столбцу «ИД процесса» и найдите PID, связанный с портом, который вы исследуете. Возможно, вы сможете узнать больше о том, какое приложение или служба использует указанный порт, посмотрев столбец «Описание».
Если нет, щелкните процесс правой кнопкой мыши и выберите «Открыть расположение файла». Расположение файла, скорее всего, даст вам подсказку о том, какое приложение задействовано.
Как осуществлять проверку
Просмотрев поочередно все процессы, специалист может выявить подозрительную активность и закрыть доступ к лишним портам или удалить приложение, которое инициирует запуск процесса.
Конкретные рекомендации обычным пользователям дать в этом случае не получится, так как набор работающих процессов и приложений у всех индивидуален. Но в некоторых случаях каждый может попробовать завершить работу подозрительного процесса и посмотреть, как это повлияет на работу компьютера.
taskkill /f /t /pid 3984
В примерах был обнаружен процесс «daemonu.exe» с PID 3984, который отвечает за обновление драйверов «NVIDIA». Угрозы не представляет и будет перезапущен после перезагрузки операционной системы
Список всех портов (как прослушиваемых, так и нет)
Перечислить все порты: netstat -a
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN udp6 0 0 fe80::20c:29ff:fe68:ntp :* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 STREAM LISTENING 20492 /var/run/mysqld/mysqld.sock unix 2 STREAM LISTENING 23323 /var/run/php5-fpm.sock
Перечислить все TCP порты: netstat -at
# netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 *:http *:* LISTEN
Перечислить все UDP порты: netstat -au
# netstat -au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 localhost:domain *:* udp 0 0 *:bootpc *:* udp6 0 0 fe80::20c:29ff:fe68:ntp :*
Узнаем номер сетевого порта
Для того, чтобы выяснить номер своего сетевого порта, необходимо зайти в Windows 7 под учетной записью администратора. Выполняем следующие действия:
- Входим в «Пуск», пишем команду cmd и жмём «Enter»
Набираем команду ipconfig и жмём Enter. IP-адрес вашего устройства указан в пункте «Настройка протокола IP для Windows». Необходимо использовать IPv4-адрес. Возможно, что на вашем ПК установлены несколько сетевых адаптеров.
Вот так каждый пользователь при помощи командной строки может узнать сетевой порт, работающий в интернет-соединении на операционной системе Виндовс 7.
Думаю, если Вы нашли эту статью и собираетесь проверить какие порты открыты на ПК, то объяснять что такое порты, для чего они нужны и как используются различными программами, не нужно. Перейдем сразу к делу.
Возле номера каждого сокета в квадратных скобках указана программа, которая его использует (исполняемое имя файла).
Если Вы обнаружили, что какой-то порт использует программа, которую Вы не запускали и которая похожа на троян или вирус, то его следует закрыть. Закрыть порт можно при помощи фаервола. Однако гораздо быстрей и эффективней будет использовать небольшую бесплатную программу под названием Windows Worms Doors Cleaner (WWDC), которую Вы можете скачать прямо сейчас (51Kb).
После запуска она покажет список открытых сокетов, которые представляют опасность, и которые специалисты в области информационной защиты настоятельно рекомендуют держать отключенными: 135, 445, 137-139. Чтобы сделать их неактивными, просто нажмите кнопки справа от каждого красного значка:
После вступлений изменений в силу Вы получите такую картину:
Преимущество программы WWDC перед фаерволами состоит в том, что она не просто блокирует открытые порты, но закрывает их, отключая службы, которые их используют. Это, как Вы понимаете, гораздо эффективнее, потому что устраняет источник проблемы, а не симптомы.
Порт – это натуральное число от 0 до 65535. Он используется, для определения получателя при доставке пакета через сеть, поэтому иногда возникает необходимость узнать свой порт.
Если на одном компьютере открыто более одного сетевого приложения, то без порта создать соединение с каким-то одним процессом не получится. Так как IP-адрес – один на все устройство, то становится неизвестно, с чем именно нужно выполнять соединение. В свою очередь, номер относится к одному конкретному приложению, поэтому он сможет идентифицировать процесс и пользователь создаст соединение с одним нужным ему сервером.
Для примера можно привести многоквартирный дом. Сам дом – это компьютер с операционной системой и уникальным адресом (ip), а квартиры – это программы и процессы. Допустим, пришло письмо (пакет). Но, если на квартирах не будет адреса или в письме получателя, то доставку произвести не получится.
Поэтому и на квартире и на письме стоит номер, чтобы сразу стало ясно, куда именно пришел пакет. Именно так действует порт. Пакет приходит с некоторой определенной цифрой. Когда компьютер его принимает, он смотрит номер и согласно ему отправляет пакет дальше нужному процессу или программе.
Но в Windows адресация пакетов явно нигде не указана, поэтому чтобы узнать порт ip-адреса или программы используют стандартные средства системы, сторонние утилиты или онлайн-сервисы.
Характеристики сетевых концентраторов
Коммутатор для интернета обладает следующими общепринятыми характеристиками:
- Количество портов для подключения. Разъемы предназначены для соединения сетевых линий. Концентраторы простых моделей имеют четыре или восемь портов, которые предназначены для подключения витой пары. Производители предлагают средний уровень моделей. Такие устройства оснащены разъемами в количестве 12, 16 и 36 штук. Также есть модели с дополнительным одним портом BNC 10BASE-2. Они предназначены для подключения коаксиальных сегментов.
- Скорость передачи информации. Показатель измеряется в Мбит/сек. Концентраторы могут передавать информацию на скорости 10 и 100 Мбит/сек. В автоматическом режиме может осуществляться переход на низкоскоростной порт.
- Наличие портов, чтобы выполнять подключение кабеля Ethernet, коаксиального или оптического.
Это основные характеристики коммутаторов, независимо от бренда. Необходимо понимать, зачем нужен каждый параметр, его роль и значение в общей схеме подключения устройств.
Роль маршрутизатора в общей схеме подключения
3. lsof
Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию -i, а чтобы отображались именно порты, а не названия сетевых служб следует использовать опцию -P:
Ещё один пример, смотрим какие процессы работают с портом 80:
4. Nmap
Программа Nmap — мощный сетевой сканер, разработанный для сканирования и тестирования на проникновение удаленных узлов, но ничего не мешает направить его на локальный компьютер. Утилита позволяет не только посмотреть открытые порты, но и примерно определить какие сервисы их слушают и какие уязвимости у них есть. Программу надо установить:
Затем можно использовать:
Для простого сканирования можно запускать утилиту без опций. Детальнее о её опциях можно узнать в статье про сканирование сети в Nmap. Эта утилита ещё будет полезна если вы хотите посмотреть какие порты на компьютере доступны из интернета.
Если это публичный сервер, то результат скорее всего не будет отличатся от локального сканирования, но на домашнем компьютере все немного по другому. Первый вариант — используется роутер и в сеть будут видны только порты роутера, еще одним порогом защиты может стать NAT-сервер провайдера. Технология NAT позволяет нескольким пользователям использовать один внешний IP адрес. И так для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:
Дальше запускаем сканирование:
В результате мы видим, что открыт порт 80 веб-сервера и 22 — порт службы ssh, я их не открывал, эти порты открыты роутером, 80 — для веб-интерфейса, а 22 для может использоваться для обновления прошивки. А еще можно вообще не получить результатов, это будет означать что все порты закрыты, или на сервере установлена система защиты от вторжений IDS. Такая проверка портов может оказаться полезной для того, чтобы понять находится ли ваш компьютер в безопасности и нет ли там лишних открытых портов, доступных всем.
5. Zenmap
Программа Zenmap — это графический интерфейс для nmap. Она не делает ничего нового кроме того, что может делать nmap, просто предоставляет ко всему этому удобный интерфейс. Для её установки выполните:
Запустить программу можно из главного меню или командой:
Затем введите адрес localhost в поле Цель и нажмите кнопку Сканирование:
×
После завершения сканирования утилита вывела список открытых портов Linux.
How to Check for Listening Ports in Linux (Ports in use)
4 Апреля 2020
|
Терминал
При устранении неполадок сетевого подключения или проблем, связанных с конкретным приложением, в первую очередь следует проверить, какие порты фактически используются в вашей системе, а какое приложение прослушивает определенный порт.
Что такое открытый порт (порт прослушивания)
Сетевой порт идентифицируется его номером, соответствующим IP-адресом и типом протокола связи, таким как TCP или UDP.
Порт прослушивания — это сетевой порт, который прослушивает приложение или процесс, выступая в качестве конечной точки связи.
Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра. В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
Вы не можете иметь две службы, прослушивающие один и тот же порт на одном и том же IP-адресе.
Например, если вы используете веб-сервер Apache, который прослушивает порты, и вы пытаетесь установить Nginx, позднее не удастся запустить, потому что порты HTTP и HTTPS уже используются.
Проверьте порты прослушивания с
это инструмент командной строки, который может предоставить информацию о сетевых подключениях
Чтобы получить список всех прослушиваемых портов TCP или UDP, включая службы, использующие порты и состояние сокета, используйте следующую команду:
Параметры, используемые в этой команде, имеют следующее значение:
- — Показать порты TCP.
- — Показать порты UDP.
- — Показать числовые адреса вместо разрешения хостов.
- — Показывать только порты прослушивания.
- — Показать PID и имя процесса слушателя. Эта информация отображается, только если вы запускаете команду от имени пользователя root или sudo .
Вывод будет выглядеть примерно так:
Важными столбцами в нашем случае являются:
- — Протокол, используемый сокетом.
- — IP-адрес и номер порта, на котором слушает процесс.
- — PID и название процесса.
Если вы хотите отфильтровать результаты, используйте команду grep . Например, чтобы узнать, какой процесс прослушивает TCP-порт 22, вы должны набрать:
Выходные данные показывают, что на этой машине порт 22 используется сервером SSH:
Если вывод пуст, это означает, что ничего не прослушивает порт.
Вы также можете отфильтровать список на основе критериев, например, PID, протокола, состояния и т. Д.
устарел и заменен на и , но все же это одна из наиболее часто используемых команд для проверки сетевых подключений.
Проверьте порты прослушивания с
новый . В нем отсутствуют некоторые функции, но он предоставляет больше состояний TCP и работает немного быстрее. Параметры команды в основном одинаковы, поэтому переход с на не сложен.
Чтобы получить список всех прослушивающих портов , наберите:
Вывод почти такой же, как тот, о котором сообщили :
Проверьте порты прослушивания с
это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.
В Linux все это файл. Вы можете думать о сокете как о файле, который пишет в сеть.
Чтобы получить список всех прослушивающих TCP-портов, введите:
Используются следующие параметры:
- — Не конвертируйте номера портов в имена портов.
- — Не разрешайте имена хостов, показывайте числовые адреса.
- — Показывать только сетевые файлы с состоянием TCP LISTEN.
Большинство имен выходных столбцов говорят сами за себя:
- , , — имя, ИДП и пользователь , запустив программу , связанную с портом.
- — номер порта.
Чтобы узнать, какой процесс прослушивает определенный порт, например, порт, который вы используете:
Выходные данные показывают, что порт используется сервером MySQL:
Для получения дополнительной информации посетите страницу руководства lsof и прочитайте обо всех других мощных опциях этого инструмента.
Мы показали вам несколько команд, которые вы можете использовать для проверки того, какие порты используются в вашей системе, и как найти процесс, который прослушивает определенный порт.