- 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 Puppeteer. 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. Przekaż proxy przy uruchomieniu
Chromium w Puppeteer pobiera proxy z argumentu --proxy-server. Podaj tylko host i port – bez loginu i hasła.
Krok 3. Uwierzytelnij się na stronie
Przekaż login i hasło przez page.authenticate() przed pierwszą nawigacją. Poniższy przykład otwiera stronę pokazującą Twój IP.
import puppeteer from "puppeteer";
const browser = await puppeteer.launch({ args: ["--proxy-server=http://gw.prokso.com:823"] });
const page = await browser.newPage();
await page.authenticate({ username: "USERNAME", password: "PASSWORD" });
await page.goto("https://api.ipify.org");
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();Zapisz to jako check.mjs i uruchom node check.mjs.
Krok 4. Jeden IP na sesję
Przy pracy z kontami uruchamiaj każdą przeglądarkę na osobnym porcie sticky 10000–20000, żeby pliki cookie i adresy IP się nie mieszały.
Krok 5. Sprawdź IP w uruchomionej przeglądarce
Przykład z kroku 3 otwiera https://api.ipify.org w przeglądarce Puppeteer i wypisuje IP, który widzi strona – powinien różnić się od Twojego. Możesz też otworzyć https://prokso.com/pl/tools/my-ip przez page.goto(), żeby zobaczyć kraj. Twój zwykły Chrome nie korzysta z tego proxy i pokaże Twój własny adres.

Jak zmniejszyć zużycie transferu
Przeglądarka pobiera wszystko: obrazy, czcionki, wideo, reklamy. Przy zbieraniu danych to zbędne. Przechwytywanie żądań pozwala anulować to, czego nie potrzebujesz:
await page.setRequestInterception(true);
page.on("request", (req) => {
// skip heavy resources: they are not needed for data collection
const skip = ["image", "media", "font"].includes(req.resourceType());
skip ? req.abort() : req.continue();
});Na stronach z dużą liczbą obrazów zmniejsza to wolumen kilkukrotnie. Lepiej nie blokować stylów: bez nich niektóre strony renderują się inaczej i potrzebne elementy mogą się nie pojawić.
Osobny IP dla każdej przeglądarki
Argument --proxy-server ustawia się przy uruchomieniu i dotyczy całej przeglądarki. Nie da się zmienić proxy w działającej przeglądarce. Aby dostać inny IP, uruchom kolejną przeglądarkę z innym portem sticky albo zrestartuj obecną.
Przy pracy z kontami dodaj do proxy osobny folder profilu przez userDataDir: wtedy każde konto ma własne pliki cookie i własny IP.
Jeśli strona się nie otwiera
- net::ERR_PROXY_CONNECTION_FAILED. Przeglądarka nie mogła połączyć się z proxy: sprawdź host i port w argumencie uruchomienia.
- net::ERR_TUNNEL_CONNECTION_FAILED. Proxy odrzuciło połączenie: login lub hasło są nieprawidłowe albo skończył się transfer.
- net::ERR_INVALID_AUTH_CREDENTIALS.
page.authenticate()zostało wywołane po nawigacji albo z literówką. Wywołaj je przed pierwszympage.goto(). - Timeout nawigacji. Przez adresy rezydencjalne strony ładują się wolniej. Zwiększ timeout w
page.goto().
Omówienie dwóch pierwszych błędów znajdziesz na stronach ERR_PROXY_CONNECTION_FAILED i ERR_TUNNEL_CONNECTION_FAILED.
Jeśli proxy nie działa
Pytania i odpowiedzi (FAQ)
Czy trzeba wywoływać page.authenticate() dla każdej karty?
Tak. Uwierzytelnianie ustawia się dla każdej strony osobno, więc wywołaj je dla każdej nowej karty przed nawigacją.
Czy mogę obejść się bez loginu i hasła?
Tak. Dodaj IP swojego komputera lub serwera w bloku „Biała lista IP (bez hasła)” na stronie planu: wtedy page.authenticate() nie jest potrzebne.
Czy proxy działa w trybie headless?
Tak, działa tak samo w obu trybach.