ERR_CONNECTION_REFUSED: что значит и как исправить
ERR_CONNECTION_REFUSED — браузеру отказали в соединении. Обычно это значит, что на нужном порту сервера никто не принимает запросы: веб-сервер остановлен, работает на другом порту или слушает другой адрес. Реже соединение отклоняет брандмауэр.
Содержание 10
Что сделать прямо сейчас
Если вы просто открываете сайт:
- Посмотрите на адрес. Если после имени сайта стоит двоеточие и число — например, example.com:8080, — возможно, порт указан по ошибке: попробуйте открыть адрес без него.
- Обновите страницу через пару минут: сервер могли перезапускать.
- Откройте другой сайт. Если другие сайты открываются, проблема, скорее всего, на стороне этого сайта — сообщите владельцу.
- Если вы открываете localhost или 127.0.0.1, это адрес вашего же компьютера. Проверьте, запущена ли программа, которая должна там отвечать, и на каком порту она работает.
Если сайт ваш, переходите к разделам «Как проверить» и «Как исправить» ниже: там все команды по шагам.
Что значит ошибка
Чтобы открыть сайт, браузер сначала устанавливает с сервером TCP-соединение: для адресов https:// — на порт 443, для http:// — на порт 80. Если на этом порту никакая программа не принимает соединения, система сервера отвечает на попытку сигналом сброса — так устроен протокол TCP. Chrome понимает это как отказ и показывает ERR_CONNECTION_REFUSED, в исходном коде Chrome это ошибка -102.
Отказ приходит быстро, страница ошибки появляется почти сразу. Этим ошибка отличается от ERR_CONNECTION_TIMED_OUT: там браузер долго ждёт и не получает никакого ответа.
Как выглядит в Chrome
Заголовок — «Не удается получить доступ к сайту», под ним — «Сайт example.com не позволяет установить соединение.» Chrome советует проверить подключение к интернету, а также настройки прокси-сервера и брандмауэра. Внизу — код ERR_CONNECTION_REFUSED и кнопки «Перезагрузить» и «Сведения».
Причины
| Причина | Как проявляется |
|---|---|
| Веб-сервер остановлен или не запустился после ошибки в настройках | Не открываются ни http://, ни https:// |
| HTTPS не настроен, и порт 443 никто не слушает | http:// открывается, https:// — нет |
| Программа слушает только адрес 127.0.0.1 | На самом сервере сайт открывается, снаружи — нет |
| Сайт работает на другом порту | Открывается только с портом в адресе, например :8080 |
| Брандмауэр отклоняет соединения | Программа слушает порт, но снаружи приходит отказ |
Как проверить
Команды из шагов 1–3 вводятся в терминале сервера. Если вы ещё не подключались к нему, начните с инструкции Как подключиться к VPS по SSH. Скопируйте команду целиком, замените example.com на адрес своего сайта и нажмите Enter.
Шаг 1. Проверьте, работает ли nginx
sudo systemctl status nginxВ выводе должна быть строка Active: active (running). Если ответ не помещается на экран, листайте его стрелками, а чтобы вернуться к вводу команд, нажмите Q. Если в строке Active стоит failed, nginx не запустился — перейдите к шагу 2.
Шаг 2. Проверьте настройки nginx
sudo nginx -tЕсли всё в порядке, в ответе будут слова syntax is ok и test is successful. Если есть ошибка, команда покажет файл и номер строки с ней.
Шаг 3. Посмотрите, какие порты слушает сервер
sudo ss -tlnpВ колонке Local Address:Port у nginx должны быть порты 80 и 443. Адрес 0.0.0.0 или [::] перед портом значит, что соединения принимаются на всех адресах сервера, а 127.0.0.1 — только с самого сервера.
Шаг 4. Проверьте сайт с другого компьютера
Эту команду выполните не на сервере, а на другом компьютере: так вы увидите сайт так же, как посетители.
curl -I https://example.com/При отказе curl завершится с ошибкой 7 — не удалось подключиться.
Как исправить
nginx остановлен. Проверьте настройки, запустите nginx и включите его автозапуск при загрузке сервера:
sudo nginx -t
sudo systemctl start nginx
sudo systemctl enable nginxНе открывается только https://. Значит, HTTPS не настроен: нужны сертификат и блок server для порта 443. Как это сделать — в инструкции Бесплатный SSL-сертификат.
Приложение слушает только 127.0.0.1. Для приложения на Node.js или Python так и должно быть, если перед ним стоит nginx: посетители подключаются к nginx, а он передаёт запросы приложению через proxy_pass. Как это настроить — в инструкции Как разместить сайт на VPS.
Брандмауэр. Если правило брандмауэра отклоняет соединения, браузер получит отказ, а если молча отбрасывает пакеты — ERR_CONNECTION_TIMED_OUT. Правила брандмауэра ufw в Ubuntu покажет команда:
sudo ufw statusПорты 80 и 443 должны быть разрешены. Если у хостинга есть брандмауэр в панели управления, проверьте и его.
На обычном хостинге
На виртуальном хостинге веб-сервером управляет хостинг. Если ошибку видят все посетители, напишите в поддержку адрес сайта, время и код ошибки.
Если сайт недавно переехал, проверьте, куда указывает домен:
dig example.com +shortКоманда выведет IP-адрес. Если это адрес старого сервера, исправьте A-запись там, где находится DNS-зона домена, — подробнее в инструкции Как перенести сайт на другой хостинг.
Соседние ошибки
| Ошибка | Чем отличается |
|---|---|
| ERR_CONNECTION_TIMED_OUT | Ответа нет вовсе: пакеты теряются или их молча отбрасывает брандмауэр |
| ERR_CONNECTION_RESET | Соединение установилось, а потом его оборвали |
| ERR_EMPTY_RESPONSE | Соединение приняли, но закрыли, ничего не ответив |
| ERR_UNSAFE_PORT | Chrome сам не стал подключаться к этому порту |
Источники
- Исходный код Chromium: net_error_list.h — ошибка -102; net_errors_posix.cc — какая системная ошибка соответствует отказу.
- RFC 9293, раздел 3.5.2 — когда TCP отвечает сигналом сброса.
- Справка Chrome: как устранить ошибки при подключении к сайтам.
Проверено в Chrome 155 на локальном тестовом сервере 7 октября 2026 года.
Сверено 7 октября 2026 года.
Что почитать дальше
- «Не удается получить доступ к сайту» — все ошибки под этим заголовком.
- Как разместить сайт на VPS — настройка nginx с нуля.
- Бесплатный SSL-сертификат — как включить HTTPS.
- Что делать, если хостинг лежит — если сайт не открывается у всех.
Проверено и обновлено: 08.10.2026