Sobes.tech
Назад к вопросам
Senior
8

Connection refused при подключении к сервису на той же машине. Как диагностировать?

Компании, где спрашивали
WildberriesWildberries

Ответ от нейросети

sobes.tech AI

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

Для диагностики:

  1. Проверить, запущен ли сервис и слушает ли нужный порт:

    netstat -tuln | grep <порт>
    # или
    ss -tuln | grep <порт>
    

    Если порт не отображается, сервис не запущен или слушает другой порт.

  2. Проверить настройки брандмауэра (firewall): Убедиться, что локальные подключения на этот порт не блокируются.

  3. Проверить, на каком интерфейсе слушает сервис: Иногда сервис слушает только на localhost (127.0.0.1), а клиент пытается подключиться по другому IP, или наоборот.

  4. Проверить логи сервиса: Возможно, сервис упал или не смог корректно инициализироваться.

  5. Проверить правильность адреса и порта в клиенте: Ошибка в конфигурации может привести к попытке подключения к неправильному порту.

  6. Использовать утилиты для теста подключения:

    telnet 127.0.0.1 <порт>
    # или
    nc -vz 127.0.0.1 <порт>
    
  7. Проверить SELinux/AppArmor: В некоторых системах они могут блокировать соединения.

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