Skip to content
EN
← Все статьи

Telnet: как проверить порт в Windows и Linux — команды

Командная строка с подключением telnet к порту сервера

Чтобы через telnet проверить порт, выполните telnet адрес порт, например telnet example.com 443. Если экран очистился и курсор мигает — TCP-порт открыт и на нём кто-то слушает. Сообщение «Connection refused» или «Сбой подключения» значит, что порт закрыт, а долгое ожидание без ответа — что соединение отбрасывает файрвол.

Как проверить порт через telnet: команда и синтаксис

Команда telnet принимает два аргумента: имя хоста или IP-адрес и номер порта. Если порт не указать, клиент подключится к порту 23 — стандартному порту самого протокола Telnet, а не того сервиса, который вы хотите проверить. Поэтому номер порта пишется всегда.

telnet example.com 443
telnet 192.168.1.1 22
telnet mail.example.com 25

Что при этом происходит: клиент открывает обычное TCP-соединение — отправляет SYN и ждёт ответа. Если на той стороне порт слушает приложение, приходит SYN-ACK, трёхстороннее рукопожатие завершается, и telnet сообщает об успешном подключении. Дальше всё, что вы наберёте, уйдёт в сокет как есть. Поэтому telnet давно служит универсальным «щупом» для любого TCP-сервиса.

Две важные оговорки. Первая: telnet проверяет только TCP. Порты UDP (DNS на 53/udp, NTP, WireGuard, игровые и VoIP-сервисы) им не проверить — об этом ниже. Вторая: успешное подключение говорит лишь о том, что TCP-рукопожатие завершил кто-то. Это может быть ваше приложение, а может быть балансировщик, обратный прокси или защита от DDoS перед ним.

Как включить telnet в Windows 10 и Windows 11

В Windows клиент Telnet есть, но по умолчанию выключен. Если набрать команду без него, cmd ответит: "telnet" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Включить компонент можно тремя способами — все требуют прав администратора.

Через «Включение компонентов Windows»

  1. Нажмите Win + R, введите optionalfeatures и нажмите Enter (или: Панель управления → Программы и компоненты → Включение или отключение компонентов Windows).
  2. Найдите в списке «Клиент Telnet» (Telnet Client) и поставьте галочку.
  3. Нажмите «ОК» и дождитесь установки. Перезагрузка обычно не нужна — достаточно открыть новое окно командной строки.

Путь одинаков для Windows 10 и Windows 11: в «Параметрах» одиннадцатой версии этот же диалог открывается из раздела «Дополнительные компоненты» ссылкой «Другие компоненты Windows».

Командой DISM

Откройте командную строку от имени администратора и выполните:

dism /online /Enable-Feature /FeatureName:TelnetClient

Через PowerShell

Enable-WindowsOptionalFeature -Online -FeatureName TelnetClient

Проверить, что компонент стоит, можно так: Get-WindowsOptionalFeature -Online -FeatureName TelnetClient — в поле State должно быть Enabled. Чтобы удалить или отключить telnet обратно, используйте dism /online /Disable-Feature /FeatureName:TelnetClient. Сам клиент ничем не опасен: риск создаёт не клиент, а сервер Telnet, принимающий входящие подключения.

Проверка порта без telnet: Test-NetConnection в PowerShell

На Windows 8.1 / Server 2012 R2 и новее включать telnet часто вообще не нужно: в PowerShell есть командлет Test-NetConnection, который делает то же самое и выдаёт однозначный ответ.

Test-NetConnection example.com -Port 443

В выводе смотрите на строку TcpTestSucceeded: True — порт открыт, False — нет. Попутно командлет покажет, в какой IP разрешилось имя (RemoteAddress) и через какой интерфейс ушёл запрос. Короткий псевдоним — tnc, а для скриптов удобен ключ -InformationLevel Quiet, который возвращает просто True или False:

tnc 10.0.0.15 -Port 3389 -InformationLevel Quiet

Если порт закрыт, командлет дополнительно пингует хост и выводит предупреждение — это штатное поведение. Подробное описание параметров — в документации Microsoft по Test-NetConnection.

Telnet в Linux и macOS

Linux

В минимальных установках серверных дистрибутивов пакета telnet обычно нет. Ставится он одной командой:

sudo apt install telnet      # Debian, Ubuntu
sudo dnf install telnet      # RHEL, AlmaLinux, Rocky, Fedora

Синтаксис тот же: telnet server.example.com 443. Успех выглядит так:

Trying 203.0.113.10...
Connected to server.example.com.
Escape character is '^]'.

macOS

Начиная с macOS High Sierra, telnet из системы убран. Его можно поставить через Homebrew (brew install telnet), но удобнее сразу пользоваться встроенным netcat.

netcat (nc) — замена telnet для проверки портов

nc -zv example.com 443
nc -zv -w 3 10.0.0.15 5432

Ключ -z означает «только проверить, ничего не отправлять», -v — подробный вывод, -w 3 — таймаут в секундах. На macOS успех выглядит как Connection to example.com port 443 [tcp/https] succeeded!, отказ — как Connection refused. Удобство netcat в том, что он сам завершает работу и подходит для скриптов, тогда как telnet после подключения остаётся в интерактивном сеансе.

Если нет ни telnet, ни nc

В bash можно открыть TCP-соединение через псевдоустройство /dev/tcp — это встроенная возможность оболочки, отдельные пакеты не нужны:

timeout 3 bash -c '</dev/tcp/example.com/443' && echo open || echo closed

Ещё один вариант — curl, который умеет схему telnet: curl -v telnet://example.com:443. Строка Connected to в выводе означает, что порт принимает соединения; выйти — Ctrl + C.

Как читать результат проверки порта

Самое полезное в проверке — не сам факт «открыт или нет», а то, как именно не получилось подключиться. Разные ответы указывают на разные причины.

Что вы видитеЧто это значитЧто делать
Windows: пустой чёрный экран с мигающим курсором. Linux: Connected to …Порт открыт, TCP-рукопожатие прошлоСеть в порядке; если сервис всё равно не работает — ищите причину в самом приложении
Connection refused / «Не удалось открыть подключение к этому узлу, на порт N: Сбой подключения» сразуХост доступен, но на порту никто не слушает, либо файрвол отвечает отказом (REJECT)Проверить, запущен ли сервис и на каком адресе он слушает
Долго висит Trying …, затем Connection timed outПакеты отбрасываются без ответа (DROP) или хост недоступенПроверить файрвол на сервере, группы безопасности у хостера, маршрут до узла
No route to hostНет маршрута до сети или хост не отвечает в локальном сегментеПроверить адрес, шлюз, маршрутизацию
could not resolve …: Name or service not knownИмя не разрешается в IPПроверить DNS-записи домена или подставить IP напрямую
Подключение прошло и сразу Connection closed by foreign hostПорт открыт, но сервис закрыл соединение — например, по списку разрешённых адресов или лимиту подключенийСмотреть журнал сервиса, правила доступа (allow-list, fail2ban)

Отличие «refused» от «timeout» — ключ к диагностике. Отказ приходит мгновенно: значит, пакет дошёл до узла и тот ответил. Таймаут означает, что ответа не было вовсе — чаще всего пакеты молча отбрасывает межсетевой экран на сервере, у провайдера или в облачной панели. Помните и об исходящих ограничениях: многие домашние и мобильные провайдеры блокируют исходящие подключения на порт 25, поэтому таймаут на 25-м порту с домашнего компьютера ещё не доказывает, что почтовый сервер недоступен.

Как выйти из telnet

После успешного подключения telnet ждёт ввода. Чтобы выйти, нажмите Ctrl + ] — появится приглашение telnet> (в Windows — Microsoft Telnet>), затем введите quit и Enter. Если удалённая сторона сама закроет соединение, клиент завершится с сообщением Connection closed by foreign host.

Порт открыт снаружи или только локально

Частая ситуация: с самого сервера telnet localhost 8080 подключается, а с другого компьютера — нет. Обычно это значит, что приложение слушает только петлевой адрес 127.0.0.1, а не все интерфейсы. Посмотреть, какие порты и на каких адресах слушают процессы, можно так:

# Linux
sudo ss -tlnp

# Windows (cmd)
netstat -ano | findstr :8080

# Windows (PowerShell)
Get-NetTCPConnection -LocalPort 8080 -State Listen

Если в колонке адреса стоит 127.0.0.1:8080, сервис доступен только с самой машины; 0.0.0.0:8080 или [::]:8080 — со всех интерфейсов, и дальше решает файрвол. Проверку «изнутри» стоит всегда дублировать проверкой «снаружи»: из другой сети или онлайн-сервисом, иначе вы проверяете не то, что видят пользователи.

Проверка других протоколов через telnet: HTTP, SMTP, DNS

Раз telnet отправляет в сокет всё, что вы набираете, с его помощью можно вручную поговорить с текстовыми протоколами.

HTTP на порту 80

telnet example.com 80
GET / HTTP/1.1
Host: example.com

После строки Host нужна пустая строка — дважды Enter. Сервер вернёт статус (HTTP/1.1 200 OK, 301 Moved Permanently) и заголовки. В клиенте Windows набираемые символы не отображаются на экране — включить эхо можно через Ctrl + ] и команду set localecho. С портом 443 такой приём не сработает: там сначала идёт TLS-рукопожатие, и для ручной проверки HTTPS нужен openssl s_client -connect example.com:443.

SMTP на порту 25

При подключении к почтовому серверу вы сразу увидите приветствие с кодом 220 и именем сервера, дальше можно отправить EHLO и посмотреть список поддерживаемых расширений. Это быстрый способ убедиться, что MX отвечает, — подробный разбор диалога есть в статье о проверке почтового сервера.

DNS и UDP

Проверить через telnet DNS-сервер в обычном режиме нельзя: DNS-запросы идут по UDP на 53-й порт. Команда telnet 8.8.8.8 53 проверит лишь TCP-вариант DNS, который используется для больших ответов и передачи зон. Для UDP в целом надёжных «проверок одной командой» нет: у протокола нет рукопожатия, и если сервис молчит, невозможно отличить открытый порт от отброшенного пакета. Вывод nc -zuv в таком случае ненадёжен; точнее работает sudo nmap -sU -p 53 адрес, но и он часто отвечает «open|filtered». Разница между протоколами подробно разобрана в материале TCP и UDP: в чём разница.

Протокол Telnet и почему его заменил SSH

Telnet — это не только утилита, но и сетевой протокол удалённого терминального доступа, описанный в RFC 854. Он работает поверх TCP на порту 23: клиент подключается к серверу Telnet и получает командную строку удалённой машины.

Главная проблема протокола — всё передаётся открытым текстом, включая логин и пароль. Любой, кто может перехватить трафик на пути (в общей Wi-Fi-сети, на скомпрометированном маршрутизаторе, в сегменте провайдера), прочитает учётные данные. Кроме того, открытый порт 23 в интернете постоянно сканируют боты, подбирающие стандартные пароли к роутерам и IP-камерам.

Поэтому для удалённого доступа Telnet заменён SSH (порт 22): он шифрует сеанс, проверяет подлинность сервера и поддерживает вход по ключам. Практическое правило:

  • Клиент telnet как инструмент проверки портов — безопасен и полезен.
  • Сервер Telnet на машине, доступной из интернета, — отключить. На Linux это пакет telnetd или telnet-server, в Windows — роль «Сервер Telnet» (в современных версиях её уже нет).
  • Telnet на сетевом оборудовании (коммутатор, роутер, в том числе Keenetic, где командная строка доступна по telnet из домашней сети) — оставить только для локальной сети или выключить, если оборудование поддерживает SSH.

Как настроить вход без пароля и закрыть подбор, описано в инструкции по входу по SSH-ключу, а о том, чем опасны лишние открытые порты, — в статье открытые порты сервера.

Таблица команд для проверки порта

ЗадачаWindowsLinuxmacOS
Проверить TCP-портtelnet host 443telnet host 443nc -zv host 443
Проверить порт с ответом True/Falsetnc host -Port 443 -InformationLevel Quietnc -z -w 3 host 443; echo $?nc -z -w 3 host 443; echo $?
Без установки пакетовTest-NetConnection host -Port 443bash -c '</dev/tcp/host/443'nc -zv host 443
Установить telnetdism /online /Enable-Feature /FeatureName:TelnetClientsudo apt install telnetbrew install telnet
Какие порты слушает сама машинаnetstat -anosudo ss -tlnpsudo lsof -iTCP -sTCP:LISTEN -n -P
Проверить HTTPS вручнуюopenssl s_client -connect host:443openssl s_client -connect host:443openssl s_client -connect host:443

Для Windows-клиента справочник всех встроенных команд (open, close, set, display) опубликован в документации Microsoft по telnet.

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

Telnet на вашем компьютере проверяет порт с вашей точки сети — через ваш роутер, провайдера и корпоративный прокси. Чтобы увидеть сервер так, как его видят посетители из интернета, нужна проверка извне:

  • Сканер портов — проверяет, какие TCP-порты сервера доступны из интернета, без установки программ.
  • Ping — показывает, отвечает ли узел вообще и с какой задержкой; полезно, когда telnet упирается в таймаут.
  • Traceroute — помогает найти участок маршрута, на котором теряются пакеты.

Если порт открыт у вас локально, но закрыт при онлайн-проверке, ищите фильтрацию на пути: файрвол хостера, облачные группы безопасности, проброс портов на роутере. Больше способов — от сканирования до просмотра слушающих процессов — собрано в руководстве как проверить открытые порты.

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

Почему в Windows после команды telnet просто чёрный экран?

Это и есть успешный результат: соединение установлено, клиент ждёт ввода. Порт открыт. Выйти можно через Ctrl + ] и команду quit.

Можно ли проверить через telnet UDP-порт?

Нет. Telnet работает только поверх TCP. Для UDP используйте nmap -sU и помните, что ответ «open|filtered» не даёт однозначного результата.

Чем telnet отличается от ping при проверке?

Ping отправляет ICMP-запрос и проверяет, отвечает ли узел целиком, но ничего не говорит о портах. Telnet проверяет конкретный TCP-порт. Узел может не отвечать на ping, но принимать подключения на 443, и наоборот.

Какой порт использует telnet по умолчанию?

TCP-порт 23. Если запустить telnet host без номера порта, клиент подключится именно к нему.

Безопасно ли включать клиент Telnet в Windows?

Да. Клиент ничего не открывает на вашем компьютере, он только инициирует исходящие соединения. Опасен сервер Telnet, принимающий входящие подключения с паролями открытым текстом.

Порт открыт, а сайт или сервис не работает — почему?

Telnet подтверждает только TCP-рукопожатие. Приложение может отвечать ошибкой, требовать TLS, отклонять ваш IP или на порту может слушать не тот сервис — например, прокси или балансировщик. Дальше проверяйте ответ самого сервиса: HTTP-статус, баннер, журналы.

Проверьте ваш сайт прямо сейчас

Проверить доступность сайта →
Другие статьи: Сети
Сети
Как узнать IP-адрес: свой, компьютера, роутера и сервера
15.08.2026 · 5 478 просм.
Сети
Cloudflare в России: что это, блокировки ECH и что делать
20.07.2026 · 4 908 просм.
Сети
ERR_CONNECTION_RESET: как исправить — пошагово за 5 минут
23.06.2026 · 3 714 просм.
Сети
ERR_CONNECTION_REFUSED: как исправить за 3 минуты — 7 способов
23.06.2026 · 1 953 просм.