Проверка доступности порта на удаленном компьютере
Проверить порты не сложно, есть много инструментов, благодаря которым можно выполнить это действие. Но сначала надо разобраться, что это такое, зачем нужно.
Итак, разные программы, которых понаписали очень много, часто умеют взаимодействовать с данными из компьютерной сети. Для того, чтобы было понятно, какой программный продукт хочет использовать сетевые ресурсы, придумали идентификатор, который называется порт и однозначно определяет, что работать нужно именно с этой програмкой. За основу взяли обычные числа от 0 до 65536.
При этом есть программы, за которыми закреплены определённые числа (порты), на постояннной основе, а имеются и другие, которые работают с разными портами или сразу используют много портов. Имеется спецификация и разделение такое:
- системные: 0 — 1023;
- зарегистрированные: 1024 — 49151;
- динамические: 49152 — 65535.
Следует отметить, что сканировать порты надо осторожно. Если вы будете проводить сканирование без разрешения, то вас заблокируют или могут даже привлечь к ответственности. Призыв один, сканируйте только свои ресурсы или ресурсы, с которыми вам разрешили взаимодействовать.
Помогут определить наличие открытых и закрытых портов следующие программные продукты:
- 1. Netstat, ss
- 2. Nc
- 3. Nmap
- 4. Windows Power Shell
- 5. Advanced Port Scanner
Проверка средствами операционной системы Windows
Чтобы решить проблему, совсем необязательно прибегать к ухищрениям или сторонним приложениям. Можно воспользоваться возможностями системы, которые тоже позволяют узнать ответ на вопрос: открыт ли порт?
Для этого понадобится запустить командную строку. Сделать это можно как с помощью окна «Выполнить», так и через поиск. В версии Windows 7 и ниже нажимаем «Пуск», в 8.1 — кнопку Start. Вводим и находим cmd, это и есть командная строка. Запускать её нужно через правую кнопку мыши, от имени администратора. После чего можно ввести одну из двух команд:
- netstat -a — показывает открытые (listening, активные — established, ожидание — time_wait) и закрытые порты;
- netstat -aon | more — список доступных.
Второй вариант удобен тем, что с его помощью можно узнать, какая программа привязана к тому или иному порту. Для этого смотрим в колонке PID — там указана цифра, являющаяся идентификатором процесса. Запускаем диспетчер задач или отправляемся на вкладку «Подробности» (для Windows 8 и 8.1) и ищем номер в «ИД процесса». Если название приложения незнакомо или кажется подозрительным, то щёлкаем по нему правой кнопкой мыши и выбираем «Открыть расположение».
Что означает результат проверки порта?
Подключиться к этому порту в данный момент невозможно. Вредоносные программы или злоумышленники не могут воспользоваться данным портом для атаки или получения конфиденциальной информации (Вам поможет материал 4 лучших бесплатных антивируса для Windows 10). Если все неизвестные порты имеют статус «закрыт», то это означает хороший уровень защищенности компьютера от сетевых угроз.
Если порт должен быть открытым, то это плохой показатель. Причиной недоступности порта может быть неверная настройка сетевого оборудования или программного обеспечения. Проверьте права доступа программ к сети в файерволе. Удостоверьтесь, что порты проброшены через роутер.
Результат «порт закрыт» также можно получить, если порт открыт, но время отклика вашего компьютера в сети (пинг) завышено. Подключится к порту в таких условиях практически не представляется возможным.
К данному порту можно произвести подключение, он доступен из интернета. Если это то, что требуется — прекрасно.
Если неизвестна причина, по которой порт может быть открытым, то стоит проверить запущенные программы и сервисы. Возможно, некоторые из них вполне легально используют этот порт для работы с сетью. Существует вероятность, что порт открыт в следствии работы несанкционированного/вредоносного программного обеспечения (Вам поможет материал Как включить защиту от потенциально нежелательных программ в Windows Defender). В таком случае рекомендуется проверить компьютер антивирусом.
Что за порты? Для чего они нужны?
Порты, которые проверяет PortScan.ru — это не физические, а логические порты на компьютере или сетевом устройстве.
В случае, если программа или служба планирует работать с сетью, она открывает порт с уникальным номером, через который она может работать с удаленными клиентами/серверами. Фактически, сетевая программа резервирует для себя определенное число, которое позволяет понять, что пришедшие данные предназначаются именно этой программе.
На человеческом языке это звучало бы примерно так: «Я, программа-сервер, открываю порт номер 1234. Если по сетевому кабелю придут данные с номером порта 1234 — это мне. «
Какие номера портов может открывать программа?
Порты идентифицируются номерами от 0 до 65535 включительно. Любой другой порт открыть нельзя, соответственно и проверить тоже. Это ограничения TCP/IP протокола.
Стоит отметить, что клиентская программа всегда должна знать номер порта, к которому ей нужно подключаться на сервере или другом удаленном сетевом устройстве. По этой причине для наиболее популярных протоколов зарезервированы порты в диапазоне от 0 до 1023.
Так, например, осуществляя серфинг в интернете, ваш браузер подключается к 80 порту на удаленном сервере, на котором находится сайт. В ответ браузер получает набор кода и данных, который скачивает и отображает в виде веб-страницы.
Для каких ситуаций возможна проверка открытых портов?
Проверка открытых портов возможна, если вашему компьютеру присвоен внешний IP адрес. Подробнее об этом вы можете узнать у своего интернет-провайдера.
Стоит учесть, что если ваш компьютер подключен к интернету не напрямую, а через роутер (маршрутизатор), то результаты проверки относятся именно к роутеру. Проверить состояние порта для компьютера внутри такой подсети возможно только при наличии проброса портов.
Что такое проброс портов?
Проброс портов (Port Forwarding, иногда Virtual Servers) — специальная настройка на роутере, позволяющая перенаправить внешние запросы (из интернета) на компьютеры локальной сети. По сути это способ указать, на какой локальный компьютер пересылать данные и запросы подключения, пришедшие на определенный порт.
Допустим, у вас дома игровой или веб-сервер, подключенный через роутер к интернету. Все компьютеры, подключенные к этому же роутеру, находятся в одной сети, поэтому смогут подключиться к данному серверу. Однако снаружи, из интернета, подключиться к вашему серверу без проброса портов уже не получится.
Если ваш компьютер подключен к интернету напрямую (без роутера/маршрутизатора), то выполнять проброс портов не требуется. Все ваши открытые порты должны быть доступны из интернета (естественно, при наличии выделенного IP).
Как узнать, какие порты открыты на компьютере?
Для Windows: Пуск → «cmd» → Запустить от имени администратора → netstat -bn
Для Linux: В терминале выполнить команду: «ss -tln»
Как закрыть порт?
Прежде всего надо устранить причину — запущенную программу или службу, которая открыла этот порт; ее надо закрыть/остановить. Если причина открытого порта не ясна — проверьте компьютер антивирусом, удалите лишние правила проброса портов на роутере и установите продвинутый файервол (Firewall).
Как проверить, открыт ли порт на удаленной системе Linux с помощью команды telnet?
Команда telnet используется для интерактивного взаимодействия с другим хостом по протоколу TELNET.
Общий синтаксис для telnet:
В случае успеха вы получите следующий результат.
Если это не удастся, вы получите следующий вывод.
Допустим, SSH открыт. Что дальше делать?
Зависит от вашей задачи
-
(49) (12) (99) (27) (2 118) (66) (39) (23) (778) (33) (3) (107) (322) (81) (18)
Anything in here will be replaced on browsers that support the canvas element
Вы узнаете, как зашифровать файл с помощью открытого ключа и расшифровать его с помощью закрытого ключа из командной строки. Принцип работы шифрования GPG Если вам нужно отправить зашифрованный файл получателю с помощью GPG, выполните следующие действия. Импортируйте открытый ключ получателя в свою связку ключей. Зашифруйте файл с помощью открытого ключа получателя. Отправьте зашифрованный файл получателю. […]
В попытке остановить пиратство ОС Windows команда разработчиков Microsoft придумала поместить водяной знак в углу до тех пор, пока пользователи не приобретут лицензию и не активируют ОС Windows. Если в вашей системе установлена пиратская копия Windows, вы должны были заметить уведомление с водяным знаком “Активировать Windows”. К счастью, пользователи Linux никогда не получают подобных уведомлений. […]
Анализ логов имеет большое значение в расследовании, и эта статья представляет собой небольшое введение в аудит журналов. Файл лога может содержать такую информацию, как кто получает доступ к активам компании, как он/она получает доступ, когда и сколько раз. Анализ логов может быть различным для разных типов атак и источников журналов. В данной статье рассматривается аудит […]
В наши дни USB-накопители и SD-карты стали повседневными техническими аксессуарами. Однако их повсеместное использование также создает проблему безопасности. П оскольку на этих устройствах часто хранятся личные данные, их необходимо полностью очистить, прежде чем передавать кому-то другому. Кроме того, полезно избавиться от любых данных на устройствах хранения, прежде чем выбрасывать их. Linux предлагает несколько инструментов, которые […]
Репутация IP основана на черных списках и списках спама в сочетании с публичными данными о владении. Эти данные, как правило, должны быть чистыми, если ваша компания не занимается спамом и может быстро обнаружить и остановить заражение вредоносным ПО. Поэтому для большинства компаний их рейтинг в значительной степени определяется тем, какие заголовки безопасности установлены на веб-сайтах, […]
Удаленный компьютер
Для этой цели используется все та же командная строка. Только теперь необходимо ввести три элемента: «telnet – ІР-адрес – порт». Нажимаем на клавишу ввода. Если не появляется запись Could not open», то это значит, что он открыт. В случаях, когда она выводится, порт закрыт. Если нет времени пробивать все значения, но одновременно необходимо проверить, открыт ли порт, то для этой цели можно использовать утилиты. Кстати, команда telnet позволяет рассматривать и локальный компьютер как удаленный, работая с ним так, сложно он находится на расстоянии. Каков механизм подобной работы? В таком случае запись в командной строке выглядит как «telnet – localhost – порт».
Как проверить доступен ли порт?
Традиционный способ.
Первое, что приходит на ум — использовать «старый добрый» telnet.
Для примера проверять будем доступность менеджера кластера:
Получили в ответ «кракозябру» — значит доступ есть
Осталось выйти сначала из кракозябры по ‘CTRL+]’ и затем из самого telnet-а
Загвоздка в том, что в большинстве современных Windows-систем telnet-клиент не установлен по-умолчанию, и требуется доустанавливать этот компонент. Что не всегда возможно, т.к. компьютер может быть и не своим и/или нет соответствующих прав.
Способ без инсталляции программ.
Хотелось бы иметь какой-то инструмент, не требующий установки, портабельный, чтобы можно было его просто скопировать и пользоваться, а при необходимости, легко удалить после использования.
В качестве такого инструмента удобно использовать утилиту psping от Sysinternals.
Эту утилиту можно скачать как отдельно, так и в составе пакета SysinternalsSuite, который содержит множество других необходимых инструментов.
Еще один портабельный инструмент, позволяющий решить задачу:
tcping (
Встроенный инструментарий.
Однако есть возможность обойтись и совсем без сторонних утилит. В Windows есть встроенный инструмент, позволяющий выполнить такую проверку.
Это powershell-командлет Test-NetConnection
В ответе нас интересует последняя строка — TcpTestSucceeded: True. В данном случае — доступ есть.
Также, в ответе может содержаться еще значение PingSucceeded — это «обычный» ping по ICMP.
У командлета есть очень удобный для запоминания и быстрого ввода альяс tnc, а также ключ позволяющий ограничить вывод только результатом.
Разумеется, запускать командлет необходимо в окне PowerShell, а не «командной строки».
Хотя, из командной строки тоже можно, вызвав PowerShell:
Следует заметить, что командлет доступен в версиях PowerShell от 4.0 и выше, т.е. начиная с Windows Server 2012 R2 и Windows 8.1
Как проверить, открытые порты с помощью утилиты netstat?
Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:
- -l или —listening — посмотреть только прослушиваемые порты;
- -p или —program — показать имя программы и ее PID;
- -t или —tcp — показать tcp порты;
- -u или —udp показать udp порты;
- -n или —numeric показывать ip адреса в числовом виде.
Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:
Зачем это нужно?
Время от времени возникает ситуация при которой необходимо проверить доступность различных узлов, как серверов, так и пользовательских ПК. Обычно для решения таких задач, может устанавливаться дополнительное ПО. Однако, есть и другие, более простые решения, не требующее инсталляции компонентов на компьютер. В этой статье мы рассмотрим проверку портов TCP и проверку через ICMP. Для работы потребуется только Powershell и умение его запускать. ? Ниже будут представлены три вариации командлетов для проверки.
Если у Вас пока не было опыта работы с Powershell, ничего страшного. Для того, чтобы воспользоваться инструментами, которые мы рассматриваем в этой статье, понадобится выполнить несколько несложных действий.
- Запустить Windows Powershell ISE и включить область сценариев (CTRL+R).
- Скопировать код из этой статьи и вставить в область сценариев.
- Выполнить код нажатием клавиши F5.
После выполнения этих действий, командлеты станут доступны для использования в консоли снизу, под областью сценариев.
После вставки и запуска кода в области сценариев, появляется возможность использования командлета в консоли ниже.
Программа-клиент
Проверка порта на доступность с использованием специальной программы-клиента может быть выполнена только с другого компьютера с отдельным подключением к интернету. Популярным примером такой программы является Telnet. Для Windows версии 7 и выше его следует сначала установить. В меню «Пуск» выбираем Панель управления, затем Программы и компоненты, слева на панели находим «Включение или отключение компонентов Windows». В списке программ находим и ставим галочку напротив строки Клиент Telnet, жмем Ok.
Как проверить, открыт ли порт: открываем Командную строку, вводим telnet, IP-адрес через пробелы и номер интересующего порта, затем enter. В случае успешного соединения экран становится пустым, либо могут появиться символы. При неудаче выводится соответствующее сообщение.