Rotace proxy IP bez VPN: co výstup vidí
Rotujte proxy výstupy bez VPN: co může HTTP proxy přečíst, jak lepivé relace brání rozbitému stavu a který výstup můžete obhájit v zásadách.
Rotace proxy a VPN mění vaši veřejnou adresu v různých vrstvách a ten rozdíl rozhoduje o tom, co uniká. VPN přesouvá každý paket do tunelu, takže zdrojová adresa, kterou cíl vidí, je koncový bod tunelu. Proxy stojí nad síťovou vrstvou: z výstupu se objevují jen požadavky, které přes ni pošlete, zatímco všechno ostatní na stroji si zachovává skutečnou adresu. Když to rozdělení sedí, promění rotaci ze zaškrtávacího pole v designové rozhodnutí.
Odkud veřejná adresa vlastně pochází
Adresa, kterou cíl vidí, je ta, ze které váš provoz naposledy vyšel, a na domácím připojení je to adresa poskytovatele na vašem routeru, ne něco, co stroj vlastní. Restart routeru může vrátit stejný pronájem a změna jeho MAC adresy někdy vytvoří novou, ale ani jedno vám nedá volbu země. VPN nahrazuje zdrojovou adresu na vrstvě IP, takže každý paket ze stroje, včetně DNS a aktualizací na pozadí, vychází z koncového bodu tunelu. Proxy pracuje o vrstvu výš: přijme požadavek, otevře vlastní spojení k cíli a z výstupu se objeví jen tento požadavek. Všechno ostatní na stroji dál používá skutečnou adresu.
Toto rozdělení vysvětluje většinu překvapení. Rozšíření prohlížeče nasměrované na proxy mění jen to, co prohlížeč odesílá, a nic jiného, takže druhá aplikace na stejném hostiteli pořád vyzrazuje původní adresu. Systémová VPN má opačný režim selhání: pokrývá provoz, který jste chtěli nechat lokální, a zavře se jen tehdy, když je klient tak nakonfigurovaný. Vybrat mezi nimi vlastně znamená vybrat, který provoz se musí hýbat.
Rotace se pak vztahuje na vrstvu, kterou jste zvolili. U proxy rotace znamená, že další požadavek použije jiný výstup. U VPN to znamená strhnout a znovu postavit tunel, což je pomalejší a projeví se jako viditelné opětovné připojení.
Co HTTP proxy přečíst může a co ne
U prostého HTTP vidí proxy absolutní URI v řádku požadavku, každou hlavičku i tělo. Může to všechno zaznamenat a kteroukoli část přepsat, a proto bezplatná proxy, která do odpovědí vkládá skript, dělá přesně to, co protokol dovoluje. Autentizace používá Proxy-Authorization, a chybějící nebo špatný údaj přihlášení vytvoří 407 Proxy Authentication Required místo chyby připojení.
U HTTPS klient posílá CONNECT host:port a proxy otevře surový tunel, po němž vidí šifrované bajty. Pořád se učí jméno hostitele z řádku CONNECT a obvykle z pole SNI v TLS handshake, takže protokolování na úrovni jména hostitele přežije, i když obsah ne. Čtení obsahu vyžaduje ukončení TLS certifikátem, kterému klient důvěřuje, což je jiný produkt s jiným rizikem. A specifikace sémantiky HTTP definuje CONNECT jako tunelový požadavek, což je správný mentální model toho, co výstup může a nemůže vidět.
curl -v -x http://proxy.example.net:8080 https://example.com 2>&1 | grep -E 'CONNECT|Proxy-'
Podrobný výstup ukazuje řádek CONNECT před jakýmkoli provozem TLS, a to je okamžik, kdy se proxy dozví váš cíl. Proxy, která odpoví 407, tunel nikdy neotevřela, takže opakování s jiným nastavením TLS nepomůže.
Granularita rotace rozhoduje, co se rozbije
Rotace při každém požadavku je nastavení, které vypadá nejbezpečněji a rozbije nejvíc. Cookies, tokeny CSRF a serverové relace jsou vázané na identitu a identita, která se mezi přihlášením a dalším voláním změní, vypadá pro cíl jako únos relace. Mnoho poskytovatelů nabízí lepivou relaci tím, že ji zakóduje do uživatelského jména proxy, takže výstup zůstane pro zvolené okno pevný.
Vyberte granularitu podle úkolu, ne podle výchozího nastavení poskytovatele. Crawler, který stahuje nezávislé stránky, může rotovat při každém požadavku, zatímco platební tok nebo autentizované API musí držet jeden výstup po celý tok. Dvě volání níže ukazují lepivé uživatelské jméno a obyčejný rotující koncový bod a socks5h schéma řeší jména na proxy, ne lokálně.
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
Lokální DNS je tichý únik. Pokud klient přeloží jméno před připojením, resolver se pořád dozví každého hostitele, kterého navštívíte, i když HTTP požadavek vychází jinam. A socks5h forma a řešení na straně proxy tomu zabrání a jejich používání nic nestojí.
Co cíl klasifikuje kromě adresy
Reputace adresy je jeden vstup mezi několika. Cíle kombinují ASN a jeho označení datové centrum nebo rezidenční, TLS otisk klienta, nastavení HTTP/2, pořadí hlaviček, frekvenci požadavků a tvar navigace. Rezidenční výstup řízený headless prohlížečem může selhat tam, kde výstup z datového centra řízený skutečnou relací projde.
Typ výstupu určuje, co o provozu můžete poctivě tvrdit, a každý nese jinou cenu.
| 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 |
Sdílený výstup není neutrální. Všechno ostatní, co z této adresy běží, padá do stejného kbelíku reputace, a adresa už spálená jinými nájemci selže dřív, než se přečte váš první požadavek.
Vyberte výstup, který umíte popsat v zásadách
Užitečná otázka není, jak adresu skrýt, ale kdo odpovídá za provoz, který z ní vychází. Váš vlastní cloudový výstup pro každý úkol, smluvní poskytovatel s dohodou o zpracování dat a zveřejněnou dobou uchování a vlastnoručně hostovaná VPN s jednou identitou na úkol — to všechno se dá popsat jednou větou. Bezplatný seznam ne, protože jeho provozovatel vůči vám nemá žádnou povinnost a má všechny pobídky logovat.
Držte vlastní limity rychlosti pod tím, co cíl snese, a sbírejte jen pole, která úkol potřebuje, aby chyba zůstala malá. Rychlejší rotace kvůli útěku z bloku obvykle zvyšuje frekvenci požadavků, která ho způsobila.
Zapište zvolený výstup, jeho okno rotace a jeho vlastníka do konfigurace úlohy před prvním spuštěním. Když blok přijde, tahle poznámka vám řekne, zda změnit výstup, nebo změnit chování.