hostingsites.ru

Проверка порта: как узнать, открыт ли порт на сервере

Обновлено 29 октября 2026 Чтение 9 мин Все статьи блога

Проверка порта показывает, принимает ли сервер соединения на нужном номере: например, 22 для SSH или 443 для сайта. В статье разберём, что значат статусы «открыт», «закрыт» и «фильтруется», как проверить порт командами в Windows и Linux и что делать, если соединение не проходит. Если сервер не отвечает вовсе, сначала выполните IP test с ping и traceroute.

Проверка порта: как узнать, открыт ли порт на сервере — инструкция для новичка

Коротко

  • Номер порта — число от 0 до 65535; порты 0–1023 считаются системными (well-known).
  • Для SSH обычно используют порт 22, для HTTP — 80, для HTTPS — 443.
  • Проверка даёт один из трёх результатов: открыт, закрыт или фильтруется.
  • В Windows порт проверяет команда Test-NetConnection, в Linux — nc -zv и ss -tlnp.
  • Проверять порт нужно с другого устройства: с самого сервера вы не увидите блокировку внешним файрволом.
  • Закрытый порт чаще всего означает, что служба не запущена, слушает не тот адрес или порт закрыт файрволом.
  • Проверяйте только свои серверы или те, на которые есть разрешение владельца.

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

Порт — это «дверь» службы на IP-адресе. Адрес указывает, какой сервер вы вызываете, а номер порта — какая программа на нём должна ответить. Порт — число от 0 до 65535 (16 бит), поэтому на одном сервере одновременно работают сайт, почта и удалённый доступ.

Порты 0–1023 считаются системными (well-known), их регистрирует IANA — организация, которая распределяет номера и адреса в интернете. Для SSH обычно используют порт 22, для HTTP — 80, для HTTPS — 443.

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

  • вы заказали новый VPS и хотите убедиться, что доступ по SSH открыт;
  • сайт не открывается, и нужно понять, виноват ли порт 80 или 443;
  • не подключается SSH, хотя пароль верный;
  • вы настраиваете почту и проверяете, доступны ли нужные порты;
  • вы выбираете сервер и хотите заранее понять, какой VPS подойдёт под ваши задачи.

Как работает проверка порта: TCP, UDP и три статуса

Порт — число от 0 до 65535, которое указывает, какой службе на сервере адресован пакет. Номер привязан к протоколу: 22/TCP и 22/UDP — это разные порты. TCP (Transmission Control Protocol) устанавливает соединение, UDP (User Datagram Protocol) отправляет данные без него.

Проверка TCP-порта повторяет рукопожатие из трёх пакетов. Вы отправляете SYN, сервер отвечает SYN-ACK, вы подтверждаете пакетом ACK, и соединение установлено. Если так получилось для 203.0.113.10:22, на порту 22 работает служба, обычно SSH. У UDP рукопожатия нет: проверка отправляет пакет и ждёт ответ, а служба может промолчать.

Результат — один из трёх статусов:

  • open — служба отвечает, соединение принято;
  • closed — хост отвечает отказом: он доступен, но на порту никто не слушает;
  • filtered — ответа нет совсем, вероятно, пакеты отбрасывает файрвол.

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

Для UDP результат менее надёжен: статус «открыт» часто нельзя подтвердить однозначно, потому что служба может не ответить на пустой пакет. Поэтому молчание UDP-порта читают как «открыт или фильтруется». Доступность самого адреса сервера проверьте отдельно: проверьте IP сервера.

Схема трёх статусов порта: открыт, закрыт и фильтруется
Три возможных ответа при проверке порта

Как проверить порт сервера: пошаговая инструкция

Проверка занимает 5–7 действий и несколько минут. В примере берём сервер 203.0.113.10 и порт 22/TCP (Transmission Control Protocol), который обычно использует SSH (Secure Shell). Проверяйте только свои серверы или те, на которые есть разрешение владельца.

Главное правило: запускайте проверку с внешней сети, а не с самого сервера. Адрес localhost не покажет блокировку на уровне провайдера или панели управления. Если не уверены в адресе, сначала проверьте IP-адрес сервера.

Сама проверка состоит из семи шагов:

  1. Узнайте публичный IP-адрес сервера в панели хостинга. В примере это 203.0.113.10.
  2. Определите порт и протокол. Для SSH это 22/TCP: номер порта привязан к протоколу, а допустимые значения лежат в диапазоне 0–65535.
  3. Возьмите другое устройство: ноутбук или компьютер в другой сети, например с мобильным интернетом.
  4. В Windows откройте PowerShell и выполните Test-NetConnection -ComputerName 203.0.113.10 -Port 22. Успех покажет строка TcpTestSucceeded : True.
  5. В Linux или macOS выполните в терминале nc -zv 203.0.113.10 22. Ключ -z только проверяет соединение, -v выводит подробности.
  6. Прочитайте результат. Сообщение об успехе (succeeded) значит, что порт открыт. Connection refused означает, что порт закрыт: хост ответил отказом. Долгое ожидание и тайм-аут говорят, что порт фильтруется, вероятно, файрволом.
  7. Если порт закрыт или фильтруется, зайдите на сервер и выполните ss -tlnp. Найдите строку с :22: она подтверждает, что служба слушает порт и на каком адресе.
Окно PowerShell с результатом проверки порта 22 командой Test-NetConnection
Результат Test-NetConnection: TcpTestSucceeded True означает, что порт 22 доступен (иллюстрация интерфейса)

Какие порты проверять чаще всего

Порт — число от 0 до 65535, а номер привязан к протоколу: TCP (с установкой соединения) или UDP (без неё). Порты 0–1023 системные, их регистрирует IANA (Internet Assigned Numbers Authority). Большинство задач сводится к десятку стандартных номеров.

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

Порт Протокол Служба Что проверяют
22 TCP SSH (Secure Shell) Удалённый доступ к серверу
80 TCP HTTP Открывается ли сайт без шифрования
443 TCP HTTPS Открывается ли сайт по защищённому каналу
21 TCP FTP Загрузка файлов на сервер
25, 587 TCP SMTP Отправка почты: 25 между серверами, 587 от почтовых программ
53 UDP и TCP DNS Ответы на запросы имён
3306 TCP MySQL Доступ к базе данных
5432 TCP PostgreSQL Доступ к базе данных
3389 TCP RDP (Remote Desktop Protocol) Удалённый рабочий стол Windows

Порты баз данных 3306 и 5432 лучше не открывать всему интернету: их постоянно перебирают подбором паролей. Разрешите доступ только с нужных IP-адресов через файрвол или подключайтесь через SSH-туннель. То же относится к 3389.

Команды для проверки порта в Windows, Linux и macOS

В Windows порт проверяет командлет PowerShell Test-NetConnection -ComputerName 203.0.113.10 -Port 22. В выводе ищите поле TcpTestSucceeded: значение True означает, что соединение с портом 22/TCP установилось. Значение False говорит, что порт закрыт или фильтруется, а какой именно случай, команда не уточняет.

В Linux и macOS используйте nc -zv 203.0.113.10 22 (netcat). Ключ -z только проверяет соединение без передачи данных, -v выводит подробности. Строка с succeeded значит, что порт открыт; Connection refused — порт закрыт; зависание и таймаут — порт, вероятно, фильтруется файрволом.

Утилита nmap -p 22 203.0.113.10 показывает статус прямо словами: open, closed или filtered. Для UDP добавьте ключ -sU и запускайте команду с правами администратора. Учтите: для UDP статус «открыт» часто нельзя подтвердить однозначно, потому что служба может просто не ответить.

Команда ss -tlnp работает иначе: она выполняется на самом сервере и показывает, какие порты слушают службы. Она не проверяет доступность снаружи, зато подтверждает, что служба запущена и слушает нужный адрес.

Чем отличаются эти команды:

  • Test-NetConnection — Windows, быстрый ответ «да/нет» по TCP;
  • nc -zv — Linux и macOS, простая проверка одного порта;
  • nmap -p — три статуса и поддержка UDP через -sU;
  • ss -tlnp — список слушающих портов на сервере.

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

Почему порт закрыт: типичные ошибки и что делать

Статус подсказывает, где искать причину. Ответ «закрыт» (closed) значит, что хост доступен, но на порту никто не слушает. Статус «фильтруется» (filtered) значит, что ответа нет, и вероятная причина — файрвол.

Чаще всего порт оказывается закрыт из-за шести ошибок:

  • служба не запущена;
  • служба слушает только 127.0.0.1;
  • порт закрыт в файрволе системы;
  • порт закрыт в файрволе панели хостинга;
  • проверяется не тот номер или протокол;
  • проверка запускается с самого сервера.

Служба не запущена

На сервере выполните ss -tlnp и найдите строку с нужным номером, например :22. Если строки нет, запустите службу, например systemctl start ssh, и посмотрите её журнал, если она не стартует.

Служба слушает только 127.0.0.1

Адрес 127.0.0.1:порт в выводе ss -tlnp значит, что служба принимает соединения только изнутри. Укажите в конфиге службы 0.0.0.0 или внешний IP-адрес сервера и перезапустите её.

Порт закрыт в файрволе системы

Откройте порт командой ufw allow 22/tcp, затем проверьте правила через ufw status.

Порт закрыт в файрволе панели хостинга

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

Проверяется не тот номер или протокол

Номер порта привязан к протоколу: открытый 53/TCP ничего не говорит о 53/UDP. Сверьте номер и протокол с настройками службы и повторите проверку.

Проверка запускается с самого сервера

Через localhost порт выглядит открытым, хотя снаружи его блокирует файрвол панели или провайдера. Повторите проверку из другой сети, например с домашнего компьютера или телефона: nc -zv 203.0.113.10 22.

Если идти по этим пунктам от службы к внешней сети, причина обычно находится за 5–10 минут. Если сервер не подходит по ресурсам или настройкам сети, подберите VPS под свою задачу.

Терминал Linux с выводом ss -tlnp: sshd на 0.0.0.0:22, nginx на 0.0.0.0:443, postgres только на 127.0.0.1:5432
Вывод ss -tlnp: postgres слушает только 127.0.0.1, поэтому снаружи порт 5432 закрыт (иллюстрация интерфейса)

Онлайн-проверка или команды: что выбрать

Онлайн-проверка быстрее: вы вводите IP-адрес 203.0.113.10 и порт 22/TCP, а сервис пробует подключиться со своего узла. Обычно это занимает меньше минуты. Так вы видите внешнюю доступность, то есть то, что увидит клиент из интернета. Ограничение одно: адрес должен быть публичным, до сервера в локальной сети онлайн-сервис не достучится.

Команды дают больше гибкости. Test-NetConnection в Windows и nc -zv в Linux и macOS проверяют любой порт, в том числе во внутренней сети. Команда nmap -p 20-25 203.0.113.10 проверит сразу шесть портов за один запуск. Но результат отражает только вашу сеть: домашний или офисный файрвол может блокировать исходящие соединения.

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

Выбирайте способ по ситуации:

  • Нужно узнать, видят ли сайт или SSH клиенты из интернета: онлайн-проверка.
  • Сервер во внутренней сети или за VPN (Virtual Private Network, виртуальной частной сетью): команды.
  • Нужно проверить несколько портов или UDP: nmap, для UDP с ключом -sU.
  • Результаты расходятся: проверьте обоими способами и сравните.

Когда проверка порта не поможет

Статус «открыт» говорит только об одном: на порту кто-то принимает соединение. Сама служба при этом может работать неправильно. Например, сайт на порту 443 отвечает ошибкой 500, а база на 3306 отклоняет вход по паролю. Чтобы это выяснить, откройте журнал службы и проверьте её ответ на уровне приложения.

Проверка порта не заменяет аудит безопасности. Она показывает один порт за раз и не оценивает уязвимости, настройки доступа и версии программ. Не используйте её и для чужих серверов: проверять можно только свои машины или те, на которые есть разрешение владельца. Массовое сканирование выглядит как атака и может закончиться блокировкой вашего адреса.

С UDP (User Datagram Protocol) и сложными схемами результат тоже ненадёжен. Служба на 53/UDP может просто промолчать, и статус «открыт» подтвердить не получится. За NAT (трансляцией адресов) или балансировщиком нагрузки запрос иногда доходит не до того сервера, который вы проверяете.

В таких случаях переходите к другим инструментам:

  • читайте логи службы, например через journalctl -u имя_службы;
  • смотрите пакеты на сервере командой tcpdump -i any port 53;
  • сверяйте, какой адрес и порт слушает служба: ss -tlnp;
  • повторите проверку с внешнего устройства после каждой правки.

Если схема сети слишком запутана, подберите VPS с понятной настройкой сети и проверяйте сервис на нём.

Частые вопросы

Как проверить, открыт ли порт на моём сервере?
Выполните команду с другого устройства: в Windows — Test-NetConnection -ComputerName IP -Port номер, в Linux — nc -zv IP номер. Если вывод показывает успех (TcpTestSucceeded: True или succeeded), порт открыт.
Что значит статус «filtered»?
Хост не ответил ни отказом, ни подтверждением. Обычно пакеты отбрасывает файрвол в системе, в панели хостинга или у провайдера.
Чем закрытый порт отличается от фильтруемого?
Закрытый порт быстро отвечает отказом: хост доступен, но на этом номере никто не слушает. Фильтруемый молчит, и клиент ждёт до истечения времени ожидания.
Можно ли проверить порт с самого сервера?
Можно, но результат неполный. Так вы увидите, слушает ли служба порт (ss -tlnp), но не узнаете, пропускает ли его внешний файрвол.
Какой порт используется для SSH?
По умолчанию — 22/TCP. Администраторы иногда меняют его на другой номер, тогда при подключении и проверке нужно указывать именно его.
Как проверить UDP-порт?
Для UDP используйте nmap с ключом -sU, например nmap -sU -p 53 IP. Результат «open|filtered» означает, что служба просто не ответила, и однозначного вывода сделать нельзя.
Почему порт открыт, а сайт не работает?
Открытый порт говорит только о том, что соединение принято. Сайт может отвечать ошибкой из-за неверной настройки веб-сервера, сертификата или приложения, поэтому смотрите логи службы.
Как открыть порт на VPS?
Сначала убедитесь, что служба слушает нужный порт, затем разрешите его в файрволе, например ufw allow 22/tcp. Если у хостинга есть внешний файрвол в панели, правило нужно добавить и там.
Законно ли проверять порты чужих серверов?
Проверяйте только свои серверы или те, на которые есть разрешение владельца. Одиночная проверка своего порта безопасна, а массовое сканирование чужих адресов может расцениваться как попытка атаки.

Проверьте себя

  • Служба запущена и слушает нужный порт: проверено командой ss -tlnp.
  • Служба слушает внешний адрес, а не только 127.0.0.1.
  • Порт разрешён в файрволе сервера, например ufw allow 22/tcp.
  • Правило добавлено и во внешнем файрволе панели хостинга, если он есть.
  • Проверка выполнена с другого устройства, а не с самого сервера.
  • Указан правильный протокол: TCP или UDP.
  • Порты баз данных (3306, 5432) не открыты всему интернету без необходимости.

На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.