Rotacja IP proxy bez VPN: co widzi wyjście
Rotuj wyjściami proxy bez VPN: co może odczytać proxy HTTP, jak lepkie sesje zapobiegają zepsutemu stanowi i które wyjście możesz obronić w polityce.
Rotacja proxy i VPN zmieniają twój publiczny adres na różnych warstwach, i ta różnica decyduje o tym, co wycieka. VPN przenosi każdy pakiet do tunelu, więc adres źródłowy, który widzi cel, to punkt końcowy tunelu. Proxy siedzi nad warstwą sieci: z wyjścia widać tylko te żądania, które przez nie wysyłasz, podczas gdy wszystko inne na maszynie zachowuje prawdziwy adres. Dobre rozdzielenie tych warstw zmienia rotację z pola wyboru w decyzję projektową.
Skąd naprawdę pochodzi publiczny adres
Adres, który widzi cel, to ten, z którego twój ruch ostatnio wyszedł, a w połączeniu domowym jest to adres dostawcy na twoim routerze, nie coś, co posiada maszyna. Restart routera może zwrócić tę samą dzierżawę, a zmiana jego adresu MAC czasem tworzy nowy, ale żadne z nich nie daje ci wyboru kraju. VPN zastępuje adres źródłowy na warstwie IP, więc każdy pakiet z maszyny, łącznie z DNS i aktualizacjami w tle, wychodzi z punktu końcowego tunelu. Proxy pracuje warstwę wyżej: przyjmuje żądanie, otwiera własne połączenie do celu, i tylko to żądanie pojawia się z wyjścia. Wszystko inne na maszynie nadal używa prawdziwego adresu.
To rozdzielenie wyjaśnia większość niespodzianek. Rozszerzenie przeglądarki skierowane na proxy zmienia tylko to, co wysyła przeglądarka, i nic więcej, więc druga aplikacja na tym samym hoście nadal wycieka oryginalny adres. Systemowy VPN ma odwrotny tryb awarii: obejmuje ruch, który chciałeś zachować lokalnie, i zamyka się tylko wtedy, gdy klient jest tak skonfigurowany. Wybór między nimi to naprawdę wybór, który ruch musi się poruszać.
Rotacja dotyczy więc tej warstwy, którą wybrałeś. Z proxy rotacja oznacza, że następne żądanie użyje innego wyjścia. Z VPN oznacza to zerwanie i odbudowę tunelu, co jest wolniejsze i objawia się jako widoczne ponowne połączenie.
Co proxy HTTP może odczytać, a czego nie
Przy zwykłym HTTP proxy widzi absolutny URI w wierszu żądania, każdy nagłówek i treść. Może to wszystko zalogować i przepisać dowolną część, dlatego darmowe proxy, które wstrzykuje skrypt do odpowiedzi, robi dokładnie to, na co pozwala protokół. Uwierzytelnianie używa Proxy-Authorization, a brakujące lub błędne dane logowania dają 407 Proxy Authentication Required zamiast błędu połączenia.
Przy HTTPS klient wysyła CONNECT host:port i proxy otwiera surowy tunel, po czym widzi zaszyfrowane bajty. Nadal poznaje nazwę hosta z wiersza CONNECT i zwykle z pola SNI w uścisku TLS, więc logowanie na poziomie nazwy hosta przetrwa, nawet gdy ładunek nie. Odczyt ładunku wymaga zakończenia TLS certyfikatem, któremu klient ufa, co jest innym produktem z innym ryzykiem. A specyfikacja semantyki HTTP definiuje CONNECT jako żądanie tunelu, co jest właściwym modelem myślowym tego, co wyjście może, a czego nie może zobaczyć.
curl -v -x http://proxy.example.net:8080 https://example.com 2>&1 | grep -E 'CONNECT|Proxy-'
Szczegółowe wyjście pokazuje wiersz CONNECT przed jakimkolwiek ruchem TLS, i to jest moment, w którym proxy poznaje twój cel. Proxy, które odpowiada 407, nigdy nie otworzyło tunelu, więc ponowna próba z innymi ustawieniami TLS nie pomoże.
Granularność rotacji decyduje, co się psuje
Rotacja przy każdym żądaniu to ustawienie, które wygląda najbezpieczniej i psuje najwięcej. Pliki cookie, tokeny CSRF i sesje po stronie serwera są związane z tożsamością, a tożsamość, która zmienia się między logowaniem a następnym wywołaniem, wygląda dla celu jak przejęcie sesji. Wielu dostawców oferuje lepką sesję, kodując ją w nazwie użytkownika proxy, więc wyjście pozostaje stałe przez wybrane okno.
Wybierz granularność według zadania, nie według domyślnych ustawień dostawcy. Crawler pobierający niezależne strony może rotować przy każdym żądaniu, natomiast przepływ płatności lub uwierzytelnione API musi utrzymać jedno wyjście przez cały przepływ. Dwa wywołania poniżej pokazują lepką nazwę użytkownika i zwykły rotujący punkt końcowy, a socks5h schemat rozwiązuje nazwy na proxy, a nie lokalnie.
curl -sS -x http://user-session-a1b2:[email protected]:8080 https://ifconfig.me
curl -sS -x socks5h://127.0.0.1:1080 https://ifconfig.me
Lokalny DNS to cichy wyciek. Jeśli klient rozwiąże nazwę przed połączeniem, resolver nadal poznaje każdy host, który odwiedzasz, nawet jeśli żądanie HTTP wychodzi gdzie indziej. A socks5h forma i rozwiązanie po stronie proxy tego unikają, a ich używanie nic nie kosztuje.
Co cel klasyfikuje poza adresem
Reputacja adresu to jeden z kilku sygnałów. Cele łączą ASN i jego etykietę centrum danych lub mieszkalną, odcisk TLS klienta, ustawienia HTTP/2, kolejność nagłówków, częstotliwość żądań i kształt nawigacji. Mieszkalne wyjście prowadzone przez przeglądarkę bez interfejsu może zawieść tam, gdzie wyjście z centrum danych prowadzone przez prawdziwą sesję przechodzi.
Typ wyjścia określa, co możesz uczciwie twierdzić o ruchu, i każdy niesie inny koszt.
| Exit type | What the target sees | Main cost |
|---|---|---|
| Datacenter proxy | Hosting ASN, cheap, often pre-blocked | Low reputation, easy to detect |
| Residential network | A consumer ISP address belonging to someone else | Consent and terms-of-service exposure |
| Mobile carrier | A carrier NAT address shared by many subscribers | Price, plus shared blame for abuse |
| Your own cloud egress | An address you are accountable for | Recognisable, but defensible |
Współdzielone wyjście nie jest neutralne. Wszystko inne, co działa z tego adresu, trafia do tego samego koszyka reputacji, a adres już spalony przez innych najemców zawodzi, zanim twoje pierwsze żądanie zostanie odczytane.
Wybierz wyjście, które umiesz opisać w polityce
Pożyteczne pytanie nie brzmi, jak ukryć adres, ale kto odpowiada za ruch, który z niego wychodzi. Twoje własne wyjście chmurowe na zadanie, dostawca na umowie z umową o przetwarzaniu danych i opublikowanym okresem przechowywania oraz samodzielnie hostowany VPN z jedną tożsamością na zadanie — wszystko to da się opisać jednym zdaniem. Darmowa lista nie, bo jej operator nie ma wobec ciebie żadnego obowiązku i ma każdą zachętę do logowania.
Trzymaj własne limity szybkości poniżej tego, co toleruje cel, i zbieraj tylko te pola, których zadanie potrzebuje, żeby błąd pozostał mały. Szybsza rotacja, by uciec przed blokadą, zwykle podnosi częstotliwość żądań, która ją spowodowała.
Zapisz wybrane wyjście, jego okno rotacji i jego właściciela w konfiguracji zadania przed pierwszym uruchomieniem. Gdy przyjdzie blokada, ta notatka mówi ci, czy zmienić wyjście, czy zmienić zachowanie.