Rotierende Proxy-IPs ohne VPN: Was der Ausgang sieht
Rotieren Sie Proxy-Ausgänge ohne VPN: Was ein HTTP-Proxy lesen kann, wie Sticky-Sessions kaputten Zustand verhindern und welchen Ausgang Sie in einer Richtlinie vertreten können.
Proxy-Rotation und ein VPN ändern Ihre öffentliche Adresse auf unterschiedlichen Ebenen, und dieser Unterschied entscheidet, was leckt. Ein VPN verschiebt jedes Paket in einen Tunnel, sodass die Quelladresse, die das Ziel sieht, der Tunnelendpunkt ist. Ein Proxy sitzt über der Netzwerkschicht: Nur die Anfragen, die Sie durch ihn senden, erscheinen vom Ausgang, während alles andere auf dem Rechner die echte Adresse behält. Wer diese Trennung richtig hinbekommt, macht aus Rotation eine Designentscheidung statt eines Häkchens.
Woher die öffentliche Adresse tatsächlich kommt
Die Adresse, die ein Ziel sieht, ist die, von der Ihr Verkehr zuletzt ausgegangen ist, und bei einem Heimanschluss ist das die Adresse des Anbieters auf Ihrem Router, nicht etwas, das der Rechner besitzt. Ein Neustart des Routers kann dieselbe Lease zurückgeben, und das Ändern seiner MAC-Adresse erzeugt manchmal eine neue, aber beides gibt Ihnen keine Länderauswahl. Ein VPN ersetzt die Quelladresse auf der IP-Ebene, sodass jedes Paket vom Rechner, einschließlich DNS und Hintergrundupdates, vom Tunnelendpunkt ausgeht. Ein Proxy arbeitet eine Ebene höher: Er nimmt eine Anfrage an, öffnet seine eigene Verbindung zum Ziel, und nur diese Anfrage erscheint vom Ausgang. Alles andere auf dem Rechner nutzt weiterhin die echte Adresse.
Diese Trennung erklärt die meisten Überraschungen. Eine Browsererweiterung, die auf einen Proxy zeigt, ändert nur, was der Browser sendet, und sonst nichts, sodass eine zweite Anwendung auf demselben Host immer noch die ursprüngliche Adresse verrät. Ein systemweites VPN hat den umgekehrten Fehlermodus: Es deckt Verkehr ab, den Sie lokal halten wollten, und schließt nur dann fail-closed, wenn der Client so konfiguriert ist. Die Wahl zwischen beiden ist wirklich die Wahl, welcher Verkehr sich bewegen muss.
Rotation gilt dann für die Ebene, die Sie gewählt haben. Bei einem Proxy bedeutet Rotation, dass die nächste Anfrage einen anderen Ausgang nutzt. Bei einem VPN bedeutet es, den Tunnel abzureißen und neu aufzubauen, was langsamer ist und sich als sichtbare Wiederverbindung zeigt.
Was ein HTTP-Proxy lesen kann und was nicht
Bei einfachem HTTP sieht der Proxy eine absolute URI in der Anfragezeile, jeden Header und den Body. Er kann alles davon protokollieren und jeden Teil davon umschreiben, weshalb ein kostenloser Proxy, der ein Skript in Antworten einschleust, genau das tut, was das Protokoll erlaubt. Die Authentifizierung verwendet Proxy-Authorization, und eine fehlende oder falsche Anmeldeinformation erzeugt 407 Proxy Authentication Required statt eines Verbindungsfehlers.
Bei HTTPS sendet der Client CONNECT host:port und der Proxy öffnet einen rohen Tunnel, danach sieht er verschlüsselte Bytes. Er erfährt den Hostnamen weiterhin aus der CONNECT-Zeile und meist aus dem SNI-Feld im TLS-Handshake, sodass Protokollierung auf Hostnamen-Ebene überlebt, auch wenn die Nutzlast es nicht tut. Das Lesen der Nutzlast erfordert das Beenden von TLS mit einem Zertifikat, dem der Client vertraut, was ein anderes Produkt mit einem anderen Risiko ist. Die HTTP-Semantikspezifikation definiert CONNECT als Tunnelanfrage, was das richtige Denkmodell dafür ist, was ein Ausgang sehen kann und was nicht.
curl -v -x http://proxy.example.net:8080 https://example.com 2>&1 | grep -E 'CONNECT|Proxy-'
Die ausführliche Ausgabe zeigt die CONNECT-Zeile vor jeglichem TLS-Verkehr, und das ist der Moment, in dem der Proxy Ihr Ziel erfährt. Ein Proxy, der mit 407 antwortet, hat den Tunnel nie geöffnet, sodass ein neuer Versuch mit anderen TLS-Einstellungen nicht hilft.
Die Rotationsgranularität entscheidet, was kaputtgeht
Bei jeder Anfrage zu rotieren ist die Einstellung, die am sichersten aussieht und am meisten kaputt macht. Cookies, CSRF-Token und serverseitige Sitzungen sind an eine Identität gebunden, und eine Identität, die zwischen Login und nächstem Aufruf wechselt, wirkt auf das Ziel wie Session-Hijacking. Viele Anbieter bieten eine Sticky-Session an, indem sie sie im Proxy-Benutzernamen kodieren, sodass der Ausgang für ein gewähltes Zeitfenster fest bleibt.
Wählen Sie die Granularität nach der Aufgabe, nicht nach dem Standard des Anbieters. Ein Crawler, der unabhängige Seiten abruft, kann pro Anfrage rotieren, während ein Checkout-Ablauf oder eine authentifizierte API einen Ausgang für den gesamten Ablauf halten muss. Die beiden Aufrufe unten zeigen einen Sticky-Benutzernamen und einen einfachen rotierenden Endpunkt, und das socks5h Schema löst Namen beim Proxy statt lokal auf.
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
Lokales DNS ist ein stilles Leck. Löst der Client den Namen vor dem Verbinden auf, erfährt der Resolver trotzdem jeden Host, den Sie besuchen, obwohl die HTTP-Anfrage woanders ausgeht. Die socks5h Form und die Auflösung auf der Proxy-Seite vermeiden das, und ihre Nutzung kostet nichts.
Was das Ziel außer der Adresse klassifiziert
Der Ruf einer Adresse ist ein Eingang unter mehreren. Ziele kombinieren die ASN und ihr Label Rechenzentrum oder Wohngebiet, den TLS-Fingerabdruck des Clients, HTTP/2-Einstellungen, Header-Reihenfolge, Anfragrate und die Form der Navigation. Ein Wohnungsausgang, der von einem Headless-Browser gesteuert wird, kann scheitern, wo ein Rechenzentrumsausgang mit einer echten Sitzung durchkommt.
Der Ausgangstyp bestimmt, was Sie ehrlich über den Verkehr behaupten können, und jeder bringt andere Kosten mit sich.
| 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 |
Ein geteilter Ausgang ist nicht neutral. Alles andere, was von dieser Adresse läuft, landet im selben Ruf-Eimer, und eine Adresse, die andere Mieter bereits verbrannt haben, scheitert, bevor Ihre erste Anfrage gelesen wird.
Wählen Sie einen Ausgang, den Sie in einer Richtlinie beschreiben können
Die nützliche Frage ist nicht, wie man die Adresse verbirgt, sondern wer für den Verkehr verantwortlich ist, der sie verlässt. Ihr eigener Cloud-Ausgang pro Auftrag, ein vertraglich gebundener Anbieter mit Datenverarbeitungsvertrag und veröffentlichter Aufbewahrung sowie ein selbst gehostetes VPN mit einer Identität pro Auftrag lassen sich alle in einem Satz beschreiben. Eine kostenlose Liste nicht, denn ihr Betreiber hat keine Verpflichtung Ihnen gegenüber und jeden Anreiz zu protokollieren.
Halten Sie Ihre eigenen Ratenlimits unter dem, was das Ziel toleriert, und sammeln Sie nur die Felder, die die Aufgabe braucht, damit ein Fehler klein bleibt. Schneller zu rotieren, um einer Sperre zu entkommen, erhöht meist die Anfragrate, die sie verursacht hat.
Schreiben Sie den gewählten Ausgang, sein Rotationsfenster und seinen Verantwortlichen vor dem ersten Lauf in die Job-Konfiguration. Wenn die Sperre kommt, sagt Ihnen diese Notiz, ob Sie den Ausgang ändern oder das Verhalten.