Port proxy
Przesyłaj własny ruch przez węzły wyjściowe FourA z dowolnego klienta obsługującego proxy URL: przeglądarki, narzędzia do pobierania czy scrapera, którego już używasz. Port proxy otwiera tunel do wskazanego celu i przekazuje bajty w obie strony, obsługując to, czego nie obsługuje JSON API: strumienie, duże pliki i całe sesje przeglądarki.
Beta. Port proxy jest w wersji beta. Ruch przez niego nie jest jeszcze rozliczany, nie jest objęty monitoringiem ani gwarancją dostępności (uptime), a nazwy opcji mogą ulec zmianie. Zgłaszaj nam wszelkie błędy.
Łączenie
| Ustawienie | Wartość |
|---|---|
| Host | proxy.foura.ai |
| Port | 34004 |
| Protokół | HTTP CONNECT z uwierzytelnianiem Basic |
| Porty docelowe | 443 i 80 |
Dane uwierzytelniające znajdziesz w panelu. Utwórz użytkownika proxy w sekcji Proxy w menu bocznym, aby wygenerować nazwę użytkownika i hasło. Są one celowo odseparowane od Twojego klucza API: handshake proxy jest przesyłany otwartym tekstem przy każdym połączeniu, a użytkownika proxy można zmienić bez modyfikowania integracji z API. Zobacz Proxy Users.
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 https://example.com
import requests
proxy = "http://USERNAME:PASSWORD@proxy.foura.ai:34004"
r = requests.get("https://example.com", proxies={"https": proxy, "http": proxy})
print(r.status_code)
Port obsługuje wyłącznie CONNECT. Cel https:// jest tunelowany przez każdego klienta. Zwykły cel http:// działa, gdy Twój klient również go tuneluje (curl: --proxytunnel); klient, który zamiast tego przekazuje zwykłe request do proxy, otrzymuje 405 Method Not Allowed.
Opcje przesyłane w nazwie użytkownika
Wszystko po danych uwierzytelniających to lista par -key-value w dowolnej kolejności:
USERNAME-network-residential-country-de-session-a1
Wartości to słowa pisane małymi literami. Myślnik wewnątrz wartości rozpoczyna nową opcję, więc -city-new-york jest odczytywane jako dwie opcje i zostaje odrzucone. Nieznany klucz również jest odrzucany, a nie pomijany: błędnie wpisany -contry-de zwraca kod 400 z listą obsługiwanych kluczy, zamiast obsłużyć żądanie z niewłaściwego kraju.
| Opcja | Wartości | Działanie |
|---|---|---|
network |
shared (domyślna, alias pool), residential |
Sieć, z której pochodzi adres. Shared to własne węzły wyjściowe FourA, wliczone w plan. Residential to adresy domowe, pobierane z transferu premium wliczonego w plan oraz dokupionego pakietu. |
fallback |
residential, off |
Tylko sieć shared. Użyj adresu residential, gdy sieć shared nie może obsłużyć żądania. Domyślnie wyłączone; działa tylko wtedy, gdy plan zawiera transfer premium i dostępny jest limit. |
country |
ISO 3166-1 alpha-2, powtarzalne | Kraj wyjściowy widoczny dla celu. Powtórz dla zakresu wielu krajów: -country-de-country-fr. |
session |
Od 1 do 32 liter, cyfr lub znaków podkreślenia | Połączenia o tej samej nazwie współdzielą adres (sticky). Pomiń, aby uzyskać nowy adres dla każdego połączenia (rotating). |
state |
słowo | Region. Tylko residential. |
city |
słowo | Miasto. Tylko residential. |
asn |
liczba | Sieć wg numeru AS. Tylko residential. |
os |
windows, android, ios, mac |
Typ urządzenia, do którego należy adres. Tylko residential. |
lifetime |
Od 3 do 1440 |
Czas w minutach, przez jaki utrzymywany jest stały adres residential. Tylko residential. |
Każda opcja z wyjątkiem network, fallback i session przyjmuje wartość any, która czyści wartość zapisaną na użytkowniku proxy dla tego jednego połączenia.
Trzy kombinacje są odrzucane z kodem 400 zamiast częściowego wykonania:
state,city,asn,oslublifetimew sieci shared. Sieć shared jest wybierana tylko na poziomie kraju; dodaj-network-residential, aby targetować miasto.-fallback-residentialrazem z-network-residential. Fallback nie ma zastosowania w sieci, do której następuje przekierowanie.- Bardziej szczegółowe targetowanie przy aktywnym fallbacku. Fallback może zadziałać lub nie, dlatego miasto, którego obsługa byłaby możliwa tylko czasami, jest odrzucane.
Sesje
W sieci shared nazwana sesja utrzymuje ten sam węzeł wyjściowy tak długo, jak go używasz, w przesuwnym oknie dziesięciominutowym. Jeśli ten węzeł przestanie działać, sesja przełącza się na inny zamiast kończyć się błędem. Przeglądarka sterowana przez ten port powinna zawsze posiadać nazwę sesji: ładowanie strony otwiera dziesiątki połączeń, a bez sesji każde z nich wychodzi z innego adresu.
W sieci residential nazwana sesja utrzymuje swój adres przez lifetime minut lub przez domyślny czas sieci, jeśli go nie ustawiono.
Zapisane wartości domyślne
Targetowanie zapisane dla użytkownika proxy w panelu dotyczy każdego nawiązanego połączenia, dzięki czemu username może pozostać krótki. Wszystko, co umieścisz w username, ma priorytet dla danego połączenia, a any przywraca zapisaną wartość. Zapisana domyślna sieć residential zużywa zasoby tylko wtedy, gdy pozwala na to Twój plan; w przeciwnym razie połączenie jest obsługiwane z sieci współdzielonej.
CONNECT headers
Klient, który może dodawać nagłówki do żądania CONNECT, może wysyłać te same opcje jako nagłówki. Nagłówek ma pierwszeństwo przed tą samą opcją podaną w username.
| Header | Odpowiednik |
|---|---|
X-Foura-Network |
-network- |
X-Foura-Fallback |
-fallback- (residential lub off) |
X-Foura-Country |
-country-, rozdzielone przecinkami dla wielu wartości |
X-Foura-Session |
-session- |
X-Foura-State |
-state- |
X-Foura-City |
-city- |
X-Foura-Asn |
-asn- |
X-Foura-Lifetime |
-lifetime- |
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 \
--proxy-header "X-Foura-Country: de" \
https://example.com
Odpowiedzi
Otwarty tunel zwraca 200 Connection established. Każda odmowa zawiera nagłówek X-Foura-Error z jednoliniowym powodem, więc sprawdź ten nagłówek w pierwszej kolejności.
| Status | Kiedy |
|---|---|
| 400 Bad Request | Nieprawidłowo sformułowany request lub opcja, której FourA nie może obsłużyć. X-Foura-Error określa opcję oraz obsługiwane wartości. |
| 403 Forbidden | Port docelowy nie jest obsługiwany lub cel nie jest publicznym hostem internetowym. |
| 405 Method Not Allowed | Zwykły request zamiast CONNECT. |
| 407 Proxy Authentication Required | Brakujące lub błędne dane uwierzytelniające. Odpowiedź nigdy nie wskazuje, która część była błędna. |
| 408 Request Timeout | Klient połączył się i nie przesłał nic przez 15 sekund. |
| 429 Too Many Requests | Użytkownik proxy ma już otwartych 200 tuneli lub port osiągnął limit pojemności albo częstotliwości otwierania. |
| 502 Bad Gateway | Nie znaleziono działającego węzła wyjściowego dla tego celu w ramach limitu czasu wyboru lub własny resolver FourA nie mógł rozpoznać hosta. Są to dwa różne komunikaty w X-Foura-Error. |
| 503 Service Unavailable | Port proxy jest wyłączony. |
Limity
- Do 200 jednocześnie otwartych tuneli na użytkownika proxy.
- Znalezienie węzła wyjściowego trwa do 45 sekund, zanim port zakończy próbę błędem 502. Sesja z przypisanym węzłem wyjściowym zazwyczaj łączy się w czasie znacznie krótszym niż sekunda.
- Tunel bez przesłanych bajtów w obu kierunkach jest zamykany po dwóch minutach bezczynności.
- Użytkownik proxy wyłączony lub usunięty w panelu przestaje być uwierzytelniany w ciągu minuty.
Rozliczanie
Bajty przesyłane przez port wliczają się do transferu na stronie Usage & Limits, a bajty przesyłane przez rezydencjalny węzeł wyjściowy wliczają się również do ruchu premium. Połączenie wskazujące -network-residential po wyczerpaniu limitu premium jest mimo to obsługiwane; mechanizm fallback ani zapisana domyślna opcja residential nie są wtedy stosowane, a połączenie obsługuje sieć współdzielona.
Powiązane
- Proxy Users: Twórz użytkowników proxy i buduj connection string w panelu
- Proxy Request: Alternatywa w postaci JSON API, z wbudowanymi ponowieniami i walidacją
- Reuse a Proxy Across Requests: Zachowanie jednego węzła wyjściowego w JSON API
- Usage & Limits: Przepustowość i ruch premium w ramach planu