Cómo usar proxies en Node.js (fetch y axios)
Node.js 18 y versiones posteriores incluyen fetch a través de undici. Un ProxyAgent envía cada solicitud a través de la puerta de enlace con tu nombre de usuario y contraseña.
Pasos
- Instala undici con npm install undici
- Crea un ProxyAgent con la URL de la puerta de enlace y tu inicio de sesión
- Pásalo como dispatcher a fetch
- Agrega un código de país o un ID de sesión al nombre de usuario cuando sea necesario
Código de ejemplo
import { ProxyAgent, fetch } from "undici";
const agent = new ProxyAgent({
uri: "http://gw.gbproxies.cc:10000",
token: "Basic " + Buffer.from("USERNAME-cc-de:PASSWORD").toString("base64"),
});
const r = await fetch("https://api.ipify.org?format=json", { dispatcher: agent });
console.log(await r.json());Reemplaza USERNAME y PASSWORD con el inicio de sesión del proxy de la página Proxies de la consola. El puerto 10000 es HTTP residencial; consulta los puertos de cada producto abajo.
Consejos
- Con axios, configura proxy: { protocol: "http", host, port, auth: { username, password } }
- Crea un agente por ID de sesión cuando necesites varias IPs fijas a la vez
Preguntas comunes
¿Funciona con sitios HTTPS?
Sí. El agente abre un túnel CONNECT al destino, por lo que HTTPS permanece cifrado de extremo a extremo.