How to check open/listening ports in Windows Server-based operating systems.
Right-click on the start menu and click ‘Windows PowerShell (admin), in the new PowerShell window that has just opened up type: netstat -an this will show you all open ports and which IP they are listening on:
PS C:\Users\Administrator> netstat -an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2179 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 0.0.0.0:5985 0.0.0.0:0 LISTENING
TCP 0.0.0.0:47001 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49666 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49667 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49669 0.0.0.0:0 LISTENING
TCP 0.0.0.0:49670 0.0.0.0:0 LISTENING
TCP 22.156.188.131:139 0.0.0.0:0 LISTENING
TCP 22.156.188.131:3389 174.143.175.2:42252 ESTABLISHED
TCP 22.156.188.131:3389 182.169.114.207:64454 ESTABLISHED
TCP 22.156.188.131:3389 191.220.163.122:57588 ESTABLISHED
TCP 22.156.188.131:3389 191.220.163.131:31525 ESTABLISHED
TCP 22.156.188.131:3389 191.220.163.151:23613 ESTABLISHED
As we can see above for example port 123 is listening on IP 22.156.188.131 we can also see that a connection to port 3389 (WIndowd RDP) is currently established from IPS 174.143.175.2, 182.169.114.204, and, 191.220.163.131.
If you are expecting to be able to connect to a specific service that you know runs on a specific port and you can see it when listing the open/established ports as above yet it fails to connect there is a very good chance that you have not opened that port up in the Windows Firewall if however, you do not see that the port is listening for connections then there is a good chance that the service itself is not correctly configured so you need to look at that before the firewall.
If the output is just to much on a busy server for example you can narrow this down to specific ports, Linux users will have probably noticed by now that grep is not available in Windows PowerShell, never fear though as ‘Select-String’ does the same job, for the most part, the example below will show you how to check specific ports in the following example port 3389.
PS C:\Users\Administrator> netstat -an | Select-String 3389
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 22.156.188.131:3389 182.169.114.207:64454 ESTABLISHED
As an extra tip, if you are concerned that the client software you are using might be the thing preventing connection and the server side listening connection is on TCP you can also use telnet to test the connection
telnet 20.30.40.50 3389
If the connection to the port is ok you will see:
Trying 20.30.40.50...
Connected to 20.30.40.50.
Escape character is '^]'.
That means the connection has been established to the remote server so you can start troubleshooting the client software if it is not connecting, if however, nothing happens and eventually it just times out then a connection to the port on the server cannot be established at all so you need to investigate the server-side software and network
Add a sub network interface or additional IP address in Windows ServerConnecting to Linux server over SSH from Windows
Содержимое | |
---|---|
Выключение компьютеров в домене по списку |
Монолитный скрипт выключения компьютеров в домене по списку: @ECHO OFF SET "BEGIN_MARKER=:ENDFILE1" SET "END_MARKER=:ENDFILE2" |
Логофф сессий отключенных пользователей на терминальном сервере |
Убить все отключенные сессии: @ECHO OFF FOR /F "USEBACKQ TOKENS=2 DELIMS= " %%a IN (`quser^|findstr /b /v "^>"^|findstr /i /v " ID "^|findstr /v /i "rdp-tcp"`) DO logoff %%~a EXIT 0 |
Ошибка теневого копирования тома (VSS) |
Иногда на работающем сервере возникает такая ошибка: |
Интерпретатор CMD — вывод переменных со спецсимволами на экран и в файл |
Известная, но слабоосвещенная тема — обработка в коммандном интерпретаторе CMD данных со спецсимволами. |
Скрипты для CMD |
Скрипты выполняемые интерпретатором CMD.EXE — стандартной консольной оболочкой для Win2000/WinXP/Vista/Seven/Win8/Win2000 Server/Win2003/Win2008. |
Страховое копирование по списку |
Относительно простой вариант резервного копирования по списку файлов/папок с учетом типа резервной копии и количества хранимых копий по типам. Классические типы: дневная-недельная-месячная-годовая копии. Кодировка скрипта CP866…. |
Преобразование файлов 1CClientBankExchange в табличную форму |
Лично мне периодически приходилось сталкиваться с обработкой данных не в табличной форме, а в «именованном формате» то есть когда каждый параметр пишется на отдельной строке в виде Параметр=Значение параметра причем файл… |
Чтение данных из реестра в переменную окружения |
Продвинутый кросплатформенный модуль для встраивания в скрипты, позволяющий в удобной форме получать данные из реестра для дальнейшего использования(как всегда — кодировка скрипта CP866): |
Определение открытых портов на сервере Windows является важным шагом в обеспечении безопасности вашей системы. Открытые порты могут представлять уязвимость и использоваться злоумышленниками для несанкционированного доступа к вашему серверу.
Проверка открытых портов на сервере Windows может быть выполнена с помощью различных инструментов и команд. Один из таких инструментов, предоставляемых операционной системой Windows, — это команда «netstat». Эта команда отображает список активных подключений и слушающих портов на вашем сервере.
Чтобы выполнить проверку с помощью команды «netstat», откройте командную строку, введите «netstat -an» и нажмите клавишу Enter. Эта команда отобразит список всех открытых портов на вашем сервере, включая IP-адреса и состояние подключений.
После получения списка открытых портов, рекомендуется провести анализ с помощью специализированных инструментов и программ для сканирования портов, таких как Nmap или Angry IP Scanner. Эти инструменты предоставляют более детальную информацию о портах, включая используемые протоколы и возможные уязвимости.
Обратите внимание: Проверка открытых портов необходима для обнаружения потенциальных уязвимостей на вашем сервере. Но помните, что любые изменения, внесенные в настройки безопасности, могут привести к нежелательным последствиям. Рекомендуется проводить проверку и внесение изменений только при необходимости и с осторожностью.
Как определить открытые порты на сервере Windows с помощью командной строки
Для определения открытых портов на сервере Windows с помощью командной строки необходимо выполнить следующие шаги:
- Откройте командную строку, нажав клавишу Win + R и введя команду «cmd».
- Введите команду «netstat -ano» и нажмите клавишу Enter.
- Команда «netstat» покажет список всех открытых портов на сервере.
- Смотрите столбец «State», чтобы определить состояние порта. Например, «LISTENING» означает, что порт открыт и готов к принятию соединений.
- Столбец «Local Address» показывает IP-адрес и порт, на которых открыт порт.
- Столбец «PID» показывает идентификатор процесса, который открыл порт.
- Вы можете использовать команду «tasklist» для определения имени процесса по его идентификатору. Например, введите команду «tasklist /fi «PID eq [идентификатор]» и нажмите Enter.
Теперь вы знаете, как определить открытые порты на сервере Windows с помощью командной строки. Эта информация может быть полезна при настройке сервера или для обнаружения несанкционированных соединений.
Методы сканирования открытых портов на сервере Windows
1. Сканирование портов с помощью утилиты Telnet
Утилита Telnet позволяет подключиться к удаленному компьютеру через сеть и проверить доступность определенного порта. Для сканирования открытых портов на сервере Windows можно использовать команду «telnet [IP-адрес] [порт]». Если порт открыт, в терминале отобразится сообщение о успешном подключении. Если порт закрыт, будет выведено сообщение о невозможности подключения.
2. Использование специализированных программ
Существуют различные программы для сканирования открытых портов на сервере Windows. Некоторые из них предоставляют более детальную информацию о портах, например, о протоколе, используемом на порту. Некоторые популярные программы для сканирования портов в Windows включают Nmap, Advanced Port Scanner, Angry IP Scanner и др.
3. Использование онлайн-сервисов для сканирования портов
Онлайн-сервисы для сканирования портов позволяют проверить доступность определенного порта на удаленном сервере, не устанавливая дополнительное программное обеспечение. Такие сервисы обычно предлагают возможность сканирования нескольких портов одновременно и предоставляют подробную информацию об открытых портах. Некоторые популярные онлайн-сервисы для сканирования портов в Windows включают Free Port Scanner, Online Port Scanner и др.
4. Использование PowerShell
PowerShell – это среда командной строки и сценариев, встроенная в Windows. В PowerShell имеется модуль «NetTCPIP», который предоставляет возможность сканирования портов. Чтобы сканировать открытые порты на сервере Windows с помощью PowerShell, можно использовать команду «Test-NetConnection [IP-адрес] -Port [порт]». Результатом выполнения команды будет информация о доступности указанного порта на заданном сервере.
5. Использование командной строки Windows
Командная строка Windows предоставляет набор команд, которые могут быть использованы для сканирования открытых портов на сервере. Например, команда «ping [IP-адрес] -a» позволяет проверить доступность удаленного сервера и получить его IP-адрес, а команда «tracert [IP-адрес]» позволяет проследить маршрут следования пакетов до указанного сервера. При открытом порте можно получить уведомление о доступности сервера, а при закрытом порте – о невозможности подключения.
Это лишь некоторые методы сканирования открытых портов на сервере Windows. Каждый из них имеет свои преимущества и может быть полезен в различных ситуациях. При использовании этих методов необходимо учитывать легальность и соблюдать правила использования инструментов сканирования портов.
If you’re checking from the outside, not from the server itself, and you don’t want to bother installing telnet (as it doesn’t come with the last versions of Windows) or any other software, then you have native PowerShell:
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
(Unfortunately this only works with PowerShell 4.0 or newer. To check your PowerShell version, type $PSVersionTable
.)
PS: Note, these days there are some claims on the twittersphere that hint that this answer could be improved by mentioning «Test-Connection» from PowerShell Core, or the shortcut «tnc». See https://twitter.com/david_obrien/status/1214082339203993600 and help me edit this answer to improve it please!
(If you have a PSVersion < 4.0, you’re out of luck. Check this table:
Even though you can upgrade your version of PowerShell by installing the Windows Management Framework 4.0, it didn’t do the trick for me, Test-NetConnection cmdlet is still not available).
Статья обновлена: 10 сентября 2021
ID: 101
Чтобы посмотреть список открытых портов:
- Откройте командную строку. Инструкция в статье.
- Выполните команду:
netstat -a
- Нажмите Enter на клавиатуре.
Вы получите список открытых портов в Windows.
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!