---
title: "如何在 Node.js 中使用 Axios 配置代理"
description: "了解如何在 Node.js 中配置 Axios 代理：设置 HTTP 代理和需认证代理、轮换 IP、使用 SOCKS5，并排查常见错误。"
url: "https://marsproxies.cn/blog/axios-proxy/"
---

- [EN ](https://marsproxies.com/blog/axios-proxy/ "英语")
  [CN](https://marsproxies.cn/blog/axios-proxy/ "语言切换器")

[联系销售](https://marsproxies.cn/contact-sales/) [注册](https://dashboard.marsproxies.com/register/) [登录](https://dashboard.marsproxies.com/login/)

[联系销售](https://marsproxies.cn/contact-sales/) [注册](https://dashboard.marsproxies.com/register/) [登录](https://dashboard.marsproxies.com/login/)

[联系销售](https://marsproxies.cn/contact-sales/)

[登录](https://dashboard.marsproxies.com/login/) [注册](https://dashboard.marsproxies.com/register/)

- [EN ](https://marsproxies.com/blog/axios-proxy/ "英语")
  [CN](https://marsproxies.cn/blog/axios-proxy/ "语言切换器")

[返回博客](https://marsproxies.cn/blog/) 2026年9月17日

# 如何在 Node.js 中使用 Axios 配置代理

[操作指南](https://marsproxies.cn/blog/category/how-to/)

\-

目录

1. [什么是 Axios？](https://marsproxies.cn/blog/axios-proxy/#b-%E4%BB%80%E4%B9%88%E6%98%AF-axios)
2. [如何在 Axios 中设置代理](https://marsproxies.cn/blog/axios-proxy/#b-%E5%A6%82%E4%BD%95%E5%9C%A8-axios-%E4%B8%AD%E8%AE%BE%E7%BD%AE%E4%BB%A3%E7%90%86)
3. [如何在 Axios 中使用需认证的代理](https://marsproxies.cn/blog/axios-proxy/#b-%E5%A6%82%E4%BD%95%E5%9C%A8-axios-%E4%B8%AD%E4%BD%BF%E7%94%A8%E9%9C%80%E8%AE%A4%E8%AF%81%E7%9A%84%E4%BB%A3%E7%90%86)
4. [如何在 Axios 中轮换代理](https://marsproxies.cn/blog/axios-proxy/#b-%E5%A6%82%E4%BD%95%E5%9C%A8-axios-%E4%B8%AD%E8%BD%AE%E6%8D%A2%E4%BB%A3%E7%90%86)
5. [如何在 Axios 中使用 SOCKS5 代理](https://marsproxies.cn/blog/axios-proxy/#b-%E5%A6%82%E4%BD%95%E5%9C%A8-axios-%E4%B8%AD%E4%BD%BF%E7%94%A8-socks5-%E4%BB%A3%E7%90%86)
6. [在 Axios 中使用 HTTP\_PROXY 和 HTTPS\_PROXY](https://marsproxies.cn/blog/axios-proxy/#b-%E5%9C%A8-axios-%E4%B8%AD%E4%BD%BF%E7%94%A8-httpproxy-%E5%92%8C-httpsproxy)
7. [Axios 代理常见错误](https://marsproxies.cn/blog/axios-proxy/#b-axios-%E4%BB%A3%E7%90%86%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF)
8. [使用 Axios 代理的最佳实践](https://marsproxies.cn/blog/axios-proxy/#b-%E4%BD%BF%E7%94%A8-axios-%E4%BB%A3%E7%90%86%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5)
9. [常见问题](https://marsproxies.cn/blog/axios-proxy/#b-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)

\-

核心要点：

- Axios 在 Node.js 中原生支持 HTTP 和 HTTPS 代理，通过 CONNECT 方法将 HTTPS 流量隧道传输至目标服务器。

* 轮换住宅代理可以降低 IP 被封的概率，但高级反机器人系统仍有可能检测到这类流量。

- Axios 本身不支持 SOCKS5，因此需要借助外部代理库来处理此类连接。

在进行网络爬取或调用外部 API 时，经常会遇到速率限制和地区封锁。如果从同一个 IP 地址发送过多请求，安全系统会标记该流量并断开连接。为避免这种情况，需要通过代理将请求转发至不同的 IP，以保持较高的请求成功率。

Axios 代理会将您的 HTTP 请求通过中介服务器转发。虽然 Node.js 自带 HTTP 模块，但大多数开发者仍然更倾向于使用 Axios，因为它更灵活、更易用。

下面介绍如何为 HTTP、HTTPS 和 SOCKS5 连接配置 Axios 代理，以提升请求成功率。

## 什么是 Axios？

Axios 是一个基于 Promise 的 HTTP 客户端，可用于 Node.js 和浏览器环境。使用代理时，Axios 会将请求发送至中介服务器，再由代理服务器代表您访问目标网站、下载数据，并将结果返回给您的应用程序。

尽管 Node.js 现已原生内置 [Fetch API](https://marsproxies.cn/blog/javascript-fetch-api/)，但开发者仍然更偏爱 Axios，因为它使用起来更方便：它会自动解析 JSON 响应、内置拦截器可用于修改请求，并且在网络超时配置上比原生 Fetch 更简单。

## 如何在 Axios 中设置代理

首先创建一个 Node.js 项目并执行 npm install axios。要通过代理转发流量，需在请求配置中直接传入一个代理配置对象，该对象通常包含 3 个属性：host、port 和 protocol（默认值为 HTTP）。如果使用付费代理，还需要添加 auth 属性。

可以根据所需的代理协议，直接在请求配置中定义代理设置。Axios 原生的代理对象可同时处理 HTTP 和 HTTPS 目标，因此无论端点使用哪种代理协议，同一套代理配置都可以使用。

```javascript
const axios = require ( 'axios' ) ;
 
async function checkIp ( ) {
  try {
    const response = await axios. get ( 'https://api.ipify.org?format=json' , {
      proxy : {
        protocol : 'http' ,
        host : 'ultra.marsproxies.com' ,
        port : 44443 ,
      }
    } ) ;
    console. log (response.data) ;
  } catch (error) {
    console. error (error.message) ;
  }
}
 
checkIp ( ) ;
```

运行该脚本后，目标服务器看到的将是代理 IP，而不是您本地设备的 IP。如果返回的 IP 与您的代理服务器一致，说明配置正确。

## 如何在 Axios 中使用需认证的代理

开放代理通常速度慢、不稳定、安全性差，与优质住宅代理相比往往不值得花时间使用。大多数开发者依赖付费代理供应商，而访问其网络需要进行代理认证。要在 Axios 中完成认证，需在代理配置中添加一个包含用户名和密码的 auth 对象。

与上一个示例一样，我们在代理配置中使用的是 HTTP 目标 URL，因为原生 Axios 在代理 HTTPS 端点时存在困难。

```javascript
const axios = require ( 'axios' ) ;
 
async function checkAuthenticatedIp ( ) {
  try {
    const response = await axios. get ( 'https://api.ipify.org?format=json' , {
      proxy : {
        protocol : 'http' ,
        host : 'ultra.marsproxies.com' ,
        port : 44443 ,
        auth : {
          username : 'your_marsproxies_username' ,
          password : 'your_marsproxies_password'
        }
      }
    } ) ;
    console. log (response.data) ;
  } catch (error) {
    console. error (error.message) ;
  }
}
 
checkAuthenticatedIp ( ) ;
```

如果在代理配置中错误设置或遗漏了这些凭据，代理服务器将返回 *HTTP 407 Proxy Authentication Required 错误*。

## 如何在 Axios 中轮换代理

从同一个 IP 地址发送过多请求，很快就会导致 [爬虫被封](https://marsproxies.cn/blog/web-scraping-techniques/)。为了在网络爬取过程中不超出速率限制，需要借助代理池实现代理轮换，让每个请求看起来都来自不同的 IP。

如果您管理的是一个静态代理组成的代理池，可以编写一个代理轮换函数，在多个代理之间循环切换，以此分散流量。

需要注意的是，如果使用优质住宅代理，代理供应商通常会通过单一网关端点在其一侧自动完成轮换，因此无需自定义代理配置。

下面介绍如何在 Axios 中手动轮换多个代理。

```typescript
const axios = require ( 'axios' ) ;
 
const proxyList = [
  { host: 'ultra.marsproxies.com' , port: 44443 , auth: { username: 'user_session-aaaaaaaa' , password: 'pass' } } ,
  { host: 'ultra.marsproxies.com' , port: 44443 , auth: { username: 'user_session-bbbbbbbb' , password: 'pass' } } ,
  { host: 'ultra.marsproxies.com' , port: 44443 , auth: { username: 'user_session-cccccccc' , password: 'pass' } }
] ;
 
let currentIndex = 0 ;
 
function getNextProxy ( ) {
  const proxy = proxyList[currentIndex] ;
  currentIndex = (currentIndex + 1 ) % proxyList.length;
  return proxy;
}
 
async function scrapeWithRotation (urls) {
  for ( const url of urls) {
    try {
      const response = await axios. get (url, { proxy: getNextProxy ( ) } ) ;
      console . log (url, response.status) ;
    } catch (error) {
      console . error (url, error.message) ;
    }
  }
}
```

上面的函数按顺序循环，将请求均匀分配，并在需要排查失败批次时保持顺序可预测。另一种方式是随机选择，可通过随机化函数实现。

```javascript
function getRandomProxy ( ) {
  return proxyList[Math. floor (Math. random ( ) * proxyList.length) ] ;
}
```

用 Axios 轮换住宅 IP，2026 年爬取不再被封

[获取住宅代理](https://dashboard.marsproxies.com/products/ultra-residential-proxies#buy-now)

## 如何在 Axios 中使用 SOCKS5 代理

与会读取并改写请求头的 HTTP 代理不同，SOCKS5 工作在更底层的网络层，转发流量时不会检查其内容。

由于 Axios 本身不支持 SOCKS5，需要借助外部包，例如 *socks-proxy-agent*。使用时，先用代理 URL 实例化该代理对象，再将其传入请求的 *httpAgent* 和 *httpsAgent* 属性中。

```typescript
const axios = require ( 'axios' ) ;
const { SocksProxyAgent } = require ( 'socks-proxy-agent' ) ;
 
async function testSocks ( ) {
  const agent = new SocksProxyAgent (
    'socks5h://your_marsproxies_username:your_marsproxies_password@ultra.marsproxies.com:44445'
  ) ;
 
  try {
    const response = await axios. get ( 'https://api.ipify.org?format=json' , {
      httpAgent: agent,
      httpsAgent: agent
    } ) ;
    console . log (response.data) ;
  } catch (error) {
    console . error (error.message) ;
  }
}
 
testSocks ( ) ;
```

当需要穿透严格的防火墙、或要确保代理完全不改动 HTTP 数据包的请求头时，SOCKS5 是不错的选择。

## 在 Axios 中使用 HTTP\_PROXY 和 HTTPS\_PROXY

许多开发者会将配置与代码分离，以便快速切换环境。只要在运行脚本前于终端中设置好标准的 *HTTP\_PROXY* 和 *HTTPS\_PROXY* 环境变量，Axios 就会自动读取它们。

```typescript
export HTTP_PROXY =http: / /user:pass@ ultra .marsproxies.com: 44443
export HTTPS_PROXY =http: / /user:pass@ ultra .marsproxies.com: 44443
node scraper.js
```

通过导出这些环境变量，Axios 可以直接通过代理转发 HTTP 请求，而无需在 JavaScript 文件中单独编写代理配置对象。

请注意，Axios 只在 Node.js 中读取这些变量，并且如果在请求中设置 proxy: false，Axios 会忽略这些变量。您还可以定义一个 NO\_PROXY 变量，列出应完全跳过代理服务器的域名。

## Axios 代理常见错误

在调试 Axios 代理连接时，通常会遇到以下几种常见错误：

- **HTTP 407 Proxy Authentication Required。**&#x4EE3;理服务器拒绝了您的请求，原因通常是凭据错误或订阅已过期。

* **ECONNREFUSED。**&#x4EE3;理拒绝了您的连接，通常是因为指定了错误的端口，或本地防火墙阻止了访问。

- **ETIMEDOUT。**&#x4EE3;理服务器完全没有响应，这通常说明主机已离线或 IP 地址有误。

* **SSL 协议错误。**&#x5982;果代理服务器只接受 http，而您却将代理协议设为 https，Axios 的 TLS 握手就会失败并抛出协议错误。修改协议前，请先查阅代理供应商提供的协议说明文档。

## 使用 Axios 代理的最佳实践

切勿将代理密码硬编码在源代码中，而应使用环境变量（通常借助 *dotenv* 等工具包管理）来安全加载敏感凭据。

由于 [数据抓取](https://marsproxies.cn/blog/best-web-scraping-languages/) 过程中网络请求经常失败，应设置严格的超时时间，并借助 axios-retry 等外部包实现自动重试逻辑，以处理临时性网络错误。如果您正在运行大型数据抓取项目，请确保有效管理代理池，并调整代理配置，避免任何单一 IP 触发速率限制。

请记住，代理仅替换您的 IP 地址，并不会对请求内容进行加密。如果您处理的是敏感信息，需要将流量路由至 HTTPS 端点，这样 TLS 才能在数据经过代理服务器之前对其加密。

## 常见问题

2026 年还有人在使用 Axios 吗？

2026年3月31日，Axios 遭遇供应链攻击，被植入恶意代码的 1.14.1 和 0.30.4 版本一度发布至 npm，此后部分团队转而使用 Node.js 原生的 Fetch API，以减少对第三方包的依赖。

Axios 能使用 SOCKS5 代理吗？

Axios 仅原生支持 HTTP(S) 代理。若要通过 SOCKS5 代理转发流量，必须安装 socks-proxy-agent 等外部库，并更新代理配置。

如何确认 Axios 是否正在使用我的代理？

向一个纯 HTTP 的 IP 查询服务（例如 http\://api.ipify.org）发送 GET 请求。如果返回的 IP 是您的代理服务器而非本地设备的 IP，说明配置生效。

Axios 可以配合住宅代理使用吗？

可以，但仅有 host 和 port 还不够。由于住宅代理是付费服务，还需要在代理配置的 auth 属性中填入用户名和密码；也可以选择使用 IP 白名单认证方式来完成授权。

[了解更多](https://dashboard.marsproxies.com/register/)

\-

作者

[Dalius Pamedytis 软件工程师](https://marsproxies.cn/blog/authors/dalius-pamedytis/)

目录

1. [什么是 Axios？](https://marsproxies.cn/blog/axios-proxy/#b-%E4%BB%80%E4%B9%88%E6%98%AF-axios)
2. [如何在 Axios 中设置代理](https://marsproxies.cn/blog/axios-proxy/#b-%E5%A6%82%E4%BD%95%E5%9C%A8-axios-%E4%B8%AD%E8%AE%BE%E7%BD%AE%E4%BB%A3%E7%90%86)
3. [如何在 Axios 中使用需认证的代理](https://marsproxies.cn/blog/axios-proxy/#b-%E5%A6%82%E4%BD%95%E5%9C%A8-axios-%E4%B8%AD%E4%BD%BF%E7%94%A8%E9%9C%80%E8%AE%A4%E8%AF%81%E7%9A%84%E4%BB%A3%E7%90%86)
4. [如何在 Axios 中轮换代理](https://marsproxies.cn/blog/axios-proxy/#b-%E5%A6%82%E4%BD%95%E5%9C%A8-axios-%E4%B8%AD%E8%BD%AE%E6%8D%A2%E4%BB%A3%E7%90%86)
5. [如何在 Axios 中使用 SOCKS5 代理](https://marsproxies.cn/blog/axios-proxy/#b-%E5%A6%82%E4%BD%95%E5%9C%A8-axios-%E4%B8%AD%E4%BD%BF%E7%94%A8-socks5-%E4%BB%A3%E7%90%86)
6. [在 Axios 中使用 HTTP\_PROXY 和 HTTPS\_PROXY](https://marsproxies.cn/blog/axios-proxy/#b-%E5%9C%A8-axios-%E4%B8%AD%E4%BD%BF%E7%94%A8-httpproxy-%E5%92%8C-httpsproxy)
7. [Axios 代理常见错误](https://marsproxies.cn/blog/axios-proxy/#b-axios-%E4%BB%A3%E7%90%86%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF)
8. [使用 Axios 代理的最佳实践](https://marsproxies.cn/blog/axios-proxy/#b-%E4%BD%BF%E7%94%A8-axios-%E4%BB%A3%E7%90%86%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5)
9. [常见问题](https://marsproxies.cn/blog/axios-proxy/#b-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)

分类

- [产品动态](https://marsproxies.cn/blog/category/product-news/)

  [5](https://marsproxies.cn/blog/category/product-news/)
- [产品对比](https://marsproxies.cn/blog/category/comparisons/)

  [9](https://marsproxies.cn/blog/category/comparisons/)
- [反检测解决方案](https://marsproxies.cn/blog/category/antidetect-solution/)

  [3](https://marsproxies.cn/blog/category/antidetect-solution/)
- [操作指南](https://marsproxies.cn/blog/category/how-to/)

  [122](https://marsproxies.cn/blog/category/how-to/)
- [球鞋抢购机器人](https://marsproxies.cn/blog/category/sneaker-bots/)

  [2](https://marsproxies.cn/blog/category/sneaker-bots/)
- [资讯](https://marsproxies.cn/blog/category/insights/)

  [89](https://marsproxies.cn/blog/category/insights/)

## 相关文章

[操作指南](https://marsproxies.cn/blog/category/how-to/)

### [Twitter 数据抓取 API：实用工具与使用方法](https://marsproxies.cn/blog/twitter-scraper-api/)

了解 Twitter 数据抓取 API 的工作原理，比较各类工具，并通过实用示例、技巧和实践经验，掌握如何抓取 Twitter 数据。

[Dalius Pamedytis 软件工程师](https://marsproxies.cn/blog/authors/dalius-pamedytis/)

2026年10月29日

[操作指南](https://marsproxies.cn/blog/category/how-to/)

### [如何在美国观看日本电视：2026年指南](https://marsproxies.cn/blog/watch-japanese-tv-in-usa/)

了解在美国观看日本电视的多种方法，包括免费流媒体平台、VPN 设置指南和订阅服务。

[Lukas Tilkevicius 增长与合作经理](https://marsproxies.cn/blog/authors/lukas-tilkevicius/)

2026年10月28日

[操作指南](https://marsproxies.cn/blog/category/how-to/)

### [什么是 AI 数据抓取？工作原理解析](https://marsproxies.cn/blog/ai-scraping/)

了解什么是 AI 数据抓取、AI 网络爬虫如何提取并理解网站数据、它与传统爬虫的区别，以及代理在其中扮演的角色。

[Dalius Pamedytis 软件工程师](https://marsproxies.cn/blog/authors/dalius-pamedytis/)

2026年10月27日
