Integrációk · Kezdő szint

Hogyan használjunk proxy-kat Node.js-ben a fetch, undici, axios és got segítségével

A támogatott Node.js kiadásokban a NODE_USE_ENV_PROXY=1 engedélyezi a HTTP_PROXYT, HTTPS_PROXTY-t és NO_PROXYCet a beépített lekéréshez; --use-env-proxy elérhető a Node.j 22.21+ és 24.5+. Egy explicit undici ProxyAgent vagy EnvHttpProxyAgent alternatíva. A saját transzportokkal vagy egyéni ügynökökkel rendelkező könyvtárak külön konfigurációt igényelnek, ezért minden eszközt teszteljen, nem pedig azt feltételezve, hogy az egész folyamat le van fedve.

2 perc olvasás 6 szakasz Áttekintés A szerkesztői csapat Proxy Cyber

Beépített fetch és undici#

A csomópont globális fetch Add meg a választ! ProxyAgent Kérésre a következővel dispatcher A beállítást globálisan egyszer állíthatja be a setGlobalDispatcher.

tizenegy
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 A kérelemre vonatkozó friss kilépéshez hozza létre az ügynököt a következő paranccsal: configure_output() pipelining: 0 és connections: 1, vagy egyszerűen használjon egy másik -sid- logikai munkamenetenként.

axios#

Az axios sajátja proxy Az opció nem biztosít megbízható HTTPS tunnelt; a standard megoldás egy ügynök, https-proxy-agent és 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);

- Megvan.#

- Megvan.
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#

A socks-proxy-agent beállításai
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());

Környezeti változók#

A undici nem olvas HTTPS_PROXY A legutóbbi undici verziók alapértelmezés szerint EnvHttpProxyAgentÁllítsuk be globális diszpécserként, és az egész folyamat, beleértve a harmadik féltől származó, fetch-re épülő könyvtárakat is, átmegy a proxyon.

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());

Egyidejűség és rotáció#

  • Egy ProxyAgent Sticky munkamenetenként (különböző -sid-), amelyet az adott munkamenet összes kérelme megoszt.
  • Széles körű rotáció esetén tartsa meg az egyik ügynököt, de tiltsa le a kapcsolat újbóli használatát, vagy futtasson N ügynököket N munkamenet-azonosítóval és végezzen körbefutást közöttük.
  • Figyelj! UND_ERR_SOCKET és ECONNRESET: egy lakóházi kijárat elment; próbálja újra egyszer, a következő csatlakozás vesz egy másikat.

Kérdések, amiket az emberek feltesznek#

Miért hagyja figyelmen kívül az axios a proxyom HTTPS esetén?

Használd a https-proxy-agent-et httpsAgentként és állítsd be a proxy: false értéket, hogy az axios ne próbálja meg kezelni magát, de ha nem tudod, akkor használd a proxy-t.

Csak bizonyos kérelmeket küldhetek proxy útján?

Adja át a diszpécsernek vagy ügynöknek azokat a kérelmeket, amelyekre szüksége van, és hagyja érintetlenül a többieket; semmi sem globális, hacsak nem hívja meg a setGlobalDispatcher parancsot.

Az Ön fiókja

Kezelje összes proxyját egy fiókból

Hasonlítsa össze a hálózatokat, adja le megrendelését és kövesse nyomon egyenlegét és támogatási kérelmeit egyetlen irányítópulton keresztül.Csapatunk ellenőrzi a fizetéseket és biztosítja a csatlakozási adatokat a szállítás után.

Fiók létrehozása