ERR_CONNECTION_REFUSED значит, что сервер отказал браузеру в соединении. Машина по адресу сайта на связи и ответила сразу, но на нужном порту никто не принимает подключения: веб-сервер остановлен, работает на другом порту или вход закрыт брандмауэром. Это не таймаут: ответ пришёл, просто он «нет». Поэтому ошибка появляется мгновенно, а не после минуты ожидания.
Ниже — почему возникает отказ, как быстро понять, на чьей он стороне, и пошаговая инструкция: что сделать на вашем устройстве, а что — на сервере. Важно привести в порядок именно ту сторону, где ошибка, иначе решение не сработает.
Чтобы узнать, отвечает ли ваш сайт снаружи, запустите проверку доступности: наш сервер запрашивает страницу и показывает код ответа, время отклика и срок SSL-сертификата.
Что означает ошибка в коде браузера
Chrome, Яндекс Браузер, Edge и Opera работают на Chromium, и сетевые ошибки у них общие. Эта стоит в списке под номером −102 с описанием «A connection attempt was refused» — попытку соединения отклонили.
Откуда берётся код, видно в исходниках. Браузер не решает сам, что соединение отклонено: он получает ответ операционной системы и переводит его в свою ошибку. В Linux и macOS системный код ECONNREFUSED превращается в ERR_CONNECTION_REFUSED, в Windows то же делает WSAECONNREFUSED. Система выдаёт такой код на уровне TCP, когда сервер на попытку подключения отвечает TCP-пакетом сброса: «на этом порту меня нет».
Чем отличается от похожих ошибок
| Ошибка | Что случилось | Когда приходит |
|---|---|---|
| ERR_CONNECTION_REFUSED | сервер ответил отказом, порт закрыт | сразу |
| ERR_CONNECTION_TIMED_OUT | сервер не ответил вовсе | через 2 минуты и больше |
| ERR_TIMED_OUT | не ответил ни один адрес сайта | через 4 минуты |
| ERR_CONNECTION_RESET | соединение было, но его оборвали сбросом | сразу |
| ERR_ADDRESS_UNREACHABLE | до адреса нет маршрута | сразу |
| ERR_PROXY_CONNECTION_FAILED | не отвечает прокси, а не сайт | сразу |
| ERR_NETWORK_ACCESS_DENIED | брандмауэр или антивирус запретил браузеру подключение | сразу |
| ERR_CONNECTION_FAILED | подключение не удалось, причина не распознана; в Chrome на iPhone так выглядит и отказ | сразу |
| Коды 4xx и 5xx | соединение есть, сервер прислал страницу с ошибкой | после ответа |
Главное отличие от кодов вроде 503 — до HTTP дело не дошло. При 503 веб-сервер работает и сам сообщает о проблеме. При отказе веб-сервера на порту нет совсем, и страницу с объяснением прислать некому.
Стенд: сколько ждёт браузер и что меняет прокси
Мы открыли в Chromium несколько заведомо закрытых адресов на своей машине:
| Что открывали | Результат | Время |
|---|---|---|
| закрытый порт по адресу 127.0.0.1 | ERR_CONNECTION_REFUSED | 0,04 с |
| закрытый порт по имени localhost | тот же отказ | 0,02 с |
| сервер слушает только 127.0.0.1, открываем localhost | страница загрузилась | 0,06 с |
| сервер слушает только ::1, открываем localhost | страница загрузилась | 0,05 с |
| в браузере прописан прокси, который не запущен | ERR_PROXY_CONNECTION_FAILED | 0,05 с |
Из таблицы следуют два вывода. Если у имени несколько адресов и один отказывает, браузер пробует следующий и открывает страницу. А мёртвый прокси даёт другую ошибку, со словом PROXY в названии. Поэтому совет «отключите прокси» при ошибке ERR_CONNECTION_REFUSED помогает не всегда: он нужен, когда прокси работает, но сам отвергает запросы к сайту.
Наш замер: 1764 сайта, 26 отказывают по https
Мы взяли 2056 доменов из нашего списка организаций, у 1764 из них DNS вернул адрес. 16 октября 2026 года к каждому подключились на порты 443 (https) и 80 (http), а все отказы открыли в настоящем Chromium.
| Результат | Сайтов |
|---|---|
| оба порта открыты | 1698 |
| https отказывает, http открыт | 26 |
| отказывают оба порта | 1 |
| http отказывает, https работает или молчит | 2 |
| нет маршрута до адреса | 4 |
| молчат хотя бы на одном порту, как при таймауте | 33 |
В Chromium отказ по https повторился у 25 из 26, ошибка пришла за 0,12–2,23 секунды. Один сайт при повторе ответил по https кодом 501. Самое интересное — что эти 25 сайтов отдают по обычному http:
| Что открылось по http | Сайтов |
|---|---|
| работающий сайт организации | 15 |
| заглушка хостинга, стоянка домена или чужой сайт | 6 |
| ошибка 503 | 3 |
| ошибка 404 | 1 |
Получается, у 15 живых сайтов просто нет https. Человек, который перешёл по ссылке с https:// или набрал адрес с этой приставкой, видит ERR_CONNECTION_REFUSED и решает, что сайт не работает, хотя он работает. Ещё четыре сайта отвечали системной ошибкой «нет маршрута». Браузер показал на них ERR_ADDRESS_UNREACHABLE — это другой код, хотя выглядит похоже.
Возможные причины
На стороне сервера — их большинство:
- веб-сервер (nginx, Apache) остановлен или процесс упал после обновления, и сервис временно не принимает соединения;
- сервер слушает другой порт или только внутренний адрес 127.0.0.1;
- для https не настроен порт 443, хотя http работает — ровно наш случай с 15 сайтами;
- брандмауэр на сервере или у хостинга отклоняет соединения, в том числе из отдельных стран и сетей;
- хостинг отключил сайт за неуплату, а домен ещё указывает на старый адрес;
- в DNS остались устаревшие записи: адрес прежнего сервера, где сайта уже нет.
На стороне пользователя, то есть на клиенте:
- прокси или VPN сам отвечает отказом на запросы к сайту;
- антивирус или брандмауэр блокирует соединение;
- в файле hosts прописан неверный адрес сайта, например 127.0.0.1 — это адрес локального узла, и браузер пытается подключиться к вашему же компьютеру вместо сервера;
- расширения браузера, которые фильтруют трафик;
- провайдер или сеть в офисе ограничивает доступ к отдельным портам.
Диагностика: у меня или у сайта
Ответьте на три вопроса по порядку.
- Ошибка на одном сайте или на всех? Если не открываются многие сайты, проблема в вашем интернет-подключении или настройках компьютера. Если один — скорее всего, в сайте.
- Сайт не открывается и у других людей? Откройте его с телефона через мобильный интернет, без Wi-Fi, или с помощью онлайн-проверки доступности. Отказ везде — сервер закрыт, и устранить ошибку может только администратор сайта.
- Открывается ли адрес с http:// вместо https://? Если да, у сайта нет защищённого соединения. Пользоваться таким сайтом можно, но вводить на нём пароли и данные карты не стоит.
Как исправить на компьютере пользователя
Если сайт работает у других, проверяем по шагам, от простого к сложному. После каждого шага повторите попытку открыть страницу.
1. Проверьте адрес. Убедитесь, что адрес правильный. Опечатка в домене, лишний номер порта вроде :8080 или https там, где сайт работает только по http, — частая причина.
2. Отключите VPN и прокси. В Windows: «Параметры» → «Сеть и Интернет» → «Прокси», выключите ручной прокси-сервер. В браузере проверьте расширения, которые меняют маршрут трафика.
3. Отключите антивирус и брандмауэр на время проверки. Если сайт открылся, добавьте его в список разрешённых, а защиту включите обратно. Отключать её насовсем не нужно: это снизит безопасность. Некоторые антивирусы проверяют весь трафик, и активный веб-фильтр может отклонять соединения с отдельными сайтами.
4. Очистите кэш браузера и проверьте расширения. Очистка кэша и cookies: Ctrl+Shift+Delete, файлы за всё время. Откройте сайт в режиме инкогнито: расширения там по умолчанию выключены. Если в нём работает, отключайте расширения по одному, начиная с блокировщиков.
5. Сбросьте кэш DNS. В командной строке Windows: ipconfig /flushdns.
Если недавно меняли сетевые настройки, сбросьте и их: netsh winsock reset,
затем перезагрузка.
6. Проверьте файл hosts. Он находится в C:\Windows\System32\drivers\etc\hosts, на macOS и Linux — /etc/hosts. Строка с доменом сайта, которую вы не добавляли, направляет браузер по неправильному адресу.
7. Смените DNS-сервер на 77.88.8.8 (Яндекс) или 8.8.8.8 (Google) в свойствах сетевого подключения.
Android. Выключите VPN-приложения и «Частный DNS» в настройках сети, попробуйте мобильный интернет вместо Wi-Fi.
iPhone. Проверьте «Настройки» → «VPN», отключите профили VPN и фильтры контента, а в Safari — блокировщики.
Если вы используете рабочий компьютер, настройка прокси может быть определена администратором сети: изменить её без него нельзя, обратитесь в службу поддержки.
Если ничего не помогло, а с другого устройства в той же сети сайт тоже не открывается, сообщите провайдеру адрес сайта и время ошибки.
Если вы владелец сайта
Получили жалобы на отказ соединения? Диагностика на сервере занимает несколько минут.
- Убедитесь, что веб-сервер запущен. Команда
systemctl status nginx(или apache2) покажет состояние. Упал после изменений конфигурации —nginx -tнайдёт ошибку. - Проверьте, какие порты слушает сервер.
ss -tlnpвыводит список. Нужны 80 и 443 на внешнем адресе, а не только на 127.0.0.1. - Проверьте порт снаружи. С другого компьютера:
curl -v https://ваш-сайт.ru/или в PowerShellTest-NetConnection ваш-сайт.ru -Port 443. Отказ — порт закрыт; таймаут — пакеты где-то отбрасываются. - Откройте порт в брандмауэре сервера и в панели хостинга, если там есть свой фильтр. Почему отказ только из некоторых сетей — потому что правила могут выполнять отбор по стране или провайдеру; такую недоступность видно только снаружи.
- Включите https. Если сайт работает только по http, выпустите SSL-сертификат, установить его можно бесплатно, и настройте порт 443: иначе часть посетителей и поисковых роботов будет получать отказ.
- Сверьте адреса в DNS. Каждая A-запись должна вести на рабочий сервер. Найти адрес сайта помогает статья как узнать IP сайта.
Когда сайт снова отвечает, посмотрите, что ещё мешает ему в поиске. Движок разбирает одну страницу: метатеги, заголовки, canonical, robots.txt, карту сайта. Без регистрации.
ERR_CONNECTION_REFUSED на localhost
У разработчиков ошибка обычно появляется на адресах вида
http://localhost:3000. Значит, на этом порту вашего компьютера ничего не
запущено. Типичные причины:
- сервер разработки упал с ошибкой — смотрите вывод в терминале;
- он стартовал на другом порту, потому что нужный был занят;
- приложение в Docker слушает внутри контейнера, а порт не проброшен наружу;
- сервер в виртуальной машине или WSL слушает её собственный адрес.
Частый совет — заменить localhost на 127.0.0.1, потому что сервер слушает только IPv4. В Chromium на нашем стенде это ничего не меняло: сервер на 127.0.0.1 и сервер на ::1 открылись по имени localhost одинаково, браузер сам перебирает оба адреса.
Как предотвратить повторение
- Включите автоматический перезапуск веб-сервера после сбоя.
- Проверяйте конфигурацию перед перезагрузкой:
nginx -t. - Настройте внешний мониторинг доступности, который пишет при отказе.
- После переезда на новый хостинг удалите старые адреса из DNS.
Коротко
- ERR_CONNECTION_REFUSED — сервер на связи, но ответил отказом: порт закрыт.
- Отказ приходит за доли секунды, таймаут — через минуты.
- Из 1764 сайтов 26 отказывают по https, и 15 из них работают по http.
- Мёртвый прокси даёт другую ошибку — ERR_PROXY_CONNECTION_FAILED.
- Посетителю — проверить адрес, VPN, антивирус и hosts; владельцу — веб-сервер, порты 80 и 443, брандмауэр и DNS.
