Проверить доступность порта на удаленном компьютере windows

Обмен данными по локальной сети или через интернет осуществляется путем подключения друг к другу двух компьютеров. Чтобы получить данные с удаленного сервера, требуется соблюсти несколько условий – наличие IP-адреса у источника и получателя, выбор конкретного протокола приема-передачи и открытые порты на обоих компьютерах.

Что такое порт компьютера

Порт – это виртуальное дополнение к сетевому адресу, которое позволяет разделить запросы разных приложений и обрабатывать их автономно. Часть постоянно занята системными службами Windows или другой операционки, остальные свободны для использования прикладными программами, в том числе запускаемыми на удаленных серверах.

Проверка порта на доступность

Особенности портов:

  1. Иногда порты путают с разъемами на материнской плате (формально они и являются ими, но там речь идет о подключении физических устройств).
  2. Общее количество портов составляет 65535. Они имеют определенное назначение, например, 20-21 «по умолчанию» используется для соединения по FTP, а 110 выделен под почтовый протокол POP3.
  3. Сочетание IP-адреса и порта принято называть сокетом или файловым дескриптором, при помощи которого программа передает данные.

Перед подключением к какому-либо порту рекомендуется проверить, свободен ли он. Если нет, то операционная система выдаст ошибку, и соединение прервется. Многие программы делают проверку в автоматическом режиме и сами пытаются менять номера в поиске незанятого подключения. Но в ряде случаев это требуется сделать вручную, например, при отладке собственного кода.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Как проверить, открыт ли порт для подключения

Порты присутствуют у всех сетевых устройств, включая маршрутизаторы и роутеры, поэтому при анализе среды важно понимать, какой именно узел проверяется. На этом отчасти основаны системы безопасности, когда ради блокировки вероятных хакерских атак закрываются все свободные сокеты и открываются только те, которые используются корпоративным софтом.

Открыт ли порт

Существует три основных способа проверки открытых портов:

  1. Специализированные онлайн-сервисы.
  2. Прикладные приложения, запускаемые на компьютере.
  3. Встроенные в операционную систему утилиты.

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

Перечень открытых портов на локальном компьютере

Открытый порт на домашнем или рабочем компьютере – это фактически «дыра» в безопасности и риски утраты контроля над ситуацией. Именно через них проникают трояны и иные вирусы, которые имеют цель предоставить злоумышленнику возможность удаленного подключения к ПК без разрешения владельца. 

Командная строка

Проверить занятые порты легко:

  1. Нужно нажать комбинацию клавиш <Win+R>.
  2. Ввести команду CMD и нажать кнопку Enter.
  3. Ввести команду netstat –a и повторно нажать Enter.

В консоли отобразится перечень занятых портов с указанием, какое приложение или служба ими «распоряжается». Такой вариант проверки интересен тем, что он дает объективную картину. Если рассчитывать только на онлайн-сервисы, иногда создается впечатление, что открытых портов нет. Эффект создается из-за блокировки внешних запросов брандмауэром Windows или другим ПО.

Порт телнет

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

VDS Timeweb арендовать

Просмотр открытых портов на удаленном компьютере

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

Запуск утилиты telnet

Активация заключается во вводе специальной команды:

dism /online /Enable-Feature /FeatureName:TelnetClient

Она сработает только при запуске консоли с правами администратора. Схема открытия приложения несколько иная:

  1. Нажать комбинацию клавиш <Win+X>.
  2. Выбрать пункт «Командная строка (администратор)».
  3. В открывшемся окне ввести команду активации telnet.

Команда telnet

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

клиент Телнет

Синтаксис:

telnet опции хост порт

Хост – это домен или его IP-адрес, порт – виртуальное дополнение для образования сокета, опции же позволяют менять режим подключения. Их основные варианты:

  1. -4 – использовать адреса стандарта IPV4;
  2. -6 – использовать адреса стандарта IPV6;
  3. -8 – применять 8-битную кодировку типа Unicode;
  4. -E – отключение поддержки Escape-последовательностей;
  5. -a – вход с именем пользователя из переменного окружения User;
  6. -b – использовать локальный сокет;
  7. -d – включить режим отладки;
  8. -p – режим эмуляции rlogin;
  9. -e – задать символ начала Escape-последовательности;
  10. -l – пользователь для авторизации на удаленном сервере.

Простейший вариант проверки открытых портов – это ввод команды без опций:

telnet 10.0.119.127 80

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

Как проверить, открыт ли порт

Чтобы обмениваться данными по локальной сети или через интернет, устройства должны связаться друг с другом. Для этого каждому из них необходимо иметь собственный IP-адрес и открытые порты для взаимодействия. В статье подробно разберем, что такое порт, зачем он нужен и как самостоятельно проверить его доступность.

Что такое порт сервера и зачем он нужен

Порт можно сравнить с разъемами на материнской плате, только если в том случае речь идет о подключении физических устройств, то здесь – о виртуальных процессах. Представьте: на вашем устройстве находится много разных сетевых приложений, но вам нужно найти и подключится к одному конкретному. Порт нужен именно для того, чтобы открыть с ним соединение и дождаться завершения процесса. Сам порт выглядит как числовой идентификатор от 0 до 65 535.

Перед тем, как подключится к любому порту, нужно проверить, открыт ли он. Большинство программ делают проверку доступности порта автоматически, но иногда требуется сделать это самостоятельно. В случае если порт будет несвободен, установить соединение не получится.

Один из наиболее распространенных способов проверить доступность порта – сделать это с помощью команды Telnet. Дальше расскажем, как именно это сделать.

Что такое Telnet? Telnet – это сетевая утилита, позволяющая установить соединение с удаленным портом любого компьютера и каналом связи. Она работает по протоколу TELNET и позволяет им управлять. Сам протокол работает на основе TCP – то есть, можно передавать обычные строковые команды на другое устройство. Также его можно использовать для взаимодействия между процессами. Как правило, утилита установлена по умолчанию во всех системах. Если на вашем устройстве ее нет – воспользуйтесь и установите Telnet в одном из официальных репозиториев, например, в Ubuntu:

$ sudo apt install telnet

Общий синтаксис утилиты Telnet выглядит следующим образом:

$ telnet опции хост порт

Разберем по порядку, что здесь подразумевается.

Хост – это удаленный компьютер (домен или IP-адрес).

Порт – тот порт, через который устанавливается соединение, то есть на этом компьютере.

Опции необходимы, чтобы подключиться к удаленному серверу. Самые распространенные опции выглядят так:

  • -4 – использовать поддержку стандарта IPv4;
  • -6 – использовать поддержку стандарта IPv6;
  • -8 – использовать 8-битную кодировку – например, Unicode;
  • -E – отключить поддержку Escape-последовательностей;
  • -a – автоматический вход с логином из переменного окружения USER;
  • -b – использовать локальный сокет;
  • -d – использовать режим отладки;
  • -p – использовать эмуляцию rlogin;
  • -l – указать пользователя авторизации.

После подключения к удаленному серверу нужно ввести команды для управления процессами. Для этого у Telnet есть два режима:

  • Построчный – строка полностью редактируется на локальном компьютере и в готовом виде целиком отправляется на сервер.
  • Посимвольный – каждый символ, который вы набираете, отправляется на сервер. В этом случае не получится что-то исправить, если вы допустите ошибку при вводе.

Стандартные команды утилиты Telnet

Мы не будем рассматривать все существующие команды, возьмем только самые необходимые. Подробную информацию о них можно найти в официальной документации разработчиков программы.

  • CLOSE – отключить соединение с удаленным сервером;
  • ENCRYPT – передавать всю информацию в зашифрованном виде;
  • LOGOUT – выйти и закрыть соединение;
  • MODE – переключить режима со строчного на символьный или наоборот;
  • STATUS – показать текущий статус соединения;
  • SEND – отправить один из специальных символов telnet;
  • SET – установить значение параметра;
  • OPEN – открыть соединение с удаленным сервером;
  • DISPLAY – показать используемые спецсимволы;
  • SLC – изменить используемые спецсимволы.

Как проверить, открыт ли порт на удаленном компьютере, с помощью Telnet

Команда Telnet – отличный вариант, чтобы проверить доступность порта на удаленном компьютере. Как проверить доступность порта через Telnet? Чтобы это сделать, нужно ввести в командной строке одну из команд:

В командной строке Windows введите одну из команд:

telnet имя_сервера номер_порта или telnet IP_сервера номер_порта

Если вы увидите в ответе терминала или командной строки ошибку, то можно сделать вывод, что порт закрыт.

Если вы видите пустое окно или появилось приглашение сервера, то порт открыт.

Также с Telnet можно посмотреть открытые порты linux:

  1. Запустите терминал комбинацией клавиш Ctrl+Alt+T
  2. Введите команду, чтобы установить утилиту: sudo apt install telnet
  3. После установки введите команду в терминале: telnet имя_сервера номер_порта
  4. Если появится ошибка, то порт закрыт. Если порт открыт, вы увидите сообщение Unable to connect to remote host.

Как проверить открытые порты на локальном компьютере

Открытые порты на локальном компьютере, например, который вы используете дома или для работы, могут привести к серьезным последствиям – именно через них на устройства проникают вирусы и есть риск стать жертвой злоумышленников. Помимо Telnet есть еще несколько встроенных утилит, которые можно использовать, если вам нужно проверить открытые и закрытые соединения. Рассмотрим, как проверить, открыт ли порт на компьютере, примере утилиты netstat.

Как проверить порты в Windows, используя утилиту netstat:

  1. Введите комбинацию клавиш Win+R
  2. Задайте команду CMD и нажмите Enter
  3. Задайте команду netstat –a и нажмите Enter

После этого перед вами должен появиться список занятых портов, где также будет видно, какая программа его использует. Чтобы выгрузить файл и проверить его на наличие лишних приложений, задайте команду netstat –a >имя.txt.

Как еще можно проверить доступность порта

Онлайн-сервис ping.eu 

Если вы не хотите использовать утилиты для проверки, есть онлайн-сервисы, которые помогут это сделать.

Один из таких сервисов – ping.eu. Это многофункциональный сервер, который позволяет быстро проверить открытые порты. Нужно зайти на сайт, выбрать вкладку Port check. Далее понадобится ввести IP-адрес и номер соединения, адрес пользователя будет определен автоматически. После этого нажмите Go и сервис покажет результат.

Специальные программы

Кроме онлайн-сервисов и встроенных утилит, можно воспользоваться для проверки портов отдельными приложениями. Их достаточно много, и они работают примерно по одному принципу, при необходимости вы можете найти подходящее для себя через поиск. Мы рассмотрим, как работает программа Portforward Network Utilities. Она является платной, но можно выбрать пробный режим. Кстати, эта программа поможет не только проверить порты, но и открыть их, если вам это нужно.

Как проверить порты с помощью Portforward Network Utilities

  1. Перейдите на сайт разработчика и скачайте приложение в разделе загрузок.
  2. Запустите приложение и выберите режим использования. Можно использовать бесплатный режим или оплатить на сайте – тогда нужно ввести регистрационный ключ.
  3. Откройте раздел Tools и выберите пункт Port Checker.
  4. Введите номер порта и выберите протокол передачи информации.
  5. Нажмите кнопку Check Me и дождитесь результатов сканирования.

Заключение

Один из аспектов безопасности – это закрытые порты, поэтому если регулярно их проверять, то вы сможете не допустить утечки ваших данных и доступа злоумышленников. При этом порты иногда необходимо открыть, чтобы настроить некоторые программы, приложения или сервисы операционной системы. Проверку портов можно провести с помощью встроенных утилит, онлайн-сервисов или специальных программ, которые понадобится скачать отдельно. Какой из инструментов выбрать – вопрос только ваших предпочтений и требований.

  Туториал: как проверить, открыт ли порт

Как проверить, открыт ли порт

  • Что такое порт
  • Как проверить, открыт ли порт

В этой статье мы расскажем, что такое порт, какие они бывают и как проходит проверка порта на локальном и удаленном компьютере.

Вы можете узнать, открыт ли порт, с помощью нашего сервиса проверки доступности портов.

Что такое порт

Порт — это числовой идентификатор программы или процесса, который обслуживает сетевые соединения на заданном IP-адресе. Номера портов могут быть от 0 до 65 535.

Каждое устройство (компьютер, ноутбук, мобильный телефон и др.) имеет свой IP-адрес. Он дает возможность организовывать сетевые соединения между устройствами. Но на отдельном устройстве может быть запущено несколько сетевых приложений одновременно. Например, есть интернет-сервер с IP-адресом. На нем расположен: веб-сервер, почтовый сервер, FTP-сервер. Как сделать так, чтобы мы могли связаться именно с почтовым сервером? Для этого и нужен порт. Порты предоставляют возможность идентифицировать сетевые приложения на отдельно взятом компьютере.

Есть стандартные порты, такие как:

  • порт 80 — для  веб-сервера, который работает по протоколу HTTP,
  • порт 443 — для защищенного SSL-сертификатом веб-сервера, который работает по протоколу HTTPS,
  • порт 21 — для FTP-протокола (протокола передачи файлов).

Как проверить, открыт ли порт

Проверка порта на доступность возможна как для своего (локального) компьютера , так и для удаленного.

Как узнать, какие порты открыты на локальном компьютере в Windows

  1. Вызовите командную строку сочетанием клавиш Win+R

  2. Введите команду «cmd» и нажмите ОК:

  1. Пропишите команду netstat -a и кликните Enter:

Готово, перед вами список открытых портов на вашем компьютере.

Как узнать, какие порты открыты на удаленном компьютере

Провести проверку портов на открытость удаленного компьютера можно при помощи команды telnet.

Telnet — это утилита, с помощью которой можно соединиться с удаленным портом любого компьютера. Telnet позволяет установить связь, чтобы передавать команды и получать ответы (например, сделать проброс портов).

В Windows 7/8/10 и Vista утилита telnet отключена по умолчанию. Утилиту можно установить по инструкции.

Как проверить доступность порта с помощью команды telnet в Windows:

  1. Вызовите командную строку сочетанием клавиш Win+R.

  2. Введите команду «cmd» и нажмите ОК.

  3. В окне терминала введите команду:  telnet имя_сервера номер_порта (например, telnet mysite.ru 31). 

    Можно проверить порт на доступность по IP, если ввести команду telnet IP_сервера номер_порта (например, telnet 10.0.119.127 31).

  • Если на экране появится текст «“telnet” не является внутренней или внешней командой, исполняемой программой или пакетным файлом», то на вашем компьютере отключена утилита и ее надо установить по инструкции:

  • Если на экране командной строки появится ошибка, значит порт закрыт:

  • Если экран станет полностью пустым или появится приглашение сервера, значит порт открыт:

В PowerShell для проверки доступности порта на удаленном компьютере можно использовать командлет Test-NetConnection. Этот командлет позволяет проверить доступность удаленного сервера или службы на нем, протестировать блокируется ли TCP порт файерволами, проверить доступность по ICMP и маршрутизацию. По сути, командлет Test-NetConnection позволяет заменить сразу несколько привычных сетевых утилит: ping, traceroute, telnet, сканер TCP портов и т.д.

Содержание:

  • Проверка доступности TCP порта с помощью Test-NetConnection
  • PowerShell: проверка открытых портов на нескольких IP хостах
  • IP сканер сети на PowerShell
  • Вывести список открытых портов в Windows

Проверка доступности TCP порта с помощью Test-NetConnection

Командлет Test-NetConnection можно использовать только для проверки TCP портов. Например, чтобы проверить, что на почтовом сервере открыт порт TCP 25 (SMTP протокол), выполните команду:

Test-NetConnection -ComputerName msk-msg01 -Port 25

Примечание. С помощью командлета Test-NetConnection можно проверить только TCP соединение, для проверки доступности UDP портов он не применим.

В сокращенном виде аналогичная команда выглядит так:

TNC msk-mail1 -Port 25

Test-NetConnection - прверка ответа от TCP порта

Разберем результат команды:

ComputerName : msk-msg01 RemoteAddress : 10.10.1.7 RemotePort : 25 InterfaceAlias : CORP  

SourceAddress : 10.10.1.70 PingSucceeded : True PingReplyDetails (RTT) : 0 ms TcpTestSucceeded : True 

Как вы видите, командлет выполняет разрешение имени сервера в IP адрес, выполняется проверка ответа ICMP (аналог ping) и проверка ответа от TCP порта (доступность). Указанный сервер доступен по ICMP (
PingSucceeded = True
) и 25 TCP порт также отвечает (
RemotePort=25, TcpTestSucceeded= True
).

Примечание. Если команда вернула PingSucceeded=False и TcpTestSucceeded= True, скорее всего означает, что на удаленном сервере запрещен ICMP Ping.

Если выполнить команду Test-NetConnection без параметров, выполнится проверка наличия подключения к интернету на компьютере (проверяется доступность узла internetbeacon.msedge.net):

Test-NetConnection проверить достуа в интернет на компьютере

Для вывода детальной информации при проверки удаленного TCP порта можно добавить опцию -InformationLevel Detailed:

TNC 192.168.31.102 -Port 3389 -InformationLevel Detailed

test-netconneciton detailed - подробная информация о доступности удаленного порта

Доступность популярных сервисов Windows на удаленном компьютере (HTTP, RDP, SMB, WINRM) можно проверить с помощью параметра CommonTCPPort.

Например, чтобы проверить доступность веб-сервера, можно использовать команду:

Test-NetConnection -ComputerName winitpro.ru -CommonTCPPort HTTP

Или проверить доступность стандартного RDP порта (TCP/3389):

Test-NetConnection msk-rds1 –CommonTCPPort RDP

Можно вывести все параметры, которые возвращает командлет Test-NetConnection:

Test-NetConnection msk-man01 -port 445|Format-List *

Test-NetConnection все свойства

Если нужна только информация по доступности TCP порта, в более лаконичном виде проверка может быть выполнена так:

TNC msk-mail1 -Port 25 -InformationLevel Quiet

Командлет вернул True, значит удаленный порт доступен.

TNC InformationLevel Quiet

Совет. В предыдущих версиях Windows PowerShell (до версии 4.0) проверить доступность удаленного TCP порта можно было так:

(New-Object System.Net.Sockets.TcpClient).Connect('msk-msg01', 25)

New-Object System.Net.Sockets.TcpClient

Командлет Test-NetConnection можно использовать для трассировки маршрута до удаленного сервера при помощи параметра –TraceRoute (аналог команды трассировки маршрута tracert). С помощью параметра –Hops можно ограничить максимальное количество хопов при проверке.

Test-NetConnection msk-man01 –TraceRoute

Командлет вернул сетевую задержку при доступе к серверу в миллисекундах (
PingReplyDetails (RTT) : 41 ms
) и все IP адреса маршрутизаторов на пути до целевого сервера.

Test-NetConnection TraceRoute

PowerShell: проверка открытых портов на нескольких IP хостах

С помощью PowerShell можно проверить доступность определенного порта на нескольких компьютерах. Сохраните список серверов или IP адресов в текстовый файл servers.txt.

Например, ваша задача – найти сервере на которых не отвечает или закрыт порт TCP/25:

Get-Content c:\Distr\servers.txt |  where { -NOT (Test-Netconnection $_ -Port 25  -InformationLevel Quiet)}| Format-Table –AutoSize

Вы можете использовать PowerShell в качестве простейшую систему мониторинга, которая проверяет доступность серверов и выводит уведомление, если один из серверов недоступен.

Например, вы можете проверить доступность основных служб на всех контроллерах домена в AD (список DC можно получить командлетом Get-ADDomainController). Проверим следующие службы на DC (в утилите PortQry есть аналогичное правило Domain and trusts):

  • RPC – TCP/135
  • LDAP – TCP/389
  • LDAP – TCP/3268
  • DNS – TCP/53
  • Kerberos – TCP/88
  • SMB – TCP/445

$Ports = "135","389","636","3268","53","88","445","3269", "80", "443"
$AllDCs = Get-ADDomainController -Filter * | Select-Object Hostname,Ipv4address
ForEach($DC in $AllDCs){
Foreach ($P in $Ports){
$check=Test-NetConnection $DC.Ipv4address -Port $P -WarningAction SilentlyContinue
If ($check.tcpTestSucceeded -eq $true)
{Write-Host $DC.hostname $P -ForegroundColor Green -Separator " => "}
else
{Write-Host $DC.hostname $P -Separator " => " -ForegroundColor Red}
}
}

Скрипт проверит указанные TCP порты на контроллерах домена, и, если один из портов недоступен, выделит его красным цветом (можно запустить данный PowerShell скрипт как службу Windows).

powershell: test-netconnection проверить порты на конроллерах домена

IP сканер сети на PowerShell

Вы можете реализовать простой IP сканер, которые сканирует удаленные хосты или IP подсети на открытые/закрытые TCP порты.

Чтобы просканировать диапазон IP адресов с 10.10.10.5 до 10.10.10.30 и вывести компьютеры, на которых открыт порт 3389:

foreach ($ip in 5..30) {Test-NetConnection -Port 3389 -InformationLevel "Detailed" 10.10.10.$ip}

Можно просканировать диапазон TCP портов (от 1 до 1024) на указанном сервере:

foreach ($port in 1..1024) {If (($a=Test-NetConnection srvfs01 -Port $port -WarningAction SilentlyContinue).tcpTestSucceeded -eq $true){ "TCP port $port is open!"}}

powershell сканирование открытых сетевых портов

Вывести список открытых портов в Windows

Если вам нужно вывести список портов, открытых на локальном компьютере, исопльзуется командлет Get-NetTCPConnection (это PowerShell-эквивалент NETSTAT). Полный список открытых портов на компьютере можно вывести так:

Get-NetTcpConnection -State Listen | Select-Object LocalAddress,LocalPort| Sort-Object -Property LocalPort | Format-Table

get-nettcpconnection вывести список открытых портов в windows

Если вам нужно проверить, какая программа (процесс) слушает определенный порт на вашем компьютере, выполните команду:

Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess | ft Id, ProcessName, UserName, Path

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:

Enter image description here

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).

  • Проверить открытые порты windows server
  • Проверить доступ по ssh windows
  • Пробел в командной строке windows
  • Проверить кто занял порт windows
  • Проверить диск linux в windows