Jak skonfigurować proxy w curl

curl przez proxy Prokso: HTTP z -x i -U, SOCKS5 przez socks5h na porcie 824, zmienne http_proxy i NO_PROXY, jeden IP dla wielu poleceń.

Zaktualizowano · Redakcja Prokso

Dane do połączenia
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ół.

W skrócie
  • 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 samego żądania wysłanego przez proxy: strona Mój IP w przeglądarce nie testuje Twojego skryptu

Instrukcja krok po kroku, jak podłączyć proxy Prokso w curl. Zajmie Ci 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.

Blok „Dostęp” na stronie planu: host, porty, login i hasło do linii proxy
Blok „Dostęp” na stronie planu: host, porty, login i hasło do linii proxy

Krok 2. Proxy HTTP w jednej linii

Flaga -x ustawia proxy, a -U – login i hasło. Używaj cudzysłowów: jeśli login zawiera parametry, np. USERNAME__cr.ua, albo średnik, powłoka bez nich go rozbije.

curl -x http://gw.prokso.com:823 -U "USERNAME:PASSWORD" https://api.ipify.org

Krok 3. SOCKS5

Dla SOCKS5 użyj schematu socks5h:// i portu 824 (nowy IP przy każdym żądaniu) albo portu sticky z zakresu 10000–20000, który też działa z SOCKS5. Litera h oznacza, że nazwę domeny strony rozwiązuje proxy, a nie Twój komputer, więc zapytania DNS również nie wychodzą z Twojego IP.

curl -x socks5h://gw.prokso.com:824 -U "USERNAME:PASSWORD" https://api.ipify.org

Krok 4. Zmienne środowiskowe

Żeby nie wpisywać -x za każdym razem, ustaw zmienne. Dla HTTP curl odczytuje tylko http_proxy pisane małymi literami; dla HTTPS działa zarówno https_proxy, jak i HTTPS_PROXY. Adresy, które mają łączyć się bezpośrednio, wpisz w NO_PROXY.

export http_proxy="http://USERNAME:PASSWORD@gw.prokso.com:823"
export https_proxy="$http_proxy"
export NO_PROXY="localhost,127.0.0.1"
curl https://api.ipify.org

Krok 5. Sprawdź IP w odpowiedzi

Uruchom dowolne polecenie z przykładów: https://api.ipify.org zwraca IP, z którego przyszło żądanie – powinien to być IP proxy, a nie Twój. Przeglądarka nie korzysta z tych ustawień, więc sprawdzaj w terminalu.

Przykład uruchomienia: w wyniku widać IP proxy, a nie Twoje. Na porcie 823 każde uruchomienie daje nowy adres
Przykład uruchomienia: w wyniku widać IP proxy, a nie Twoje. Na porcie 823 każde uruchomienie daje nowy adres

Przydatne flagi przy pracy przez proxy

  • --max-time 30: łączny limit czasu. Bez niego zawieszone żądanie będzie wisieć w nieskończoność.
  • --connect-timeout 10: osobny limit na połączenie z proxy.
  • --retry 3 --retry-delay 2: ponowienie przy chwilowych błędach; na porcie 823 każda kolejna próba wychodzi z nowego IP.
  • --compressed: żądanie skompresowanej odpowiedzi, czyli mniej transferu przy tej samej treści.
  • -I: tylko nagłówki. Przydaje się, gdy chcesz sprawdzić, czy strona odpowiada, bez pobierania jej treści.
  • -s -o /dev/null -w "%{http_code}\n": wypisuje tylko kod odpowiedzi.

Kraj i sesja w loginie

Parametry proxy zapisuje się w loginie. Kraj to USERNAME__cr.de. Najprościej zbudować potrzebny login w generatorze w panelu klienta i skopiować go stamtąd. Cudzysłowy wokół loginu są obowiązkowe: bez nich powłoka po swojemu zinterpretuje znaki specjalne.

# exit IP in Germany, a new address for every request
curl -x http://gw.prokso.com:823 -U "USERNAME__cr.de:PASSWORD" https://prokso.com/ip

# the same IP for a series of commands: a sticky port
curl -x http://gw.prokso.com:10001 -U "USERNAME__cr.de:PASSWORD" https://prokso.com/ip

Co oznaczają błędy curl

  • (5) Could not resolve proxy. W nazwie hosta proxy jest literówka.
  • (7) Failed to connect. Proxy jest nieosiągalne na tym porcie: sprawdź port i to, czy nie jest zablokowany w Twojej sieci.
  • (56) CONNECT tunnel failed, response 407. Login lub hasło są błędne albo w planie skończył się transfer.
  • (28) Operation timed out. Odpowiedź nie dotarła na czas: zwiększ --max-time lub ponów żądanie.
  • (97) lub błąd negocjacji SOCKS. Schemat nie pasuje do portu: 823 to tylko HTTP, 824 – tylko SOCKS5.

Kody odpowiedzi samej strony docelowej opisujemy na stronie kody błędów proxy.

Jeśli proxy nie działa

Pytania i odpowiedzi (FAQ)

Jak sprawdzić, czy żądanie naprawdę idzie przez proxy?

Dodaj -v: w wyniku zobaczysz połączenie z gw.prokso.com, a dla HTTPS – żądanie CONNECT do strony.

Dlaczego curl ignoruje HTTP_PROXY pisane wielkimi literami?

To celowe ograniczenie bezpieczeństwa w curl. Dla HTTP używaj tylko http_proxy pisanego małymi literami.

Jak curl działa z proxy w Windows?

Tak samo. W PowerShell nazwa curl może wywołać wbudowane polecenie z innymi parametrami, dlatego pisz curl.exe.

Czym socks5 różni się od socks5h?

Przy socks5h nazwę strony rozwiązuje proxy, a nie Twój komputer. Dzięki temu zapytania DNS nie omijają proxy.

Jak zapisać odpowiedź do pliku?

Dodaj -o filename. Proxy nie ma na to wpływu.