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

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

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

Что это: telnet — это командная утилита для подключения к удаленным серверам через текстовый интерфейс. Она позволяет проверить доступность порта на сервере.

Как использовать:

  1. Откройте командную строку или терминал.

  2. Введите команду:

    bash
    telnet <IP-адрес> <номер_порта>

    Пример:

    bash
    telnet 192.168.1.1 80

    Эта команда проверит, открыт ли порт 80 (HTTP) на сервере с IP-адресом 192.168.1.1.

Что делать, если порт открыт:

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

bash
Connected to 192.168.1.1. Escape character is '^]'.

Что делать, если порт закрыт:

Если порт закрыт, вы получите ошибку:

bash
Could not open connection to the host, on port 80: Connect failed

Примечание:

  • Утилита telnet может быть не установлена по умолчанию на некоторых системах (например, на последних версиях Windows). В таком случае нужно установить её через настройки или использовать другие инструменты (например, nc или nmap).


2. Использование утилиты nc (netcat)

Что это: nc (или netcat) — это универсальный инструмент для работы с сетевыми соединениями. Он позволяет проверять порты как локально, так и удаленно.

Как использовать:

Для проверки порта на удаленном хосте используйте следующую команду:

bash
nc -zv <IP-адрес> <номер_порта>

Пример:

bash
nc -zv 192.168.1.1 80
  • Флаг -z указывает, что утилита должна только проверять доступность порта, не отправляя данных.

  • Флаг -v включает более подробный вывод.

Если порт открыт, будет выведено сообщение:

bash
Connection to 192.168.1.1 port 80 [tcp/http] succeeded!

Если порт закрыт, будет выведено сообщение:

bash
nc: connect to 192.168.1.1 port 80 (tcp) failed: Connection refused

Примечание:

  • nc обычно доступен на Linux и macOS, а для Windows его можно установить через сторонние утилиты.


3. Использование инструмента nmap

Что это: nmap — мощный инструмент для сканирования сетей, который позволяет не только проверять доступность портов, но и анализировать целые сети.

Как использовать:

  1. Установите nmap, если он ещё не установлен.

    • В Linux: sudo apt install nmap (для Debian-based систем)

    • В macOS: brew install nmap

    • В Windows: скачайте и установите с официального сайта.

  2. Для проверки порта на удаленном хосте используйте команду:

    bash
    nmap -p <номер_порта> <IP-адрес>

    Пример:

    bash
    nmap -p 80 192.168.1.1

    Команда проверит, открыт ли порт 80 на сервере с IP-адресом 192.168.1.1.

  3. Для сканирования нескольких портов:

    bash
    nmap -p 80,443,22 192.168.1.1
  4. Для сканирования всех портов (0-65535):

    bash
    nmap -p- 192.168.1.1

Что делать, если порт открыт:

Если порт открыт, вы получите вывод типа:

bash
PORT STATE SERVICE 80/tcp open http

Что делать, если порт закрыт:

Если порт закрыт, вывод будет выглядеть так:

bash
PORT STATE SERVICE 80/tcp filtered http

Примечание:

  • В отличие от telnet и nc, nmap даёт больше информации, например, о типе сервиса, работающего на порту, а также о состоянии порта (открыт, закрыт, фильтруется).


4. Проверка с помощью инструмента ss (для Linux)

Что это: Утилита ss позволяет выводить информацию о сокетах, а также использовать её для проверки открытых портов на локальной машине.

Как использовать:

Чтобы проверить открытые порты на вашем компьютере:

bash
ss -tuln
  • Флаг -t означает проверку TCP-соединений.

  • Флаг -u проверяет UDP-соединения.

  • Флаг -l выводит только те порты, которые находятся в состоянии «слушает» (LISTEN).

  • Флаг -n выводит IP-адреса и порты в числовом виде.

Пример вывода:

bash
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:80 *:* LISTEN 0 128 *:22 *:*

Это означает, что на машине открыты порты 80 (HTTP) и 22 (SSH).


5. Использование онлайн-сервисов

Что это: Онлайн-сервисы предоставляют возможность проверить доступность порта на сервере без установки дополнительных инструментов. Такие сервисы сканируют порты с удалённого сервера и отображают результат.

Как использовать:

  1. Перейдите на сайт, например:

  2. Введите внешний IP-адрес вашего сервера и номер порта.

  3. Нажмите кнопку для проверки.

Что делать, если порт открыт:

Если порт открыт, сервис сообщит, что порт доступен.

Что делать, если порт закрыт:

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


6. Проверка портов на Windows с помощью PowerShell

Для пользователей Windows можно использовать PowerShell для проверки открытых портов.

Как использовать:

  1. Откройте PowerShell с правами администратора.

  2. Для проверки конкретного порта используйте команду:

    powershell
    Test-NetConnection -ComputerName <IP-адрес> -Port <номер_порта>

    Пример:

    powershell
    Test-NetConnection -ComputerName 192.168.1.1 -Port 80
  3. Для проверки нескольких портов:
    Вы можете использовать скрипт для проверки нескольких портов на удаленной машине:

    powershell
    $ports = @(80, 443, 22) $ip = "192.168.1.1" foreach ($port in $ports) { Test-NetConnection -ComputerName $ip -Port $port }

Заключение

Каждый из этих методов имеет свои особенности. Для простых проверок достаточно использовать telnet или nc, но если нужно более детальное сканирование сети, то лучше использовать nmap. Для мониторинга портов на локальном сервере — отлично подходит ss. Важное замечание: помимо проверки открытых портов, важно убедиться, что настройки брандмауэра или сетевых фильтров не блокируют соединение.

Scroll to Top

Карта сайта