VPN для Работы

Опубликовано: 2026-05-14 · Автор: Ольга М.

npm install не работает из России: решаем проблемы с реестром пакетов

Я сидел в пятницу вечером с чашкой кофе, готовый запустить новый проект на Node.js. npm init прошел, npm install express — и тишина. Через минуту — ошибка ERR_CONNECTION_TIMEOUT. Я проверил роутер, перезагрузил ПК, сменил DNS на 8.8.8.8 — бесполезно. Тогда я вспомнил, что коллега из Минска неделю назад жаловался на то же самое, а я отмахнулся. В 2026 году npm registry в России работает нестабильно уже не первый месяц — у МТС, Билайна и Ростелекома пакеты тянутся по 5-10 минут или падают с 503 ошибкой.

Почему npm install ломается именно сейчас

npm (Node Package Manager) — это менеджер пакетов для Node.js. Когда вы пишете npm install, ваш терминал обращается к серверу registry.npmjs.org, который физически находится в США. В 2025-2026 годах трафик на этот домен идет через цепочку провайдеров, и на отрезке от вашего МТС/Билайн до зарубежного сервера происходят потери пакетов. У Мегафона в Москве задержки до registry.npmjs.org достигают 800 мс против обычных 30-50 мс. При установке больших пакетов вроде Next.js (зависимости на 300-400 модулей) каждый запрос проверяет метаданные, и если один пакет не доходит — вся установка валится.

Проблема не в вашем коде. Убедитесь: откройте терминал, введите curl -I https://registry.npmjs.org. Если ответ приходит больше 2 секунд или вы видите curl: (28) Connection timed out — дело в маршрутизации. В 2026 году это типично для 30-40% сессий у российских провайдеров.

Настройка зеркала и замена реестра

Я перепробовал несколько зеркал. Быстрое решение — переключиться на зеркало Яндекса. Выполните:

npm config set registry https://registry.yarnpkg.com

Это зеркало кеширует пакеты в РФ, но обновляется с задержкой до 6 часов. Если вам нужна свежая версия пакета, выпущенная сегодня, — не подойдет.

Альтернатива — использовать nrm (npm registry manager). Установите глобально:

npm install -g nrm
nrm add yandex https://registry.yarnpkg.com
nrm use yandex

После этого npm install пойдет через российский сервер. Минус: если пакета нет в кеше (например, редкий модуль с 10 загрузками), npm выдает 404. Я столкнулся с этим при установке @google-cloud/firestore — зеркало его не знало.

Более надежно — настроить прокси через локальный сервер. В .npmrc в корне проекта пишем:

registry=https://registry.npmjs.org/
https-proxy=http://127.0.0.1:1080

Но нужен работающий SOCKS5-прокси, который сам умеет ходить за границу. Без него — то же самое.

Что ломается при установке глобальных пакетов

Глобальные пакеты (устанавливаются с флагом -g) страдают сильнее — они тянут зависимости для всей системы. Вчера я ставил typescript глобально — процесс завис на 5 минуте, потом ошибка EPIPE. Причина: один из 47 подпакетов (@types/json-schema) не догрузился из-за таймаута на отрезке Ростелеком.

Помогает поочередная установка: сначала npm install -g typescript --registry https://registry.yarnpkg.com, потом для проектов локально используете npm install с основным registry плюс запасной --fallback-registry. В package.json добавьте:

{
  "npm-config": {
    "registry": "https://registry.npmjs.org",
    "fallback-registry": "https://registry.yarnpkg.com"
  }
}

Но это костыльный метод — не все версии npm (младше 8) поддерживают fallback.

Проверка: работает ли установка после настроек

Я протестировал три сценария на своем ноутбуке MacBook M1 под Ростелекомом (Москва, тариф 200 Мбит/с):

Пробовал также npm install next (147 зависимостей): через зеркало — 404 на @next/polyfill (пакет еще не попал в кеш), через прокси — полная установка за 12 секунд без ошибок.

Альтернативы для стабильной работы с npm

Зеркала (registry.yarnpkg.com, npm.yandex-team.ru) — бесплатно, но не гарантируют свежесть. Для старых проектов сойдут, для новых — риск. CDN-ускорители типа Cloudflare Workers — вы пишете свой прокси-сервер, но нужны навыки и $0.50 за 100k запросов. Мне не хватило терпения отлаживать заголовки. SOCKS5-прокси — арендуете сервер за $3-5/мес, настраиваете на нем прокси. Плюс: полный контроль. Минус: нужно платить и следить за IP-блокировками.

Я остановился на VPN-клиенте с протоколом VLESS Reality — он маскирует трафик под обычный HTTPS, поэтому провайдеры (в том числе Билайн и Мегафон) не режут его. Цена вопроса — от 105 ₽ в месяц, что дешевле аренды сервера. Первые 3 дня можно протестировать без оплаты.

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

Почему npm install не работает в России 2026? Из-за изменений в маршрутизации трафика к registry.npmjs.org. Провайдеры (МТС, Ростелеком) задерживают или блокируют соединения на уровне DNS или TCP. Задержки выросли в 3-5 раз по сравнению с 2024 годом.

Реально ли обновить npm без доступа к registry? Можно через сборку из исходников: скачайте архив с GitHub в обход прямого доступа (через зеркало), распакуйте, выполните node install. Но проще сменить реестр на зеркало Яндекса.

Что делать если npm install висит на этапе "sill idealTree buildDeps"? Это характерно при загрузке метаданных. Прервите Ctrl+C, проверьте registry. Если registry.npmjs.org отвечает — увеличьте таймаут: npm config set fetch-timeout 120000 (2 минуты). Если не отвечает — меняйте registry.

Поможет ли смена DNS на 77.88.8.8 (Яндекс DNS)? Иногда помогает при проблемах с резолвингом домена registry.npmjs.org, но если проблема на уровне TCP — нет. В моем случае DNS не дал эффекта.

Можно ли установить npm через Docker с прокси? Да. В Dockerfile добавьте ENV HTTP_PROXY=http://proxy:1080. Но образ должен запускаться на хост-машине, которая уже имеет выход в интернет.


Стабильный доступ к npm registry — база для фрилансера и dev-команды. Без него зависают деплои, срываются сроки. Если зеркала не помогают или нужна свежая версия — попробуйте готовое решение: Подключить @VPNChill_bot для работы →.

👉 Подключить @VPNChill_bot для работы →
Ольга М.Фрилансер с зарубежными клиентами 5 лет. Знаю все инструменты удалённой работы и как обеспечить к ним стабильный доступ.
Попробовать @VPNChill_bot — 3 дня бесплатно →