Integrari · Începutul

Cum se utilizează proxy-uri în Node.js cu aduce, undici, axios și a primit

La Node.js lanseaza, NODE USE ENV PROXY=1 permite HTTP PROXY, HTTPS PROXY si NO PROXY pentru built-in apple; --utilizare-env-proxy este disponibil în Node.js 22.21+ și 24.5+. Un explicit uncid ProxyAgent sau EnvHttttpProxyAgent este o alternativă. Biblioteci cu propriile lor transporturi sau agenți personalizați au nevoie de configurare separată, astfel încât să testeze fiecare instrument în loc să se presupună că întregul proces este acoperit.

2 min citește 6 secţiuni Revizuit Echipa editorială Proxy Cyber

Achiziționare și ștearsă#

Nodul este global fetch Da-i un undici. ProxyAgent pe cerere, cu dispatcher opțiunea sau setați-o la nivel global o dată cu setGlobalDispatcher.

undeci
import { fetch, ProxyAgent, setGlobalDispatcher } from "undici";

const proxy = new ProxyAgent("http://USER-cc-us:PASS@res.proxy-cyber.com:9000");

// Per request
const res = await fetch("https://api.ipify.org", { dispatcher: proxy });
console.log(await res.text());

// Or globally, for every fetch in the process
setGlobalDispatcher(proxy);

A ProxyAgent Conexiuni piscine, astfel încât cererile consecutive pot refolosi o conexiune și, prin urmare, o ieșire. Pentru o ieșire proaspătă per cerere crea agentul cu pipelining: 0 şi connections: 1, sau pur și simplu de a folosi un alt -sid- pe sesiune logică.

axios#

Axios propriu proxy opțiunea nu tunel HTTPS fiabil; abordarea standard este un agent de la https-proxy-agent şi proxy: false.

axios
import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";

const agent = new HttpsProxyAgent("http://USER-cc-de-city-berlin-sid-cart42-ttl-15m:PASS@res.proxy-cyber.com:9000");
const client = axios.create({ httpsAgent: agent, httpAgent: agent, proxy: false, timeout: 30000 });

const { data } = await client.get("https://api.ipify.org");
console.log(data);

Am...#

Am...
import got from "got";
import { HttpsProxyAgent } from "https-proxy-agent";

const agent = new HttpsProxyAgent("http://USER-cc-us:PASS@res.proxy-cyber.com:9000");
const body = await got("https://api.ipify.org", { agent: { https: agent, http: agent }, timeout: { request: 30000 } }).text();
console.log(body);

SOCKS5#

șosete-proxy-agent
import fetch from "node-fetch";
import { SocksProxyAgent } from "socks-proxy-agent";

const agent = new SocksProxyAgent(process.env.PROXY_URL);
const response = await fetch("https://api.ipify.org", { agent });
console.log(await response.text());

Variabile de mediu#

ici nu se citeste HTTPS_PROXY în mod implicit. Recente versiuni unici navă EnvHttpProxyAgent, care face; setați-l ca dispecer global și întregul proces, inclusiv bibliotecile terțe construite pe aduce, trece prin proxy.

EnvHttpProxyAgent
import { EnvHttpProxyAgent, setGlobalDispatcher } from "undici";
// HTTPS_PROXY=http://USER-cc-us:PASS@res.proxy-cyber.com:9000 NO_PROXY=localhost node app.js
setGlobalDispatcher(new EnvHttpProxyAgent());

Conexiuni și rotație#

  • Unu. ProxyAgent pe sesiune lipicioasă (diferită -sid-), împărtășit de toate cererile acestei sesiuni.
  • Pentru rotație largă, păstrați un agent, dar dezactivați reutilizarea conexiunii, sau executați agenți N cu ID-uri de sesiune N și rotunjiți-le.
  • Priveşte. UND_ERR_SOCKET şi ECONNRESET: o ieșire rezidențială a plecat; rejudecați o dată, următoarea conexiune alege alta.

Întrebări pe care oamenii le pun#

De ce Axios ignoră proxy-ul meu pentru HTTPS?

Suportul său proxy încorporat este limitat pentru tunelurile CONNECT. Utilizați https-proxy-agent ca httpsAgent și proxy set: fals astfel încât axios nu încearcă să-l ocupe în sine.

Pot să fac doar câteva cereri?

Da. Treceţi dispecerul sau agentul la cererile care au nevoie şi lăsaţi-le pe celelalte neatinse; nimic nu este global dacă nu numiţi SetGlobalDispatcher.

Contul dumneavoastră

Administrează toate proxy-urile într-un singur cont

Comparați rețelele, plasați comenzile și urmați cererile de echilibru și suport de la un tablou de bord. Echipa noastră evaluează plățile și oferă detalii de conexiune după livrare.

Creează cont