- Host
- gw.prokso.com
- Port
- 823 HTTP · 824 SOCKS5 — nowy IP przy każdym żądaniu · 10000–20000 stały IP na całą sesję, HTTP(S) i SOCKS5
- Login i hasło
- w panelu klienta, na stronie planu
Gotowe wiersze w potrzebnym formacie wygenerujesz w panelu klienta: wybierz kraj, typ IP i protokół.
- Host gw.prokso.com, porty 823 (HTTP), 824 (SOCKS5), 10000–20000 (sesje sticky, HTTP lub SOCKS5)
- Login i hasło znajdziesz w panelu klienta na stronie planu
- Sprawdzaj IP w odpowiedzi na samo żądanie wysłane przez proxy: strona Mój IP w przeglądarce nie testuje Twojego skryptu
Instrukcja krok po kroku, jak podłączyć proxy Prokso w Node.js. Zajmie to kilka minut.
Krok 1. Pobierz dane proxy z panelu klienta
Otwórz swój plan i skopiuj host gw.prokso.com, port, login i hasło. Port 823 to HTTP, a 824 to SOCKS5 (oba dają nowy IP przy każdym żądaniu); porty 10000–20000 utrzymują jeden IP (sesja sticky) do 120 minut i działają zarówno jako HTTP, jak i SOCKS5 (każdy port to osobny adres). Kraj ustawiasz w loginie: username__cr.ua.

Krok 2. Zainstaluj pakiety
Potrzebujesz axios i https-proxy-agent: npm i axios https-proxy-agent.
Krok 3. Utwórz agenta proxy
Przekaż URL proxy do HttpsProxyAgent i dołącz go do żądania. Zostaw proxy: false, żeby axios nie stosował własnych ustawień.
// npm i axios https-proxy-agent
import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";
const agent = new HttpsProxyAgent("http://USERNAME:PASSWORD@gw.prokso.com:823");
const { data } = await axios.get("https://api.ipify.org?format=json", { httpsAgent: agent, proxy: false });
console.log(data);Zapisz to jako check.mjs i uruchom node check.mjs.
Krok 4. Przełączaj się między trybami
Port 823 daje nowy IP przy każdym żądaniu, a 10000–20000 – stały IP na czas sesji. Dla SOCKS5 użyj pakietu socks-proxy-agent i portu 824 (rotacja) albo tego samego portu sticky 10000–20000.
Krok 5. Sprawdź wynik skryptu
Uruchom przykład z kroku 3: axios wywołuje https://api.ipify.org przez agenta proxy i wypisuje { ip: '…' }. To adres, który widzi strona, i powinien różnić się od Twojego. Błąd 407 oznacza nieprawidłowy login lub hasło. Strona Mój IP w przeglądarce nic tu nie pokaże, bo przeglądarka łączy się bezpośrednio.

Jeden agent dla całej aplikacji
Utwórz agenta proxy raz i używaj go we wszystkich żądaniach. Nowy agent przy każdym żądaniu otwiera nowe połączenie z proxy, a skrypt działa wolniej. Najwygodniej zbudować instancję axios z potrzebnymi ustawieniami:
import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";
const agent = new HttpsProxyAgent("http://USERNAME:PASSWORD@gw.prokso.com:823");
// one client for the whole app: proxy, timeout, no built-in axios proxy
const http = axios.create({ httpAgent: agent, httpsAgent: agent, proxy: false, timeout: 30000 });
const { data } = await http.get("https://prokso.com/ip");
console.log(data);Ustaw timeout jawnie: domyślnie axios czeka na odpowiedź w nieskończoność, a jedno zawieszone żądanie zatrzyma całą kolejkę.
Co oznaczają błędy
- Odpowiedź 407. Proxy nie przyjęło loginu lub hasła. Sprawdź linię i pozostały transfer w planie.
- ECONNREFUSED. Na podanym hoście i porcie nic nie odpowiada: w adresie lub porcie jest literówka.
- ETIMEDOUT lub ECONNRESET. Połączenie zostało zerwane albo w ogóle nie zostało nawiązane. Ponów żądanie: na porcie 823 wyjdzie ono z nowego IP.
- Żądanie wyszło z Twojego własnego IP. Albo brakuje
proxy: falsei axios zastosował własne ustawienia, albo agent nie został przekazany dla właściwego protokołu.
Kody 403 i 429 pochodzą od strony, a nie od proxy. Co z nimi zrobić, opisujemy na stronie kody błędów proxy.
Żądania równoległe
Promise.all uruchamia wszystkie żądania naraz. Przy setkach adresów przeciąża to zarówno stronę, jak i Twój skrypt. Ogranicz liczbę jednoczesnych żądań kolejką: zwykle wystarczy od dziesięciu do dwudziestu, a jeśli dostajesz odpowiedzi 429 – zmniejsz tę liczbę.
Jeśli proxy nie działa
Pytania i odpowiedzi (FAQ)
Czy Node.js odczytuje zmienne HTTP_PROXY?
Wbudowane moduły domyślnie ich nie odczytują. Pewniej jest przekazać proxy jawnie przez agenta, tak jak w przykładzie.
Jak zakodować hasło ze znakami specjalnymi?
Owiń login i hasło w encodeURIComponent(), kiedy budujesz adres proxy.
Jak zachować jeden IP dla serii żądań?
Zamień port 823 na port sticky z zakresu 10000-20000: wszystkie żądania przez niego wyjdą z jednego IP, dopóki trwa sesja.