Сообщение «компьютер отверг запрос на подключение» (в английских версиях — connection refused) означает, что удалённая машина получила ваш сетевой пакет, но целевой порт оказался закрыт: ни одна программа не принимает на нём соединения. Это принципиально отличается от тайм-аута, когда запрос вообще не доходит до адресата, — здесь диагностика ведётся уже на стороне конкретного компьютера и конкретной службы.

Ошибка встречается в самых разных сценариях: при подключении по SSH, к веб-серверу, к базе данных, при удалённом доступе через RDP или при обращении браузера к локальному сервису вроде localhost:8080. Логика поиска причины во всех случаях одинакова: сначала проверяется, запущена ли нужная служба, затем — слушает ли она нужный порт, и только потом — не блокирует ли соединение брандмауэр.

Что технически означает отказ в подключении

Когда клиент отправляет запрос на TCP-порт, операционная система сервера проверяет, есть ли процесс, который «слушает» этот порт. Если такого процесса нет, система отвечает пакетом сброса (RST), и клиент получает connection refused. Это штатное поведение сетевого стека, а не признак поломки оборудования.

Важно различать три типа неудачного подключения:

  • 🔌 Connection refused — порт закрыт, служба не запущена или слушает другой интерфейс;
  • ⏱️ Connection timed out — пакеты не доходят: проблема с маршрутизацией, файрвол молча отбрасывает трафик, хост недоступен;
  • 🚫 Connection reset — соединение началось, но было принудительно оборвано одной из сторон.

Такое разграничение экономит время: при «refused» искать проблему в кабелях и роутере бессмысленно — сеть работает, отказ даёт сама целевая система.

Основные причины ошибки

На практике список причин невелик, и проверять их стоит в порядке от простого к сложному.

  • 🛑 Служба не запущена — самая частая причина: веб-сервер, SSH-демон или база данных просто не стартовали или завершились с ошибкой;
  • 🔢 Неверный порт — клиент обращается не туда: например, приложение работает на 8080, а запрос идёт на 80;
  • 🧱 Брандмауэр или антивирус — правило блокирует входящие соединения на нужный порт;
  • 🏠 Служба привязана только к localhost — программа слушает 127.0.0.1 и недоступна извне;
  • 🌐 Неверный адрес назначения — опечатка в IP, подключение к другой машине в сети.

Отдельный случай — служба слушает только IPv6-интерфейс, а клиент подключается по IPv4 (или наоборот). Внешне это выглядит как «порт закрыт», хотя приложение исправно работает. Проверить это можно через вывод списка слушающих сокетов, о котором ниже.

⚠️ Внимание: не отключайте брандмауэр полностью «для проверки» на машине, доступной из интернета. Даже короткое окно без фильтрации делает открытые порты видимыми для автоматических сканеров. Создавайте точечное временное правило вместо полного отключения защиты.

📊 Где вы столкнулись с ошибкой «connection refused»?