npm WindowsLinux ETIMEDOUT

npm ERR! network — ошибка сети или таймаут при установке пакетов

  • Обновлено
  • Чтение ≈ 4 минуты

Краткий ответ

npm не может скачать пакеты: проблемы сети, прокси, блокировка реестра или неверные настройки. Ниже — причины и порядок действий от простого к сложному.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Проверка сети
  5. Таймауты и повторы
  6. Зеркала и корпоративная сеть

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

ETIMEDOUT
npm ERR! code ETIMEDOUT npm ERR! network request failed

Ошибка npm ERR! network timeout / ETIMEDOUT / ESOCKETTIMEDOUT означает, что npm не дождался ответа от реестра. Причины: медленная или нестабильная сеть, прокси, блокировка реестра, DNS-проблемы, перегрузка зеркала.

Проверьте доступность реестра и настройки прокси.

Затем увеличьте таймауты или смените реестр.

npm не может скачать пакеты: проблемы сети, прокси, блокировка реестра или неверные настройки. Проверьте доступ к реестру и настройки прокси.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Временный сбой сетиnpm ping к нужному реестру иногда не отвечает, другие адреса открываются с задержкой.Проверить сеть и повторить разовую установку с ограниченными повторами.
Неверные настройки проксиnpm config get proxy или https-proxy содержит устаревший адрес.Сверить конфигурацию с сетью организации; лишние настройки удалить адресно.
Нужный реестр недоступенВ npm config get registry указан адрес, который не открывается в текущей сети.Проверить правильность адреса и разрешённый доступ; зеркало — только согласованное.
Сетевой фильтр / TLSБраузер и npm по-разному обрабатывают корпоративный сертификат, журнал указывает на соединение.Обратиться к администратору сети; не отключать TLS-проверку.

#Пошаговое решение

  1. Проверьте связьОткройте терминал в каталоге проекта: VS Code → «Терминал» → «Новый терминал» или обычный PowerShell/Терминал. Запишите ошибку целиком, в том числе ETIMEDOUT, ECONNRESET, адрес реестра и название пакета. Выполните npm config get registry, затем npm ping и npm -v. При доступном реестре npm сообщит о получении ответа. Если сообщение относится к частному корпоративному реестру, проверять только публичный registry.npmjs.org недостаточно: уточните адрес и доступ у владельца проекта.
  2. Проверьте прокси и VPNЕсли npm ping не отвечает, проверьте открытие именно того адреса реестра в браузере и общее подключение к интернету. В терминале выполните npm config get proxy и npm config get https-proxy (пустое значение часто отображается как null); на Windows дополнительно проверьте «Параметры» → «Сеть и Интернет» → «Прокси». Не удаляйте рабочий прокси компании: сначала уточните у администратора параметры и сертификат. Для личной сети без прокси можно убрать только ошибочно сохранённые значения командой npm config delete proxy и npm config delete https-proxy.
  3. Увеличьте таймаутыЕсли сеть работает, но ответы медленные, для одного пробного запуска используйте npm install --fetch-timeout=300000 --fetch-retries=3, где 300000 — миллисекунды. Перед запуском убедитесь, что находитесь в папке с нужным package.json и сохранённым package-lock.json; эта команда может обновить зависимости в пределах ограничений. Для воспроизводимой установки по существующему lock-файлу предпочтительно npm ci --fetch-timeout=300000 --fetch-retries=3, но npm ci удаляет и заново создаёт node_modules. При сохранении таймаута проверьте логи сети; дальнейшее увеличение времени не исправит недоступный сервер.
  4. Очистите кэшЕсли сеть в порядке, а npm сообщает о повреждении кэша, проверьте его без удаления: npm cache verify. Очистка npm cache clean --force обычно не нужна при сетевых таймаутах и лишает возможности повторно использовать скачанное. Не удаляйте package-lock.json и не запускайте глобальное npm update для решения таймаута: это изменит версии зависимостей и усложнит поиск причины. Сохраните журнал ошибки из папки, указанной npm, и проверьте доступное место на диске, если сообщение связано с записью кэша.
  5. Смените реестр на зеркалоСмену реестра рассматривайте только если в организации утверждено зеркало или исходный реестр временно недоступен. Сначала проверьте в package.json, .npmrc проекта и настройках пользователя, какие зависимости являются приватными. Временный запуск npm ping --registry=https://registry.npmjs.org/ покажет доступность официального реестра, не меняя постоянную настройку; для пробной установки можно передать --registry=..., если это допустимо. Не отправляйте учётные данные корпоративного реестра случайному зеркалу. После устранения причины повторите исходную команду и убедитесь, что пакеты установлены без ошибки.
  6. Команды диагностики из папки проекта; не выводите секреты из .npmrc в публичный отчёт
    Linux · Терминал (Bash)Команда
    Команды диагностики из папки проекта; не выводите секреты из .npmrc в публичный отчёт.
    npm config get registry
    npm ping
    npm config get proxy
    npm config get https-proxy

#Проверка сети

Прокси и DNS проверяются только при подтверждённой сетевой проблеме. Не меняйте DNS на публичный в корпоративной сети без согласования: это может нарушить доступ к внутренним ресурсам.

#Таймауты и повторы

При ошибке сети не удаляйте package-lock.json и не очищайте весь кэш автоматически. Сначала проверьте текущий реестр, прокси, сетевые ограничения и журнал npm; при необходимости используйте разовые параметры таймаута из инструкции.

#Зеркала и корпоративная сеть

Если реестр недоступен, используйте зеркало: npm config set registry https://registry.npmmirror.com (вернуть: npm config set registry https://registry.npmjs.org/). Для корпоративных прокси укажите npm config set proxy http://host:port и https-proxy; сертификат прокси: npm config set cafile C:\certs\corp.pem. Проверьте файл .npmrc в проекте и в домашней папке — в них могут оставаться устаревшие настройки.

Linux · Терминал (Bash)С осторожностью
Не запускайте обе команды подряд. npm ci пересоздаёт node_modules; не удаляйте package-lock.json.
# Однократный пробный запуск при подтверждённой медленной сети:
npm install --fetch-timeout=300000 --fetch-retries=3
# Для проекта с корректным package-lock.json — АЛЬТЕРНАТИВА:
# npm ci --fetch-timeout=300000 --fetch-retries=3

Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.