как узнать какие порты открыты на компе
Как проверить открыт ли сетевой порт
Открытые сетевые порты компьютера являются основной дырой для попадания вирусов из интернета. Контроль над ними является важной задачей для обеспечения безопасности. Для устранения уязвимости следует выявить подозрительные процессы, использующие порты. Посмотрим как это сделать в Windows.
Под портом в сетевых технологиях подразумевается виртуальная дверь, в которую можно постучаться из сети и получить определенный ответ от программы, следящей за этой дверью.
Находим открытые порты в Windows 10
Для нахождения открытых портов будем использовать консоль Windows со встроенными утилитами.
Команда для получения списка открытых портов:
Типы адресов
Локальный адрес указывает на IP вашего устройства, а внешний — того, кто к нему подключен. Условно их можно разделить на несколько типов:
Состояние порта
Возможны следующие состояния:
PID в последнем столбце указывает на идентификатор процесса, который следит за портом. Для вывода детальной информации наберите команду:
Как осуществлять проверку
Просмотрев поочередно все процессы, специалист может выявить подозрительную активность и закрыть доступ к лишним портам или удалить приложение, которое инициирует запуск процесса.
Конкретные рекомендации обычным пользователям дать в этом случае не получится, так как набор работающих процессов и приложений у всех индивидуален. Но в некоторых случаях каждый может попробовать завершить работу подозрительного процесса и посмотреть, как это повлияет на работу компьютера.
Как узнать, какие TCP/IP-порты используют приложения Windows
IP-адрес указывает на компьютер или другое сетевое устройство. Когда одно устройство отправляет трафик другому, IP-адрес используется для маршрутизации трафика в соответствующее место. Как только трафик достигнет нужного места, устройство должно знать, какое приложение или сервис отправляет трафик.
Если IP-адрес сродни почтовому адресу, порт является чем-то вроде имени человека по этому месту жительства, который получает почту. По большей части вам не нужно беспокоиться о портах. Но время от времени вы можете столкнуться с приложением, которое настроено на прослушивание трафика на том порту, который уже использует другое приложении. В этом случае вам нужно будет определить приложение, которое уже использует этот порт.
Существует несколько способов узнать, какое приложение блокирует порт, но мы собираемся пройти через пару встроенных способов, которые используют командную строку, а затем показать вам отличное бесплатное приложение, которое упростит работу, Все эти методы должны работать независимо от того, какую версию Windows вы используете.
Встроенные инструменты контроля портов
Мы предлагаем две команды, чтобы показать список. В первом списке отображаются активные порты вместе с именем процесса, который их использует. В большинстве случаев эта команда будет работать нормально. Иногда, однако, имя процесса не поможет вам определить, какое приложение или служба фактически использует порт. В таком случае вам нужно будет перечислить активные порты вместе со номерами идентификатора процессов, а затем просмотреть эти процессы в диспетчере задач.
Просмотр портов вместе с именами процессов
Во-первых, вам нужно открыть командную строку в режиме администратора. Нажмите «Поиск», а затем введите «командная» в поле поиска. Когда вы увидите «Командная строка» в результатах, щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора».
В командной строке введите следующий текст и нажмите «Ввод»:
Если вы хотите сделать это немного проще, вы также можете выгрузить результаты команды в текстовый файл. Затем вы можете просто найти номер порта в текстовом файле.
Здесь, например, вы можете видеть, что порт 62020 связан процессом Skype4Life.exe. Skype – это приложение для общения между пользователями, поэтому мы можем предположить, что этот порт фактически связан процессом, который регулярно проверяет наличие обновлений для приложения.
Просмотр портов вместе с идентификаторами процессов
Если имя процесса для номера порта, который вы просматриваете, затрудняет определение того, какому приложению он соответствует, вы можете попробовать версию команды, которая показывает идентификаторы процессов (PID), а не имена. Введите следующий текст в командной строке, а затем нажмите Enter :
В столбце справа справа перечислены PID, поэтому просто найдите тот, который связан с портом, который вы пытаетесь устранить.
Затем откройте диспетчер задач, щелкнув правой кнопкой мыши любое открытое пространство на панели задач и выбрав «Диспетчер задач».
Если вы используете Windows 8 или 10, перейдите на вкладку «Подробности» в диспетчере задач. В более старых версиях Windows вы увидите эту информацию на вкладке «Процессы». Отсортируйте список процессов по столбцу «ИД процесса» и найдите PID, связанный с портом, который вы исследуете. Возможно, вы сможете узнать больше о том, какое приложение или служба использует указанный порт, посмотрев столбец «Описание».
Если нет, щелкните процесс правой кнопкой мыши и выберите «Открыть расположение файла». Расположение файла, скорее всего, даст вам подсказку о том, какое приложение задействовано.
Использование NirSoft CurrPorts
Если вы не любите командную строку или предпочли бы использовать простую утилиту, чтобы сделать всё это за один шаг, мы рекомендуем отличный бесплатный CurrPorts. Загрузите инструмент. Только убедитесь, что вы получили правильную версию (обычная версия для 32-разрядной версии Windows, а версия x64 – для 64-разрядной Windows). Это портативное приложение, поэтому вам не нужно его устанавливать. Просто распакуйте папку загрузки и запустите исполняемый файл.
В окне CurrPorts отсортируйте по столбцу «Локальный порт», найдите порт, который вы исследуете, и вы можете увидеть всё: имя процесса, ID, порт, полный путь к процессу и т.д.
Чтобы сделать это ещё проще, дважды щелкните любой процесс, чтобы увидеть каждую деталь в одном окне.
Когда вы определите, какое приложение или служба связаны с порт, – Вы сможете решить, как его использовать. Если это приложение, то можно указать другой номер порта. Если это сервис или у вас нет возможности указать другой номер порта – вероятно, Вам придётся остановить службу или удалить приложение.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как проверить открытые порты на своём компьютере. Что означают 0.0.0.0, :*, [::], 127.0.0.1. Как понять вывод NETSTAT
Почему важно знать, какие порты открыты на компьютере?
Открытый порт на вашем компьютере (если не настроен файервол для запрета входящих соединений) означает, что к вашему компьютеру можно подключиться из вне.
Если с вашим компьютером случалась такая неприятность как заражение трояном, бэкдором (вирусы, которые позволяют злоумышленнику удалённо подключаться к вашему компьютеру и управлять им), то обычно такой бэкдор открывает порт и прослушивает сеть, в ожидании входящего соединения (хотя могут быть варианты).
Ещё один пример, когда нужно определить, какая именно служба прослушивает порт: вы пытаетесь установить сетевую службу (веб-сервер Apache или СУБД MySQL), а они не запускаются, так как какая-то другая служба уже заняла их порт, который они используют по умолчанию. В этом случае нужно найти эту службу и отключить её или настроить на работу с другим портом.
Но, как и во многих IT задачах (да и вообще во многих профессиональных сферах), получить данные это только самое начало. Главное — это правильно их истолковать и понять.
Поэтому в этой статье мы рассмотрим, как узнать, какие порты открыты, как проверить, какая служба прослушивает определённый порт, а также научимся правильно понимать вывод команды NETSTAT и аналогичных.
Как проверить открытые порты в Windows
В Windows есть команда netstat, которая отображает статистику протокола и текущих сетевых подключений TCP/IP.
Используя команду со следующими ключами, можно посмотреть информацию о всех подключениях и прослушиваемых портах в Windows:
Как в Windows узнать, какая программа прослушивает порт
Открытых для прослушивания портов может оказаться достаточно много и обычно они используются легитимными программами. Поэтому при анализе полученных данных также важно знать, какая именно служба прослушивает определённый порт.
Для поиска службы, можно добавить к приведённой команде опцию -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:\Users\Alex\Documents\, тогда для перехода туда я выполняю:
Теперь запустите файл командой вида:
Где [ПОРТ] замените на интересующий вас порт, например, меня интересует порт 80, тогда:
Вновь получаю аналогичный результат.
Если у вас множество портов прослушивает процесс svchost.exe, то чтобы разобраться, какие именно это службы, смотрите статью «Почему svchost.exe прослушивает много портов? Как узнать, какие именно программы открыли порты».
Как проверить открытые порты в Linux. Как узнать, какая служба прослушивает порт
Для Linux тоже есть команда netstat, но она, вроде как, теперь считается устаревшей и на её замену рекомендуется команда ss. Показываемая информация у ss и netstat очень похожи. Даже основные опции идентичны.
Итак, для вывода открытых портов 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 адрес на любом порту
Проверка портов на открытость: 3 способа для проверки
Как проверить порт на открытость в windows
Компьютеры с ОС Windows, использующие для выхода в Интернет, Wi-Fi роутер или проводной маршрутизатор (модем), нередко защищаются с помощью сетевых экранов, которые могут закрывать некоторые порты TCP/UDP.
А, если пользователю требуется, чтобы какой-то конкретный порт оставался открытый (для игры или рабочего приложения), его придётся включать вручную.
Для того чтобы проверить порты на открытость можно воспользоваться несколькими способами, о которых мы поговорим в данной статье.
Способы проверки
Проверку проводят одним из трёх способов:
Зная, как проверить, открыт ли порт на ПК, можно решить проблемы с запуском программ и игр. Выбор конкретного варианта зависит от предпочтений и требований пользователя.
Онлайн-сервисы
Одним из сервисов, позволяющих выполнить проверку открытых портов по IP адресу пользователя, является 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. С помощью этой же программы нужные порты можно и открыть.
Для работы с ней требуется:
Рис. 5. Первый запуск программы Portforward Network Utilities.
XSpider
Приложение XSpider 7.7. позволяет проверять IP-адреса и хосты. Можно определять с его помощью и состояние соединений.
Найдите и скачайте программу в интернете, после скачивания и установки, запустите приложение. Далее, укажите какие следует проверить открытые порты, и запустите процесс нажатием значка запуска.
Рис. 5. Проверка портов приложением XSpider 7.7.
Встроенные утилиты Windows
Есть возможность решить вопрос с открытыми и закрытыми соединениями и с помощью уже встроенных в систему утилит. Одной из них является netstat, запустить которую можно следующим образом:
Рис. 7. Использование утилиты netstat.
Показанные на экране порты являются открытыми. Соответственно, если нужного соединения в списке нет, значит, оно закрыто.
С помощью Telnet
Второй вариант для того чтобы проверить, открыт ли порт – запуск службы Telnet, тоже встроенной в систему Windows.
Хотя на современных версиях Виндовс, начиная с семёрки, утилита по умолчанию отключена и требует активации. Для её запуска нужно сделать следующее:
Рис. 8. Первые этапы запуска Telnet
Теперь можно запускать консоль через командную строку и вводить в ней название утилиты и номер соединения.
При удачном подключении на экране появится информация о нём. Это значит, что порт открыт. При закрытом соединении будут выведены сведения о невозможности его открыть.
Рис. 9. Результаты проверки работы программы Telnet.
Подведение итогов
Некоторые приложения и утилиты позволяют как проверить порты, открыты или нет, так и открывать соединения по определённому адресу и для своего компьютера. Если же причиной того, что порт оказался закрытый, стал брандмауэр, выполнить включение можно с его же помощью.
Для этого в окне утилиты нажимается кнопка добавления соединения, в поле «Имя» вводится описание программы, которой будет занятый порт, и указывается произвольное число в качестве номера.
Хотя перед этим следует точно убедиться, что проблема заключается именно в соединении, воспользовавшись всё теми же приложениями, сервисами и утилитами.
Тематическое видео по сканированию портов:
Сканирование портов средствами Windows
Подробная инструкция как проверить порты на открытость с помощью команды netstat и telnet