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

Онлайн-проверка или команды: что выбрать
Онлайн-проверка быстрее: вы вводите 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 с понятной настройкой сети и проверяйте сервис на нём.
Частые вопросы
Как проверить, открыт ли порт на моём сервере?
Что значит статус «filtered»?
Чем закрытый порт отличается от фильтруемого?
Можно ли проверить порт с самого сервера?
Какой порт используется для SSH?
Как проверить UDP-порт?
Почему порт открыт, а сайт не работает?
Как открыть порт на VPS?
Законно ли проверять порты чужих серверов?
Проверьте себя
- Служба запущена и слушает нужный порт: проверено командой ss -tlnp.
- Служба слушает внешний адрес, а не только 127.0.0.1.
- Порт разрешён в файрволе сервера, например ufw allow 22/tcp.
- Правило добавлено и во внешнем файрволе панели хостинга, если он есть.
- Проверка выполнена с другого устройства, а не с самого сервера.
- Указан правильный протокол: TCP или UDP.
- Порты баз данных (3306, 5432) не открыты всему интернету без необходимости.
На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.