# Настройка прокси в Axios: маршрутизация, аутентификация и NO_PROXY

Source: https://ipvolt.com/ru/guides/axios-proxy-setup
Markdown: https://ipvolt.com/ru/guides/axios-proxy-setup.md
Language: ru

[ipvolt — главная](https://ipvolt.com/ru.md) / [Руководства](https://ipvolt.com/ru/guides.md) / Настройка прокси в Axios: маршрутизация, аутентификация и NO_PROXY

Интеграция
Проверено: 2026-09-28
Опубликовано: 2026-09-28
8 мин чтения
Автор: ipvolt

Настройте прокси для Axios в Node.js, отделите явные настройки от маршрутизации через окружение и агенты и воспроизведите проверки аутентификации и TLS.

Для Axios в Node.js начинайте с HTTP-адаптера и явного объекта `proxy`. Учётные данные прокси держите в `proxy.auth`, проверьте маршрут и только после этого добавляйте переменные окружения или собственные агенты. Эти слои могут изменить соединение: в нашем локальном тесте `proxy: false` всё равно использовал прокси, когда у собственного агента Node был настроен `proxyEnv`.

В этом руководстве используются **Axios 1.20.0 и Node.js 24.20.0**. Его 15 случаев маршрутизации и четыре проверки рецептов являются синтетическими тестами на loopback, а не измерениями внешнего прокси-сервиса. Axios в браузере и fetch-адаптер Axios — это другие пути; опция `proxy` относится к HTTP-адаптеру Node. См. [конфигурацию Axios](https://axios.rest/pages/advanced/request-config) и [зафиксированную версию HTTP-адаптера](https://github.com/axios/axios/blob/v1.20.0/lib/adapters/http.js).

## Выполните одну явную проверку прокси

Используйте [proxy-check.mjs](https://ipvolt.com/downloads/axios-proxy-setup/proxy-check.mjs), [package.json](https://ipvolt.com/downloads/axios-proxy-setup/package.json) и [lock-файл](https://ipvolt.com/downloads/axios-proxy-setup/package-lock.json) вместе. В новом каталоге, с Node 24.20.0 или новее в линейке Node 24:

```sh
for file in package.json package-lock.json proxy-check.mjs; do
  curl --fail --silent --show-error \
    "https://ipvolt.com/downloads/axios-proxy-setup/$file" -o "$file" || exit 1
done
npm ci --ignore-scripts --no-audit --no-fund
```

Пусть ваш менеджер секретов передаст `PROXY_HOST`, `PROXY_PORT`, `PROXY_USER` и `PROXY_PASSWORD`, затем запустите `node proxy-check.mjs`. `PROXY_HOST` — это имя хоста без схемы и учётных данных. `PROXY_PROTOCOL` по умолчанию равен `http`; значение `https` используйте только для TLS-точки прокси, документированной провайдером. Оно описывает соединение **с прокси**, а не с целевым сервером. Не вводите настоящие пароли в историю командной оболочки или в промпт агента для написания кода.

Скрипт проверки собирает такую конфигурацию из отдельных полей учётных данных:

```js
const proxy = {
  protocol: process.env.PROXY_PROTOCOL || 'http',
  host: process.env.PROXY_HOST,
  port: Number(process.env.PROXY_PORT),
  auth: {
    username: process.env.PROXY_USER,
    password: process.env.PROXY_PASSWORD,
  },
};
```

Этот фрагмент показывает форму; загружаемый скрипт проверяет свои входные данные и выполняет запрос. Он выбирает `adapter: 'http'`, отключает редиректы, ограничивает ответ 4 КиБ и использует 5-секундный тайм-аут Axios плюс 6-секундный сигнал отмены. Он проверяет, что возвращённый JSON содержит корректный IP-адрес, и печатает только результат, статус и IP либо код ошибки. Он не печатает исходную ошибку Axios и конфигурацию запроса, в которых могут быть учётные данные.

Запуск скрипта по умолчанию отправляет запрос через ваш прокси на сторонний [IPv4 JSON-эндпоинт ipify](https://www.ipify.org/). Этот сервис видит публичный адрес источника запроса. Задайте в `CHECK_URL` HTTPS-адрес без учётных данных для утверждённого эндпоинта, который возвращает ответ той же формы `{ "ip": "..." }`. Наблюдаемый IP — это одна проверка маршрута; он не подтверждает страну, оператора, классификацию как residential или гарантию производительности. Мы тестировали скрипт на контролируемых локальных ответах, а не на публичном ipify.

Basic-учётные данные, отправленные обычному HTTP-прокси, не шифруются на участке от клиента до прокси только потому, что целевой адрес использует HTTPS. Используйте TLS-точку прокси, если она поддерживается, и не отключайте проверку сертификатов. Лаборатория тестирует HTTP-прокси, туннелирующий к доверенному HTTPS-серверу; TLS-транспорт до самого прокси она не тестирует.

## Выберите слой, который отвечает за маршрутизацию

Эти наблюдения получены на зафиксированном стенде с отключёнными флагами запуска, которые включают встроенную поддержку прокси из окружения. «Напрямую» означает, что прокси стенда ничего не получил; «через прокси» означает, что он зафиксировал запрос или CONNECT. Эти наблюдения сохранены в исходных [результатах](https://ipvolt.com/downloads/axios-proxy-setup/results.json).

| Конфигурация | Наблюдаемый маршрут | Что проверить |
| --- | --- | --- |
| HTTP-адаптер, явный `proxy`, конфликтующие переменные окружения и `NO_PROXY` | Явный прокси | Начните отсюда, чтобы получить воспроизводимую базу. |
| HTTP-адаптер, без явного прокси, подходящая `HTTP_PROXY` или `HTTPS_PROXY` | Прокси из окружения | Проверяйте окружение процесса, а не только код приложения. |
| Прокси, выбранный окружением, и подходящая запись `NO_PROXY` | Напрямую | Сам по себе успех не доказывает использование прокси. |
| `proxy: false`, обычный агент | Напрямую | В этом случае выбор прокси из окружения в Axios отключён. |
| Обычный собственный `http.Agent`, без явного прокси | Прокси из окружения Axios | Передача агента не отключает автоматически обработку окружения в Axios. |
| Собственный `http.Agent({ proxyEnv: ... })` плюс `proxy: false` | Прокси агента | Маршрутизацией по-прежнему управляет агент. |
| Fetch-адаптер, объект `proxy` Axios | Напрямую | Опции HTTP-адаптера этот адаптер не настраивают. |

При маршрутизации через окружение `HTTP_PROXY` применяется к HTTP-адресам, а `HTTPS_PROXY` — к HTTPS-адресам. Схема в значении всё равно описывает прокси: `HTTPS_PROXY=http://gateway:port` может выбрать HTTP-прокси для HTTPS-адреса. Наследование объясняет [руководство по переменным окружения](/ru/guides/proxy-environment-variables). Существующая [матрица NO_PROXY](/ru/blog/no-proxy-matching-tested) охватывает свои названные клиенты и версии, а не этот эксперимент с Axios.

Строка со встроенным агентом — исключение из общего прочтения «false отключает прокси». [Встроенная поддержка прокси в Node](https://nodejs.org/download/release/v24.20.0/docs/api/http.html#built-in-proxy-support) может дать агенту собственную конфигурацию маршрутизации. На стенде `proxy: false` вместе с таким агентом всё равно использовал его прокси; замена на простой агент сделала контрольный запрос прямым. Мы не тестировали все флаги запуска и сторонние агенты. Проверяйте агент, переданный вашему процессу, а не считайте настройку Axios гарантией для всей сети.

Для встроенного в Node `fetch` используйте [руководство по диспетчеру Undici](/ru/guides/nodejs-fetch-proxy). Объект `proxy` Axios и диспетчер fetch — разные интерфейсы.

## HTTPS и аутентификация: найдите слой, на котором происходит сбой

HTTP-адаптер Axios 1.20.0 установил туннель CONNECT для HTTPS-адреса лаборатории. Доверенный локальный центр сертификации пропустил запрос; без этого доверия возникла ошибка `DEPTH_ZERO_SELF_SIGNED_CERT`. В случае с отклонённым сертификатом прокси увидел CONNECT, но HTTPS-сервер не получил запроса приложения. Совет, что Axios всегда нужен отдельный пакет для туннелирования, не описывает эту протестированную версию.

Для учётных данных прокси используйте `proxy.auth`; `auth` верхнего уровня в Axios — это аутентификация на целевом сервере. В успешном случае CONNECT сервер стенда не получил заголовок `Proxy-Authorization`. Прокси получил эти учётные данные на шаге создания туннеля. Это относится к протестированной конфигурации, а не к произвольным перехватывающим прокси или редиректам.

Неверные учётные данные дали статус `407` и код `ERR_BAD_REQUEST` как в случае простого HTTP, так и в случае HTTPS CONNECT из скрипта проверки. Отклонённый CONNECT дошёл до прокси, но запроса к серверу не было. Исходная ошибка Axios может включать конфигурацию с учётными данными: сохраняйте очищенный код и статус, если он есть, а не логируйте объект целиком.

| Наблюдение | Следующая проверка |
| --- | --- |
| Прокси ничего не получает, запрос к цели проходит | Явные и унаследованные настройки, `NO_PROXY`, выбранный адаптер и то, какой агент управляет маршрутом. |
| Прокси отклоняет аутентификацию | Шлюз, метод аутентификации и область действия аккаунта; следуйте [руководству по ошибке 407](/ru/guides/fix-proxy-error-407). |
| CONNECT проходит, затем не проходит проверка сертификата | Цепочка доверия сервера и имя хоста; не отключайте проверку TLS. |
| Запрос доходит до зависшего сервера и завершается по тайм-ауту | Крайний срок запроса и поведение сервера; более долгий тайм-аут не устанавливает причину. |
| HTTP 200 с неожиданным телом | Проверьте форму ответа, прежде чем принимать проверку. |

Зависший HTTP-сервер дал `ECONNABORTED` при тайм-ауте стенда в 100 мс. Это фиксирует локальную ветку отказа, а не полезный тайм-аут для продакшена или замер задержки. Многоразовый скрипт проверки использует более длинные ограниченные сроки и никогда не повторяет запрос автоматически.

## Воспроизведите матрицу маршрутизации

Скачайте [lab.mjs](https://ipvolt.com/downloads/axios-proxy-setup/lab.mjs) рядом со скриптом проверки и зафиксированными файлами пакета, затем выполните:

```sh
curl --fail --silent --show-error \
  https://ipvolt.com/downloads/axios-proxy-setup/lab.mjs -o lab.mjs
node lab.mjs local-results.json
```

В [README](https://ipvolt.com/downloads/axios-proxy-setup/README.md) описаны предварительные условия и случаи. Стенду нужен OpenSSL; он занимает случайные IPv4-порты на loopback, создаёт временный локальный сертификат и использует выдуманные учётные данные. Сначала уберите флаги запуска, включающие встроенную поддержку прокси из окружения; стенд отклоняет их, потому что они меняют его базовое состояние. Установка зависимостей обращается к реестру пакетов; запросы стенда остаются на loopback.

Записано 28 сентября 2026 года на Node 24.20.0, Axios 1.20.0 и macOS arm64: **15 случаев маршрутизации и четыре проверки рецептов пройдены**. Проверки охватывают маршрутизацию, аутентификацию, доверенный и недоверенный локальный HTTPS, область действия адаптера, тайм-аут, корректный вывод IP и отклонение неожиданного тела. Они не измеряют набор адресов провайдера, анонимность, географию или пропускную способность и не тестируют SOCKS, Axios в браузере, редиректы и TLS-транспорт до прокси. Перезапускайте стенд после смены Axios, Node, адаптера или агента.

Если нужна диагностическая помощь внутри агента для написания кода, [Proxy Toolkit MCP](/mcp) принимает очищенные описания ошибок. Не передавайте в его аргументах учётные данные и приватные URL и проверяйте предложенные изменения ограниченным запросом.

Доступ к прокси ipvolt пока не открыт. [Узнайте, когда откроется доступ.](https://ipvolt.com/#waitlist-hero) Одно письмо, когда откроется доступ. Больше ничего.

## Источники и дополнительное чтение

- [Axios: request configuration](https://axios.rest/pages/advanced/request-config)
- [Axios 1.20.0: HTTP adapter source](https://github.com/axios/axios/blob/v1.20.0/lib/adapters/http.js)
- [Node.js 24.20.0: built-in proxy support](https://nodejs.org/download/release/v24.20.0/docs/api/http.html#built-in-proxy-support)
- [ipify: public IP address API](https://www.ipify.org/)

## Связанные руководства

- [Прокси для fetch в Node.js](https://ipvolt.com/ru/guides/nodejs-fetch-proxy.md)
- [Исправляем TypeError: fetch failed в Node.js за прокси](https://ipvolt.com/ru/guides/fix-node-fetch-failed-proxy.md)
- [Переменные окружения прокси: HTTP_PROXY и NO_PROXY](https://ipvolt.com/ru/guides/proxy-environment-variables.md)

## О ipvolt

Примеры используют обобщённые настройки прокси со ссылками на оригинальную техническую документацию. Поведение конкретного продукта уточняйте у своего провайдера. ipvolt пока в разработке.

[Читать оригинал на английском](https://ipvolt.com/guides/axios-proxy-setup.md)

## Узнайте, когда откроется доступ.

ipvolt · В разработке

Мы строим прокси-инфраструктуру для разработчиков и команд, работающих с данными. Оставьте email, чтобы получить уведомление, когда ipvolt будет готов.

Одно письмо, когда откроется доступ. Больше ничего.

[Получить ранний доступ](https://ipvolt.com/ru/guides/axios-proxy-setup#waitlist-closing)

[Конфиденциальность](https://ipvolt.com/privacy)

