Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Как проверить открыт ли порт на сервере: команды nc, telnet, nmap

Обновлено: 27.08.2026 · Официальная документация ↗

Почему сайт или база данных не отвечает?

При настройке удаленного подключения к базе данных MySQL (порт 3306), SSH (порт 22) или веб-сайту (порт 80/443) часто возникает ошибка тайм-аута соединения. Обычный ping проверяет только доступность сервера по протоколу ICMP, но не дает понимания: открыт ли конкретный порт в фаерволе и запущена ли на нем служба.

Способы быстрой проверки открытых портов

  1. Самый быстрый способ: утилита Netcat (nc):
    # Синтаксис: nc -zv [IP_ИЛИ_ХОСТ] [НОМЕР_ПОРТА]
    nc -zv 192.168.1.50 80
    nc -zv 192.168.1.50 3306

    Если порт открыт, вы получите ответ: Connection to 192.168.1.50 80 port [tcp/http] succeeded!. Если закрыт — Connection refused или Timed out.

  2. Классический способ через Telnet:
    telnet 192.168.1.50 443

    Черный экран или сообщение Connected означают, что порт успешно отвечает. Для выхода нажмите Ctrl + ], затем введите quit.

  3. Мощное сканирование диапазона через Nmap:
    # Установка:
    sudo apt install nmap -y
    
    # Сканирование конкретных портов:
    nmap -p 22,80,443,3306 192.168.1.50

Разбор параметров: Ключ -z в команде netcat означает режим сканирования без отправки данных, а -v (verbose) выводит подробный понятный результат на экран.

💡 Практика специалистов: При диагностике внешнего доступа всегда проверяйте порт как из локальной сети, так и из внешнего интернета (например, со смартфона). Это сразу локализует проблему: кроется ли она в фаерволе хостинга или в настройках сервиса.

Частые вопросы (FAQ)

В чем разница между Connection refused и Connection timed out?

`Connection refused` означает, что сервер доступен, но программа на этом порту выключена. `Timed out` означает, что пакет блокируется фаерволом (UFW, iptables) или роутером.

Как проверить открытые порты на самом сервере изнутри?

Выполните команду `sudo ss -tulpn`. Она выведет все процессы, слушающие сетевые соединения прямо сейчас.

Как проверить UDP порт (например, для DNS или Wireguard)?

Добавьте флаг `-u` в утилиту netcat: `nc -zvu 192.168.1.1 53`.

Можно ли проверить порт стандартными средствами Windows без сторонних программ?

Да, в PowerShell есть встроенная команда: `Test-NetConnection -ComputerName 192.168.1.50 -Port 80`.

Полезные материалы
Рекомендуем