ERR_CONNECTION_REFUSED: сервер отказал в подключении

ERR_CONNECTION_REFUSED значит, что на нужный адрес и порт браузер достучался, но ему ответили отказом. Обычно на порту никто не слушает: веб-сервер остановлен, не запустился после правки конфигурации или слушает не тот адрес. Отказ приходит быстро, это отличает его от тайм-аута.

Обновлено 28 октября 2026

Это не ваш сайт? Если чужой сайт не открывается только у вас — попробуйте другой браузер, мобильный интернет и отключите VPN. Дальше на странице — разбор для владельца сайта.

Что значит ошибка

В исходном коде Chromium эта ошибка описана как отказ в попытке соединения (net_error_list.h). По спецификации TCP, если на порту нет слушающей программы, получатель отвечает сегментом сброса соединения (RFC 9293, раздел 3.5.2). Браузер получает отказ сразу, без ожидания.

Если ответа нет совсем и браузер ждёт десятки секунд, это другая ошибка: ERR_CONNECTION_TIMED_OUT.

Шаг 1. Выясните, у кого ошибка

Откройте адрес с телефона через мобильный интернет и в другом браузере.

  • Открывается. Проблема на вашем устройстве или в сети: шаг 2.
  • Не открывается нигде. Проблема у сайта. Если сайт не ваш, подождите. Если ваш, переходите к шагу 3.

Не хотите разбираться сами? Пришлём оценку в часах до начала работы, первая задача до 2 часов бесплатно.

Отправить задачу

Шаг 2. Устройство и сеть

  1. Откройте файл hosts (C:\Windows\System32\drivers\etc\hosts в Windows, /etc/hosts в macOS и Linux). Если там есть строка с вашим доменом и адресом 127.0.0.1, браузер идёт на ваш же компьютер, где ничего не слушает порт. Удалите строку, если вы её не добавляли для разработки.
  2. Проверьте адрес в строке браузера: если в нём указан порт (:8080, :3000), а на сервере он не открыт, будет отказ.
  3. Выключите VPN, прокси и антивирус с проверкой интернета и повторите.
  4. Смените DNS на 1.1.1.1 или 8.8.8.8 в настройках сети.

Шаг 3. Проверьте порты с внешней сети

curl -v --connect-timeout 10 http://example.ru
curl -v --connect-timeout 10 https://example.ru
nc -vz -w 10 example.ru 80
nc -vz -w 10 example.ru 443
РезультатЧто значит
Отказ на 80 и 443Веб-сервер не запущен, слушает другой адрес или на сервере сетевой экран отвечает отказом
Порт 80 отвечает, 443 нетНет блока HTTPS: сертификат не выпущен или настройка listen 443 ssl отсутствует
Тайм-аутНет ответа: другой разбор
Could not resolve hostДомен не ведёт на сервер: DNS_PROBE_FINISHED_NXDOMAIN

Сравните адрес сервера, который показывает dig +short example.ru A, с адресом вашего хостинга. Если там 127.0.0.1 или адрес чужого сервера, запись нужно исправить (разбор про DNS после переноса).

Шаг 4. Сервер: найдите, кто слушает порты

Зайдите на сервер по SSH и выполните:

systemctl status nginx
ss -tlnp | grep -E ':(80|443)\b'

Если вместо nginx работает Apache, проверьте systemctl status apache2 (или httpd).

  • Служба остановлена. Запустите: systemctl start nginx. Если не запускается, посмотрите причину: journalctl -u nginx -n 50. Чаще всего это ошибка в конфигурации, которую показывает nginx -t. После правки конфигурации и перезапуска с ошибкой веб-сервер не поднимается, и порты остаются без слушателя.
  • Порты слушают, но не те адреса. В выводе ss вместо 0.0.0.0:80 или [::]:80 стоит 127.0.0.1:80: сервер принимает соединения только с самого себя. Проверьте директиву listen в конфигурации сайта: listen 80; и listen 443 ssl; без привязки к 127.0.0.1 (документация nginx).
  • Порт 443 не слушают, потому что нет сертификата. После переноса сайта блок HTTPS часто ещё не создан. Выпустите сертификат и включите блок с listen 443 ssl (см. ERR_SSL_PROTOCOL_ERROR).
  • Сетевой экран отвечает отказом. Правила ufw, iptables или nftables с действием reject, группы безопасности облака. Порты 80 и 443 должны быть открыты для внешней сети: ufw status, iptables -S.
  • Сайт на виртуальном хостинге. Служба веб-сервера у хостинга, вы её не перезапустите. Проверьте страницу статуса хостинга и напишите в поддержку с адресом сайта и временем первой ошибки.

Шаг 5. Проверка после исправления

  1. ss -tlnp показывает слушателя на портах 80 и 443 на внешних адресах.
  2. curl -I https://example.ru возвращает 200 или 301.
  3. Сайт открывается с телефона через мобильную сеть.
  4. Служба запускается сама после перезагрузки сервера: systemctl is-enabled nginx выводит enabled.

Когда нужен специалист

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

Сколько стоит решение у нас

ЗадачаВремяСтоимость
Диагностика и восстановлениеоколо 2 ч7 600 ₽
Настройка сервера или VPS2–4 чот 7 600 ₽

Диапазоны ориентировочные, ставка 3 800 ₽ в час. Точную оценку присылаем до начала работ. Все цены.

Не хотите разбираться сами?

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

Отправить задачу

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

Почему отказ, а не тайм-аут?

Потому что кто-то ответил. Сервер получил запрос, и ответ был отрицательный: на порту никого нет. Если сетевой экран просто отбрасывает пакеты, ответа не будет, и вы увидите тайм-аут.

Сайт упал после правки конфигурации. Что делать?

Выполните nginx -t: команда укажет файл и строку с ошибкой. Исправьте, затем systemctl start nginx. Не перезапускайте службу вслепую несколько раз подряд, сначала смотрите журнал.

Сайт открывается по http и не открывается по https. Это отказ?

Если по HTTPS показывается именно отказ, на порту 443 никто не слушает. Если показывается ошибка шифрования, дело в настройке протокола: ERR_SSL_PROTOCOL_ERROR.

Может ли это быть блокировкой по моему адресу?

Может. Если сайт открывается у других, а у вас отказ, посмотрите, не заблокировал ли ваш адрес сам сервер (fail2ban или правила файрвола после нескольких неудачных входов). Откройте сайт с другого адреса и проверьте списки блокировок на сервере.