Cómo configurar un proxy en Node.js (Axios y Native Fetch)
Actualizado:
La opción predeterminada de Axios proxy: { host, port } falla al realizar peticiones a destinos https:// porque no establece un túnel HTTP CONNECT. Para dirigir el tráfico de Node.js y TypeScript limpiamente a través de los proxies HTTP(S) autenticados de VinaProxy, utiliza un HttpsProxyAgent (https-proxy-agent) con Axios o un dispatcher undici.ProxyAgent con la función nativa fetch().
new HttpsProxyAgent('http://user:pass@ip:port')- 1 IP40.000 ₫
- 5+ IPs35.000 ₫
- 10+ IPs25.000 ₫
- 20+ IPs25.000 ₫
- 50+ IPs25.000 ₫
- 100+ IPs25.000 ₫
- 200+ IPs25.000 ₫
- 500+ IPs25.000 ₫
- 1000+ IPs22.000 ₫
- 2000+ IPs20.000 ₫
- 1 IP40.000 ₫
- 5+ IPs35.000 ₫
- 10+ IPs25.000 ₫
- 20+ IPs25.000 ₫
- 50+ IPs25.000 ₫
- 100+ IPs25.000 ₫
- 200+ IPs25.000 ₫
- 500+ IPs25.000 ₫
- 1000+ IPs22.000 ₫
- 2000+ IPs20.000 ₫
Comparativa de configuración de proxy en Axios y fetch() nativo
Ambas librerías aceptan directamente la URL estándar http://user:pass@ip:port provista en tu panel de VinaProxy:
| Cliente HTTP | Paquete NPM | Fragmento de código recomendado |
|---|---|---|
| Axios | npm i https-proxy-agent | axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port'), proxy: false }) |
Nativo fetch (Node 18+) | npm i undici | fetch(url, { dispatcher: new ProxyAgent('http://user:pass@ip:port') }) |
| Got | npm i hpagent | got(url, { agent: { https: new HttpsProxyAgent({ proxy: 'http://user:pass@ip:port' }) } }) |
Reutilización de conexiones y control de timeouts en Node.js
- Declara siempre
proxy: falsejunto conhttpsAgenten Axios para que ignore posibles variables de entornoHTTP_PROXYdel sistema operativo - Instancia
HttpsProxyAgentoProxyAgentuna sola vez por IP de proxy fuera de los bucles para reutilizar conexiones TCP keep-alive persistentes - Exporta tu lista de proxies VinaProxy directamente como un array JSON mediante nuestro Conversor de formato de proxy
Paso a paso
- 1
Instala https-proxy-agent (o undici)
Ejecuta
npm install axios https-proxy-agenten tu proyecto de Node.js. - 2
Crea la instancia de HttpsProxyAgent
Inicializa
const agent = new HttpsProxyAgent('http://user:pass@ip:port');con tus credenciales de VinaProxy. - 3
Pasa httpsAgent y proxy: false a Axios
Llama a
const res = await axios.get('https://vinaproxy.com/api/my-ip', { httpsAgent: agent, proxy: false, timeout: 10000 });. - 4
Verifica la IP pública de salida
Imprime
res.datapara comprobar que la conexión transitó por tu IP de proxy dedicada.
Preguntas frecuentes
¿Por qué la configuración default proxy: { host, port, auth } de Axios falla en URLs HTTPS?
El sistema interno de Axios envía una petición HTTP plana sin abrir un túnel TLS mediante HTTP CONNECT. Usar httpsAgent: new HttpsProxyAgent('http://user:pass@ip:port') con proxy: false soluciona este comportamiento.
¿Cómo se configura un proxy en la función fetch() nativa de Node.js 18/20/22?
Importa ProxyAgent desde undici e introduce { dispatcher: new ProxyAgent('http://user:pass@ip:port') } en el objeto de opciones de fetch().
¿Se puede convertir una lista de proxies a formato JSON para proyectos Node.js?
Sí. Introduce tus líneas en formato ip:port:user:pass en nuestro Conversor de formato de proxy gratuito y escoge la salida JSON.
Potencia tus servicios y scrapers en Node.js con IPs estáticas dedicadas
Proxies Dedicated IPv4 y Static ISP ilimitados con aprovisionamiento instantáneo en 7 países.
Comprar proxies para Node.js