Команда 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
- Syntax
- Parameters
- Remarks
- Examples
- Команда netstat в windows
- Команды netstat
- Популярные Похожие записи:
- 6 Responses to Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть
- Как использовать команды Netstat для мониторинга сети в Windows?
- Список команд Netstat для мониторинга сети в Windows
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Как проверить открытые порты на своём компьютере. Что означают 0.0.0.0, :*, [::], 127.0.0.1. Как понять вывод NETSTAT
- Почему важно знать, какие порты открыты на компьютере?
- Как проверить открытые порты в Windows
- Как с помощью PowerShell проверить открытые порты в Windows
- Как в Windows узнать, какая программа прослушивает порт (с помощью PowerShell)
- Как в Windows узнать, какая программа прослушивает порт (используя CMD)
- Как проверить открытые порты в Linux. Как узнать, какая служба прослушивает порт
- Что означают данные netstat и ss
- TCP и UDP
- LISTENING, ESTABLISHED, CLOSE_WAIT и другие состояния
- UDP и LISTENING
- Пример анализа открытых портов
- Звёздочка (*) вместо адреса или порта
- Прослушиваемые порты IPv4 и IPv6 адресов в Linux
- Что означает 0.0.0.0 в netstat. Различные виды нотаций в netstat и ss
netstat
Applies to: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
Displays active TCP connections, ports on which the computer is listening, Ethernet statistics, the IP routing table, IPv4 statistics (for the IP, ICMP, TCP, and UDP protocols), and IPv6 statistics (for the IPv6, ICMPv6, TCP over IPv6, and UDP over IPv6 protocols). Used without parameters, this command displays active TCP connections.
This command is available only if the Internet Protocol (TCP/IP) protocol is installed as a component in the properties of a network adapter in Network Connections.
Syntax
Parameters
| Parameter | Description |
|---|---|
| -a | Displays all active TCP connections and the TCP and UDP ports on which the computer is listening. |
| -b | Displays the executable involved in creating each connection or listening port. In some cases well-known executables host multiple independent components, and in these cases the sequence of components involved in creating the connection or listening port is displayed. In this case the executable name is in [] at the bottom, on top is the component it called, and so forth until TCP/IP was reached. Note that this option can be time-consuming and will fail unless you have sufficient permissions. |
| -e | Displays Ethernet statistics, such as the number of bytes and packets sent and received. This parameter can be combined with -s. |
| -n | Displays active TCP connections, however, addresses and port numbers are expressed numerically and no attempt is made to determine names. |
| -o | Displays active TCP connections and includes the process ID (PID) for each connection. You can find the application based on the PID on the Processes tab in Windows Task Manager. This parameter can be combined with -a, -n, and -p. |
| -p |
Shows connections for the protocol specified by Protocol. In this case, the Protocol can be tcp, udp, tcpv6, or udpv6. If this parameter is used with -s to display statistics by protocol, Protocol can be tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6, or ipv6. -s Displays statistics by protocol. By default, statistics are shown for the TCP, UDP, ICMP, and IP protocols. If the IPv6 protocol is installed, statistics are shown for the TCP over IPv6, UDP over IPv6, ICMPv6, and IPv6 protocols. The -p parameter can be used to specify a set of protocols. -r Displays the contents of the IP routing table. This is equivalent to the route print command. Redisplays the selected information every interval seconds. Press CTRL+C to stop the redisplay. If this parameter is omitted, this command prints the selected information only once. /? Displays help at the command prompt.
The netstat command provides statistics for the following:
Examples
To display both the Ethernet statistics and the statistics for all protocols, type:
To display the statistics for only the TCP and UDP protocols, type:
To display active TCP connections and the process IDs every 5 seconds, type:
To display active TCP connections and the process IDs using numerical form, type:
Источник
Команда netstat в windows

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

Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-02
Отображение статистики протокола и текущих сетевых подключений TCP/IP.
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-x] [-t]
[интервал]
Давайте посмотрим интересные ключи утилиты netstat. Первое что вводим
и у нас на экране появится статистика сетевых пакетов ethernet.

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

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

Утилита 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 или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-06

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

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

Утилита 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 порт?
Источник
Как использовать команды Netstat для мониторинга сети в Windows?

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

Как вы можете видеть выше, эта команда будет отображать состояние всех соединений с вашего компьютера. Вы можете видеть, что локальный адрес и внешний адрес находятся в необработанном формате.
Он отключает поиск DNS, так как на это требуется время, и часто нет необходимости выполнять поиск запрашиваемой информации.
Также вы можете заметить, что команда netstat отображает текущее состояние всех соединений на устройстве. Вот некоторые примеры штатов:
Каждая запись в этой команде показывает IP-адрес, за которым следует номер порта. Вы увидите что-то вроде этого —
Здесь TCP является протоколом, 192.168.1.8 является локальным IP-адресом, 55544 является номером локального порта, 111.221.29.125 является внешним IP-адресом, а 443 является номером внешнего порта, в то время как соединение уже установлено.
Если вам известны номера портов, то из приведенной выше записи вы можете выяснить, что это HTTPS-соединение с IP-адресом 111.221.29.125.

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


Эта команда netstat показывает статистику по протоколу. Если вы хотите узнать статистику по конкретному протоколу, вы можете использовать следующие варианты команд netstat, как показано ниже:
Источник
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как проверить открытые порты на своём компьютере. Что означают 0.0.0.0, :*, [::], 127.0.0.1. Как понять вывод NETSTAT
Почему важно знать, какие порты открыты на компьютере?
Открытый порт на вашем компьютере (если не настроен файервол для запрета входящих соединений) означает, что к вашему компьютеру можно подключиться из вне.
Если с вашим компьютером случалась такая неприятность как заражение трояном, бэкдором (вирусы, которые позволяют злоумышленнику удалённо подключаться к вашему компьютеру и управлять им), то обычно такой бэкдор открывает порт и прослушивает сеть, в ожидании входящего соединения (хотя могут быть варианты).
Ещё один пример, когда нужно определить, какая именно служба прослушивает порт: вы пытаетесь установить сетевую службу (веб-сервер Apache или СУБД MySQL), а они не запускаются, так как какая-то другая служба уже заняла их порт, который они используют по умолчанию. В этом случае нужно найти эту службу и отключить её или настроить на работу с другим портом.
Но, как и во многих IT задачах (да и вообще во многих профессиональных сферах), получить данные это только самое начало. Главное — это правильно их истолковать и понять.
Поэтому в этой статье мы рассмотрим, как узнать, какие порты открыты, как проверить, какая служба прослушивает определённый порт, а также научимся правильно понимать вывод команды NETSTAT и аналогичных.
В Windows есть команда netstat, которая отображает статистику протокола и текущих сетевых подключений TCP/IP.
Используя команду со следующими ключами, можно посмотреть информацию о всех подключениях и прослушиваемых портах в Windows:
Как с помощью PowerShell проверить открытые порты в Windows
Get-NetTCPConnection — это PowerShell-эквивалент NETSTAT, запуск команды без опций возвращает результат аналогичный netstat.
Чтобы вывести список открытых портов, используйте опцию -State со значением Listen:
Командлет Get-NetUDPEndpoint получает текущую статистику для конечной точки UDP. Командлет возвращает свойства конечной точки UDP, например локальные и удалённые порты UDP. Если вы не укажете никаких параметров, командлет получит статистику для всех конечных точек UDP. Get-NetUDPEndpoint запущенный без опций вернёт локальный адрес и локальный порт.
А следующая команда покажет открытые на всех сетевых интерфейсах UDP порты:
Связанные статьи:
Как в Windows узнать, какая программа прослушивает порт (с помощью PowerShell)
В этом примере будет получено имя процесса, связанного с каждым открытым портом:
Эта команда покажет все процессы связанные с любой сетевой активностью (открытые порты, а также установленные соединения и другие статусы):
Чтобы узнать, какая именно программа прослушивает определённый порт, используйте следующий набор команд:
Замените «80» в первой строке на порт, который вас интересует.
Чтобы просмотреть идентификатор процесса-владельца используемого порта UDP, запустите команду:
Используйте следующую команду, чтобы отобразить имя процесса, открывшего UDP порт:
Как в Windows узнать, какая программа прослушивает порт (используя CMD)
Открытых для прослушивания портов может оказаться достаточно много и обычно они используются легитимными программами. Поэтому при анализе полученных данных также важно знать, какая именно служба прослушивает определённый порт.
Для поиска службы, можно добавить к приведённой команде опцию -b, которая означает показать исполнимый файл, прослушивающий порт:
Также имеется альтернативный способ определения исполнимого файла, привязанного к порту. Для него откройте Командную строку Windows. Для этого нажмите сочетание клавиш Win+x, там выберите Windows PowerShell (Администратор). В открывшемся окне введите:
чтобы перейти в обычную командную строку.
Там запустите команду вида:
Эта команда найдёт службы, которые прослушивают 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:UsersAlexDocuments, тогда для перехода туда я выполняю:
Теперь запустите файл командой вида:
Где [ПОРТ] замените на интересующий вас порт, например, меня интересует порт 80, тогда:
Вновь получаю аналогичный результат.
Если у вас множество портов прослушивает процесс svchost.exe, то чтобы разобраться, какие именно это службы, смотрите статью «Почему svchost.exe прослушивает много портов? Как узнать, какие именно программы открыли порты».
Как проверить открытые порты в Linux. Как узнать, какая служба прослушивает порт
Для Linux тоже есть команда netstat, но она, вроде как, теперь считается устаревшей и на её замену рекомендуется команда ss. Показываемая информация у ss и netstat очень похожи. Даже основные опции идентичны.
Итак, для вывода открытых портов TCP и UDP протоколов вместе с показом процессов, которые их прослушивают, используется команда:
Чтобы вывести список установленных соединений для портов 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, так как это означает открытые порты на нашем компьютере и возможность подключаться к нему.
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, тамошний аналог 127.0.0.1 это ::1 (тоже часто можно видеть в выводимой информации).
Если прослушиваются какие-либо адреса из локальных
то к таким портам могут подключиться только компьютеры, расположенные в этих самых локальных сетях (если не настроить особым образом маршрутизацию).
Звёздочка (*) вместо адреса или порта
Мы можем увидеть записи вроде *:80 или даже *:*
Здесь звёздочка означает любой адрес или любой порт. Например, *:80 в колонке Local Address:Port (Локальный адрес:Порт) означает, что прослушивается 80 порт сразу на всех сетевых интерфейсах, доступных в данной системе. То есть служба ответит на запрос к 80 порту откуда бы он не пришёл: из локальной сети, из глобальной сети (если есть прямое соединение и интерфейс с белым IP) или с закольцованного адреса — это неважно, служба всё равно примет это соединение.
Кстати, служба может прослушивать порт в соответствии со следующими правилами:
То есть порт должен в любом случае быть указан, поэтому для Локальный адрес:Порт допустима запись *:80, но запись вида *:* никогда не встретится в этом столбце.
Для Peer Address:Port (Удалённый адрес:Порт) запись *:* означает, что принимаются соединения от любого IP, отправленные с любого порта.
Кстати, просто для справки: если ваш компьютер подключается к веб сайту, то веб сайты обычно работают на 80 порту. Следовательно, веб браузер подключается именно к 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 в качестве Локального адреса, когда прослушивается любой 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 адрес на любом порту
Источник

Как проверить порт на открытость в windows
Компьютеры с ОС Windows, использующие для выхода в Интернет, Wi-Fi роутер или проводной маршрутизатор (модем), нередко защищаются с помощью сетевых экранов, которые могут закрывать некоторые порты TCP/UDP.
А, если пользователю требуется, чтобы какой-то конкретный порт оставался открытый (для игры или рабочего приложения), его придётся включать вручную.
Для того чтобы проверить порты на открытость можно воспользоваться несколькими способами, о которых мы поговорим в данной статье.
Способы проверки
Проверку проводят одним из трёх способов:
- воспользовавшись услугами онлайн-сервисов;
- скачав на комп и запустив программное обеспечение, предназначенное для проверки соединений;
- применив одну из утилит, уже встроенных в операционную систему.
Зная, как проверить, открыт ли порт на ПК, можно решить проблемы с запуском программ и игр. Выбор конкретного варианта зависит от предпочтений и требований пользователя.
Самым простым способом является применение утилит, самым информативным (показывающим более подробную информацию) – специализированные программы.
к оглавлению ↑
Онлайн-сервисы
Одним из сервисов, позволяющих выполнить проверку открытых портов по IP адресу пользователя, является portscan.ru.
Преимуществом сайта является возможность быстро и автоматически определить существующие соединения.
к оглавлению ↑
PortScan.ru
Для работы с ресурсом зайдите на сайт — portscan.ru, перейдите в первую вкладку, после чего, достаточно по очереди вводить интересующие порты в представленную на сервисе форму и нажимать кнопку Проверить.
Результат сканирования будет представлен ниже поля ввода.

Рис. 1. Работа приложения Portscan.ru
На сервисе есть сканер портов, вторая вкладка в меню сетевые сервисы, который в автоматическом режиме проверяет открытые порты в Windows.
Нажимаете Запустить сканер…, и после некоторого времени вам предоставится результат.

Рис. 2. Запуск сканера портов на сервисе
к оглавлению ↑
HideMy.name
Ещё один сайт HideMy.name представляет собой сканер для обнаружения хостов, позволяющий проверить IP-адреса.
Если пользователь вводит в форму сервиса адрес своего ПК, выдаётся информация о его соединениях.
Посмотреть результаты сканирования можно после нажатия кнопки Проверить.

Рис. 3. Сервис проверки соединений сайта HideMy.name.
к оглавлению ↑
Ping.eu
Можно проверить порт компьютера и с помощью многофункционального сервиса ping.eu – на этом же ресурсе можно определить и адрес своего прокси сервера.
Процесс проверки открытых соединений на сайте начинается с введения IP-адреса и номера соединения, адрес пользователя при этом определяется автоматически и указывается над формой ввода данных.
Как показывает пример, доступность локального порта 443 проверкой не подтверждена или другими словами — порт закрыт.

Рис. 4. Использование сервиса ping.eu
к оглавлению ↑
Специальные программы
Одним из приложений, с помощью которых может производиться проверка порта на открытость, является Portforward Network Utilities. С помощью этой же программы нужные порты можно и открыть.
Для работы с ней требуется:
3Запустить приложение для проверки портов на открытость и выбрать режим использования.
Программа является условно-бесплатной. Поэтому пользователь может выбрать режим Trial или приобрести её на сайте производителя и ввести регистрационный ключ.
4Перейти к разделу Tools и выбрать пункт Port Checker, позволяющий определить открытость соединений.
5Для того чтобы узнать, открыт ли порт, вводится его номер. После этого выбирается протокол передачи информации и нажимается кнопка Check Me (Проверь меня). Когда сканирование завершится, на экран выдаётся перечень результатов.

Рис. 5. Первый запуск программы Portforward Network Utilities.
к оглавлению ↑
XSpider
Приложение XSpider 7.7. позволяет проверять IP-адреса и хосты. Можно определять с его помощью и состояние соединений.
Найдите и скачайте программу в интернете, после скачивания и установки, запустите приложение. Далее, укажите какие следует проверить открытые порты, и запустите процесс нажатием значка запуска.
В результате проверки можно обнаружить не только недоступные соединения, но и открытые, но требующие закрытия из-за риска взлома компьютера злоумышленниками.

Рис. 5. Проверка портов приложением XSpider 7.7.
к оглавлению ↑
Встроенные утилиты Windows
Есть возможность решить вопрос с открытыми и закрытыми соединениями и с помощью уже встроенных в систему утилит. Одной из них является netstat, запустить которую можно следующим образом:
1Открыть командную строку (введя в строке поиска cmd или через меню ПУСК);
2В открывшемся окне ввести команду netstat –a (обязательно должен быть пробел после команды netstat);
3Просмотреть список работающих соединений.
Номер порта указан после двоеточия. (Для примера: Самая первая строка: 0.0.0.0:135 (Порт — 135))

Рис. 7. Использование утилиты netstat.
Показанные на экране порты являются открытыми. Соответственно, если нужного соединения в списке нет, значит, оно закрыто.
Этот же способ определения соединений действует и в других системах – в том числе, и на ОС Линукс.
к оглавлению ↑
С помощью Telnet
Второй вариант для того чтобы проверить, открыт ли порт – запуск службы Telnet, тоже встроенной в систему Windows.
Хотя на современных версиях Виндовс, начиная с семёрки, утилита по умолчанию отключена и требует активации. Для её запуска нужно сделать следующее:
1Перейдите в Панель управления, выберите меню Программы и компоненты и перейти к строке «Включение или отключение компонентов Windows».
2В списке, который появится на экране, выбирается пункт клиент Телнет и активируется (ставится галочка). После этого нажмите ОК, для сохранения настроек.

Рис. 8. Первые этапы запуска Telnet
Теперь можно запускать консоль через командную строку и вводить в ней название утилиты и номер соединения.
Например: Удаленный сервер можно проверить командой telnet 10.242.17.134 80, а проверка открытого порта на своём компьютере – вводом текста telnet localhost 80. (Имейте ввиду, после каждого слова должен быть пробел)
При удачном подключении на экране появится информация о нём. Это значит, что порт открыт. При закрытом соединении будут выведены сведения о невозможности его открыть.

Рис. 9. Результаты проверки работы программы Telnet.
к оглавлению ↑
Подведение итогов
Некоторые приложения и утилиты позволяют как проверить порты, открыты или нет, так и открывать соединения по определённому адресу и для своего компьютера. Если же причиной того, что порт оказался закрытый, стал брандмауэр, выполнить включение можно с его же помощью.
Для этого в окне утилиты нажимается кнопка добавления соединения, в поле «Имя» вводится описание программы, которой будет занятый порт, и указывается произвольное число в качестве номера.
Если причиной недоступности порта (и, соответственно, отсутствия сети при работе с каким-то приложением) стал провайдер, обращаться следует в его техподдержку.
Хотя перед этим следует точно убедиться, что проблема заключается именно в соединении, воспользовавшись всё теми же приложениями, сервисами и утилитами.
Тематическое видео по сканированию портов:
Лишь старые, занудные и бородатые администраторы до сих пор не признают веб-интерфейс, как способ конфигурирования устройств. Другое дело, что знать консольные команды, хотя бы для саморазвития — нужно. На примере управляемого Ethernet-коммутатора Raisecom ISCOM2128 мы приведем простейшие команды для диагностики.
До недавнего времени (точнее до появления Powershell), комфортно работать в консоли можно было только на unix-like системах, тем более что установка на сервер CentOS 7 занимает менее часа. CentOS 7 — производная система от известного дистрибутива Red Hat Enterprise. Установка centos, в классическом её смысле, не обязательна — есть liveCD версии. Кстати, для удобства подключения через telnet к устройству можно использовать PuTTy, так как в нем можно удобно сортировать коммутаторы по адресу или по другим параметрам:
![]()
После авторизации и входа в режим настроек (команда enable) начинаем работать.
Содержание
- 1. Смотрим статус порта
- 2. Смотрим мак-адрес на порту
- 3. Смотрим статистику полученных/отправленных пакетов
- 4. Смотрим ошибки на порту
- 5. Что почитать?
1. Смотрим статус порта
sh interface port [номер порта]
Результат:
sh interface port 2
R: Receive Direction
S: Send Direction
Status: Forwarding status
Port Admin Operate Speed/Duplex Flowctrl(R/S) Mac-learning Status up-sta up-sustained
--------------------------------------------------------------------------------------------------------------------------------
2 enable up(100M/full) auto off/off enable Forward Jan-01-2000 04:00:32 14y11m08d06h13m54s
iscom2128-1#
Расшифровка:
Operate — Статус порта
Speed / Duplex — скорость / режим передачи (full или half-duplex)
Flowctrl (R/S) — контроль потока (выключен)
Mac-learning — функция защиты атак по мак-адресу (подробнее здесь — http://www.tp-link.ua/article/?faqid=384)
Up-sustained — время, которое он активен.
2. Смотрим мак-адрес на порту
sh mac-address-table l2-address port [номер порта]
Результат:
iscom2128-1#sh mac-address-table l2-address port 2
Aging time: 300 seconds
Mac Address Port Vlan Flags
--------------------------------------------------------
E427.7147.895D 2 1602 Static
9094.E4F3.AB57 2 1602 Static
iscom2128-1#
Расшифровка:
Mac Address — Маки, которые «светятся» на этом порту
Port — порт коммутатора
Vlan — Виртуальная локальная сеть, которая привязана к порту.
3. Смотрим статистику полученных/отправленных пакетов
show interface port [номер порта] statistics dynamic
Результат:
#show interface port 2 statistics dynamic
Dynamic statistics period: 2 seconds
Port 2
------------------------------------------------
Input Normal Statistics:
InOctets: 2,943,231,389
InUcastPkts: 28,213,316
InMulticastPkts: 33,173
InBroadcastPkts: 63,099
Output Normal Statistics:
OutOctets: 858,223,315,985
OutUcastPkts: 47,829,671
OutMulticastPkts: 588,341,260
OutBroadcastPkts: 622,454
Bit Statistics:
Ingress Bits: 23,545,851,112
Egress Bits: 6,865,786,527,880
Speed during 2 seconds Statistics:
Ingress Speed(bps): 0
Egress Speed(bps): 1,972,216
Speed Rate during 2 seconds Statistics:
Ingress Speed Rate: <1%
Egress Speed Rate: 1%
Please press <Ctrl+C> to stop.
Dynamic statistics period: 2 seconds
Расшифровка:
In/out Octets: — общее количество входящих/исходящих октетов на интерфейс (1 октет — 1 байт)
In/out UcastPkts — входящие/исходящие юникастовые пакеты
In/out MulticastPkts — входящие/исходящие мультикастовые пакеты
In/out BroadcastPkts — входящие/исходящие броадкастовые пакеты
Ingress Bits — входящий трафик (со стороны абонента — исходящий)
Egress Bits — исходящий трафик (со стороны абонента — входящий)
Ingress Speed Rate — уровень входящей скорости (со стороны абонента — исходящая)
Egress Speed Rate — уровень исходящей скорости (со стороны абонента — входящая)
4. Смотрим ошибки на порту
show interface port [номер порта] statistics
Результат:
Input Normal Statistics:
InOctets: 698,171,799
InUcastPkts: 6,770,736
InMulticastPkts: 14,711
InBroadcastPkts: 550
Input Error Statistics:
DropEvents(Pkts): 0
CRCAlignErrors(Pkts): 0
UndersizePkts: 0
OversizePkts: 0
Fragments(Pkts): 0
Jabbers(Pkts): 0
Collisions(Pkts): 0
Discards(Pkts): 23
Output Normal Statistics:
OutOctets: 267,191,770,641
OutUcastPkts: 7,057,340
OutMulticastPkts: 194,853,568
OutBroadcastPkts: 422,719
Output Error Statistics:
OutputError(Pkts): 0
OutputDiscard(Pkts): 0
Abort(Pkts): 0
Differred(Pkts): 0
LateCollisions(Pkts): 0
NoCarrier(Pkts): 0
LostCarrier(Pkts): 0
MacTransmitError(Pkts): 0
Bit Statistics:
Ingress Bits: 5,585,374,392
Egress Bits: 2,137,534,165,128
Расшифровка по ошибкам
По пакетам расшифровка выше. Ошибки не отслеживаются в реальном времени (только статика)
Drop Events (Pkts): Фактическое число потерянных кадров из-за превышения максимального числа кадров
CRC Align Errors( Pkts): Количество ошибок «выравнивания» — (кадры, которые не заканчиваются четным числом октетов и имеют неверную контрольную сумму CRC), полученных на порт. Это могут быть проблемы с NIC (сетевая карта, грубо говоря), с портом на коммутаторе или с кабелем. Также из-за несоответствия дуплексных режимов. При первом подключении кабеля к порту могут возникнуть некоторые из этих ошибок. Кроме того, если к порту подключен концентратор, ошибки могут вызвать конфликты между другими устройствами концентратора.
Undersize Pkts: Такие ошибки возникают при получение фрейма размером 61-64 байта. Фрейм передается дальше, на работу не влияет
Oversize Pkts: Они возникают при получении пакета размером более 1518 байт и правильной контрольной суммой
Fragments (Pkts): Это количество принятых кадров длиной менее 64 байт (без преамбулы и начального ограничителя кадра, но включая байты FCS — контрольной суммы) и содержащих ошибки FCS или ошибки выравнивания
Jabbers (Pkts): Возникает при получении пакета размером более 1518 байт и имеющего ошибки в контрольной сумме
Collisions (Pkts): Коллизии возникают, когда две станции одновременно пытаются передать кадр данных по общей сред
Discards (Pkts): Отброшенные пакеты, поскольку их коммутация не требовалась. Это может быть нормальным, если концентратор подключен к порту и два устройства на данном концентраторе обмениваются данными. Число исходящих пакетов, которые выбраны для отбрасывания несмотря на отсутствие ошибок. Одна из возможных причин отбрасывания таких пакетов — освобождение буферного пространства.
5. Что почитать?
FTTx — http://ru.wikipedia.org/wiki/Fiber_to_the_x
SNMP — http://ru.wikipedia.org/wiki/SNMP
Port Security — http://xgu.ru/wiki/Port_security
How to find Windows Network Errors?
There is many ways to find some network errors in Windows.
-
netsh interface ipv4 show tcpstats
-
netstat -s
-
Get-NetAdapterStatistics | fl *
I see some FCS Errors (Input/Output errors) on the switching ports, and i want to monitor these errors on windows. Is there a way to monitor these errors per nic?
Explanation of FCS: Frame check sequence (FCS) errors indicate that frames of data are being corrupted during transmission. FCS error count is the number of frames that were transmitted/received with a bad checksum (CRC value) in the Ethernet frame. These frames are dropped and not propagated onto other ports.
Archived post. New comments cannot be posted and votes cannot be cast.
- Remove From My Forums
Сбор статистики об ошибках на сетевом интерфейсе
-
Вопрос
-
Добрый день!
Озадачился сбором статистики ошибок на сетевых интерфейсах.
На счетчиках не нашел.. может не прав, и они там есть..
Можно увидеть кол-во ошибок с помощью netstat -e… А счетчики такие есть?
-
Изменен тип
22 августа 2012 г. 9:13
-
Изменен тип
MeLo4
22 августа 2012 г. 9:24
-
Изменен тип
Ответы
-
На счетчиках не нашел.. может не прав, и они там есть..
Можно увидеть кол-во ошибок с помощью netstat -e… А счетчики такие есть?
Как это нет? есть конечно
-
Помечено в качестве ответа
MeLo4
22 августа 2012 г. 9:25
-
Помечено в качестве ответа
-
Учитывая, что пакеты «входят и выходят» через сетевой интерфейс, то да
Хотя формально, на уровне сетевого интерфейса существуют не пакеты, а кадры.
-
Помечено в качестве ответа
MeLo4
22 августа 2012 г. 9:25
-
Помечено в качестве ответа
Обмен данными по локальной сети или через интернет осуществляется путем подключения друг к другу двух компьютеров. Чтобы получить данные с удаленного сервера, требуется соблюсти несколько условий – наличие IP-адреса у источника и получателя, выбор конкретного протокола приема-передачи и открытые порты на обоих компьютерах.
Что такое порт компьютера
Порт – это виртуальное дополнение к сетевому адресу, которое позволяет разделить запросы разных приложений и обрабатывать их автономно. Часть постоянно занята системными службами Windows или другой операционки, остальные свободны для использования прикладными программами, в том числе запускаемыми на удаленных серверах.

Особенности портов:
- Иногда порты путают с разъемами на материнской плате (формально они и являются ими, но там речь идет о подключении физических устройств).
- Общее количество портов составляет 65535. Они имеют определенное назначение, например, 20-21 «по умолчанию» используется для соединения по FTP, а 110 выделен под почтовый протокол POP3.
- Сочетание IP-адреса и порта принято называть сокетом или файловым дескриптором, при помощи которого программа передает данные.
Перед подключением к какому-либо порту рекомендуется проверить, свободен ли он. Если нет, то операционная система выдаст ошибку, и соединение прервется. Многие программы делают проверку в автоматическом режиме и сами пытаются менять номера в поиске незанятого подключения. Но в ряде случаев это требуется сделать вручную, например, при отладке собственного кода.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Как проверить, открыт ли порт для подключения
Порты присутствуют у всех сетевых устройств, включая маршрутизаторы и роутеры, поэтому при анализе среды важно понимать, какой именно узел проверяется. На этом отчасти основаны системы безопасности, когда ради блокировки вероятных хакерских атак закрываются все свободные сокеты и открываются только те, которые используются корпоративным софтом.

Существует три основных способа проверки открытых портов:
- Специализированные онлайн-сервисы.
- Прикладные приложения, запускаемые на компьютере.
- Встроенные в операционную систему утилиты.
Выбор решения зависит от задач. Так, если требуется открыть доступ к своему компьютеру извне, можно воспользоваться сервисами 2ip.ru или portscan.ru. При локальных работах удобнее приложения типа Portforward Network Utilities или штатная утилита TELNET. Она поставляется в «стандартной» сборке Windows и доступна для запуска в консоли CMD.
Перечень открытых портов на локальном компьютере
Открытый порт на домашнем или рабочем компьютере – это фактически «дыра» в безопасности и риски утраты контроля над ситуацией. Именно через них проникают трояны и иные вирусы, которые имеют цель предоставить злоумышленнику возможность удаленного подключения к ПК без разрешения владельца.

Проверить занятые порты легко:
- Нужно нажать комбинацию клавиш <Win+R>.
- Ввести команду CMD и нажать кнопку Enter.
- Ввести команду netstat –a и повторно нажать Enter.
В консоли отобразится перечень занятых портов с указанием, какое приложение или служба ими «распоряжается». Такой вариант проверки интересен тем, что он дает объективную картину. Если рассчитывать только на онлайн-сервисы, иногда создается впечатление, что открытых портов нет. Эффект создается из-за блокировки внешних запросов брандмауэром Windows или другим ПО.

Если хочется изучить список на предмет «посторонних» программ, его лучше выгрузить в файл при помощи команды netstat –a >имя.txt. По умолчанию список сохраняется в каталоге пользователя, в аккаунте которого происходил запуск утилиты (типа C:\ПользователиUser). При желании перед запуском утилиты можно перейти в корень диска командой cd c:.

Просмотр открытых портов на удаленном компьютере
При взаимодействии с удаленным сервером используется другая утилита – TELNET. В Windows она по умолчанию отключена, потому что не относится к пользовательским приложениям. Перед первым запуском придется провести «активацию». Существует два способа включения – в консоли или через графический интерфейс.

Активация заключается во вводе специальной команды:
dism /online /Enable-Feature /FeatureName:TelnetClient
Она сработает только при запуске консоли с правами администратора. Схема открытия приложения несколько иная:
- Нажать комбинацию клавиш <Win+X>.
- Выбрать пункт «Командная строка (администратор)».
- В открывшемся окне ввести команду активации telnet.

Если пользователь предпочитает управлять компьютером через графический интерфейс, нужно запустить панель управления, а в ней утилиту «Удаление программы». В открывшемся окне нужно перейти в раздел «Включение или отключение компонентов Windows», далее в общем списке найти строку «Telnet», поставить в ней галочку и нажать кнопку ОК. Все, служба активирована и готова к использованию (даже в консоли).

Синтаксис:
telnet опции хост порт
Хост – это домен или его IP-адрес, порт – виртуальное дополнение для образования сокета, опции же позволяют менять режим подключения. Их основные варианты:
- -4 – использовать адреса стандарта IPV4;
- -6 – использовать адреса стандарта IPV6;
- -8 – применять 8-битную кодировку типа Unicode;
- -E – отключение поддержки Escape-последовательностей;
- -a – вход с именем пользователя из переменного окружения User;
- -b – использовать локальный сокет;
- -d – включить режим отладки;
- -p – режим эмуляции rlogin;
- -e – задать символ начала Escape-последовательности;
- -l – пользователь для авторизации на удаленном сервере.
Простейший вариант проверки открытых портов – это ввод команды без опций:
telnet 10.0.119.127 80
Если на экран будет выведено сообщение «Сбой подключения», порт закрыт, нужно подбирать другой номер. Если порт открыт, пользователь увидит пустой экран или приглашение со стороны сервера ввести логин и пароль.
I was trying to check whether the port is opened or not using powershell like follows.
(new-object Net.Sockets.TcpClient).Connect("10.45.23.109", 443)
This method works , but the output is not user-friendly. It means if there are no errors then it has access. Is there any way to check for success and display some message like » Port 443 is operational»?
essential
6481 gold badge7 silver badges19 bronze badges
asked Mar 5, 2012 at 11:44
SamselvaprabuSamselvaprabu
16.6k31 gold badges139 silver badges228 bronze badges
1
If you’re running Windows 8/Windows Server 2012 or newer, you can use the Test-NetConnection command in PowerShell.
Ex:
Test-NetConnection -Port 53 -ComputerName LON-DC1
![]()
EvilDr
8,71213 gold badges73 silver badges130 bronze badges
answered Sep 18, 2014 at 23:33
4
I improved Salselvaprabu’s answer in several ways:
- It is now a function — you can put in your powershell profile and use anytime you need
- It can accept host as hostname or as ip address
- No more exceptions if host or port unavaible — just text
Call it like this:
Test-Port example.com 999
Test-Port 192.168.0.1 80
function Test-Port($hostname, $port)
{
# This works no matter in which form we get $host - hostname or ip address
try {
$ip = [System.Net.Dns]::GetHostAddresses($hostname) |
select-object IPAddressToString -expandproperty IPAddressToString
if($ip.GetType().Name -eq "Object[]")
{
#If we have several ip's for that address, let's take first one
$ip = $ip[0]
}
} catch {
Write-Host "Possibly $hostname is wrong hostname or IP"
return
}
$t = New-Object Net.Sockets.TcpClient
# We use TryCatch to remove exception info from console if we can't connect
try
{
$t.Connect($ip,$port)
} catch {}
if($t.Connected)
{
$t.Close()
$msg = "Port $port is operational"
}
else
{
$msg = "Port $port on $ip is closed, "
$msg += "You may need to contact your IT team to open it. "
}
Write-Host $msg
}
answered Mar 21, 2014 at 8:02
mshutovmshutov
7971 gold badge5 silver badges14 bronze badges
Actually Shay levy’s answer is almost correct but i got an weird issue as i mentioned in his comment column. So i split the command into two lines and it works fine.
$Ipaddress= Read-Host "Enter the IP address:"
$Port= Read-host "Enter the port number to access:"
$t = New-Object Net.Sockets.TcpClient
$t.Connect($Ipaddress,$Port)
if($t.Connected)
{
"Port $Port is operational"
}
else
{
"Port $Port is closed, You may need to contact your IT team to open it. "
}
answered Mar 8, 2012 at 7:06
SamselvaprabuSamselvaprabu
16.6k31 gold badges139 silver badges228 bronze badges
You can check if the Connected property is set to $true and display a friendly message:
$t = New-Object Net.Sockets.TcpClient "10.45.23.109", 443
if($t.Connected)
{
"Port 443 is operational"
}
else
{
"..."
}
answered Mar 5, 2012 at 12:54
Shay LevyShay Levy
121k31 gold badges181 silver badges203 bronze badges
2
With the latest versions of PowerShell, there is a new cmdlet, Test-NetConnection.
This cmdlet lets you, in effect, ping a port, like this:
Test-NetConnection -ComputerName <remote server> -Port nnnn
I know this is an old question, but if you hit this page (as I did) looking for this information, this addition may be helpful!
answered Jul 18, 2017 at 19:41
Thomas LeeThomas Lee
1,1486 silver badges13 bronze badges
I tried to improve the suggestion from mshutov.
I added the option to use the output as an object.
function Test-Port($hostname, $port)
{
# This works no matter in which form we get $host - hostname or ip address
try {
$ip = [System.Net.Dns]::GetHostAddresses($hostname) |
select-object IPAddressToString -expandproperty IPAddressToString
if($ip.GetType().Name -eq "Object[]")
{
#If we have several ip's for that address, let's take first one
$ip = $ip[0]
}
} catch {
Write-Host "Possibly $hostname is wrong hostname or IP"
return
}
$t = New-Object Net.Sockets.TcpClient
# We use TryCatch to remove exception info from console if we can't connect
try
{
$t.Connect($ip,$port)
} catch {}
if($t.Connected)
{
$t.Close()
$object = [pscustomobject] @{
Hostname = $hostname
IP = $IP
TCPPort = $port
GetResponse = $True }
Write-Output $object
}
else
{
$object = [pscustomobject] @{
Computername = $IP
TCPPort = $port
GetResponse = $False }
Write-Output $object
}
Write-Host $msg
}
Brettski
19.2k15 gold badges73 silver badges97 bronze badges
answered Aug 4, 2014 at 9:56
If you are using older versions of Powershell where Test-NetConnection isn’t available, here is a one-liner for hostname «my.hostname» and port «123»:
$t = New-Object System.Net.Sockets.TcpClient 'my.hostname', 123; if($t.Connected) {"OK"}
Returns OK, or an error message.
answered Oct 19, 2017 at 21:54
David I.David I.
4,7493 gold badges26 silver badges34 bronze badges
Great answer by mshutov & Salselvaprabu. I needed something a little bit more robust, and that checked all IPAddresses that was provided instead of checking only the first one.
I also wanted to replicate some of the parameter names and functionality than the Test-Connection function.
This new function allows you to set a Count for the number of retries, and the Delay between each try. Enjoy!
function Test-Port {
[CmdletBinding()]
Param (
[string] $ComputerName,
[int] $Port,
[int] $Delay = 1,
[int] $Count = 3
)
function Test-TcpClient ($IPAddress, $Port) {
$TcpClient = New-Object Net.Sockets.TcpClient
Try { $TcpClient.Connect($IPAddress, $Port) } Catch {}
If ($TcpClient.Connected) { $TcpClient.Close(); Return $True }
Return $False
}
function Invoke-Test ($ComputerName, $Port) {
Try { [array]$IPAddress = [System.Net.Dns]::GetHostAddresses($ComputerName) | Select-Object -Expand IPAddressToString }
Catch { Return $False }
[array]$Results = $IPAddress | % { Test-TcpClient -IPAddress $_ -Port $Port }
If ($Results -contains $True) { Return $True } Else { Return $False }
}
for ($i = 1; ((Invoke-Test -ComputerName $ComputerName -Port $Port) -ne $True); $i++)
{
if ($i -ge $Count) {
Write-Warning "Timed out while waiting for port $Port to be open on $ComputerName!"
Return $false
}
Write-Warning "Port $Port not open, retrying..."
Sleep $Delay
}
Return $true
}
answered Oct 25, 2017 at 13:10
boiled this down to a one liner sets the variable «$port389Open» to True or false — its fast and easy to replicate for a list of ports
try{$socket = New-Object Net.Sockets.TcpClient($ipAddress,389);if($socket -eq $null){$Port389Open = $false}else{Port389Open = $true;$socket.close()}}catch{Port389Open = $false}
If you want ot go really crazy you can return the an entire array-
Function StdPorts($ip){
$rst = "" | select IP,Port547Open,Port135Open,Port3389Open,Port389Open,Port53Open
$rst.IP = $Ip
try{$socket = New-Object Net.Sockets.TcpClient($ip,389);if($socket -eq $null){$rst.Port389Open = $false}else{$rst.Port389Open = $true;$socket.close();$ipscore++}}catch{$rst.Port389Open = $false}
try{$socket = New-Object Net.Sockets.TcpClient($ip,53);if($socket -eq $null){$rst.Port53Open = $false}else{$rst.Port53Open = $true;$socket.close();$ipscore++}}catch{$rst.Port53Open = $false}
try{$socket = New-Object Net.Sockets.TcpClient($ip,3389);if($socket -eq $null){$rst.Port3389Open = $false}else{$rst.Port3389Open = $true;$socket.close();$ipscore++}}catch{$rst.Port3389Open = $false}
try{$socket = New-Object Net.Sockets.TcpClient($ip,547);if($socket -eq $null){$rst.Port547Open = $false}else{$rst.Port547Open = $true;$socket.close();$ipscore++}}catch{$rst.Port547Open = $false}
try{$socket = New-Object Net.Sockets.TcpClient($ip,135);if($socket -eq $null){$rst.Port135Open = $false}else{$rst.Port135Open = $true;$socket.close();$SkipWMI = $False;$ipscore++}}catch{$rst.Port135Open = $false}
Return $rst
}
answered Apr 1, 2018 at 21:49
When scanning closed port it becomes unresponsive for long time. It seems to be quicker when resolving fqdn to ip like:
[System.Net.Dns]::GetHostAddresses("www.msn.com").IPAddressToString
![]()
Bhargav Rao
49.6k28 gold badges121 silver badges140 bronze badges
answered Apr 17, 2015 at 18:05
