Die Verbindung zu einem Residential Proxy ist eine Fünf-Minuten-Aufgabe, die regelmäßig einen ganzen Nachmittag verschlingt, meist weil die Dokumentation eines Anbieters Konventionen eines anderen voraussetzt. Es gibt nur vier bewegliche Teile: einen Host, einen Port, einen Benutzernamen und ein Passwort. Was sich zwischen Anbietern unterscheidet, ist, wie viel Bedeutung in den Benutzernamen gepackt wird, und bei einem Gateway wie diesem steckt dort nahezu alles.
Hier ist das Format, was jeder Teil bewirkt, und wie man die Fehler liest, wenn etwas nicht stimmt.
Die vier Teile
| Teil | Wert |
|---|---|
| Host | p.shifter.io |
| Port | 443 |
| Benutzername | customer-USERNAME plus optionale Targeting-Flags |
| Passwort | aus dem Panel |
Host und Port ändern sich nie. Nicht für ein anderes Land, nicht für eine Sticky Session, nicht für SOCKS5 statt HTTP. Jede Anfrage geht an denselben Endpunkt, und was Sie wollen, wird im Benutzernamen ausgedrückt. Das ist der wichtigste Punkt überhaupt, denn er unterscheidet sich am stärksten von älteren portbasierten Produkten, bei denen jede Konfiguration eine andere Adresse bedeutete.
Sowohl HTTP(S) als auch SOCKS5 sprechen mit demselben Host und Port. Ihre Zugangsdaten finden Sie im Panel unter Residential Proxies.
Die einfachste mögliche Anfrage
Beginnen Sie hier und bestätigen Sie, dass es funktioniert, bevor Sie etwas hinzufügen:
curl -x customer-USERNAME:PASSWORD@p.shifter.io:443 https://ipinfo.io/json
Das liefert JSON zurück, das die Ihnen zugewiesene Exit-Adresse beschreibt. Führen Sie es zweimal aus, und Sie sollten zwei unterschiedliche Adressen sehen, da Rotation die Standardeinstellung ist. Wenn das funktioniert, sind Ihre Zugangsdaten korrekt und alles Weitere ist Konfiguration.
Targeting zum Benutzernamen hinzufügen
Flags werden dem Benutzernamen mit Bindestrichen angehängt. Die Reihenfolge spielt keine Rolle, Werte sind kleingeschrieben, und mehrteilige Werte verwenden Unterstriche.
customer-USERNAME # Rotation, kein Geo
customer-USERNAME-country-de # Deutscher Exit
customer-USERNAME-country-us-city-new_york # Stadtebene
customer-USERNAME-country-us-asn-7922 # Bestimmtes Netzwerk
customer-USERNAME-sid-abc123 # Sticky Session
customer-USERNAME-sid-abc123-ttl-600 # Sticky für 10 Minuten
customer-USERNAME-country-gb-sid-abc123-ttl-600 # Kombiniert
Ländercodes folgen ISO 3166-1 alpha-2, das Vereinigte Königreich ist also gb statt uk, was der häufigste Tippfehler ist. sid ist eine beliebige von Ihnen gewählte Zeichenfolge und hält für nachfolgende Anfragen dieselbe Exit-Adresse; ttl legt fest, wie lange in Sekunden, und ist nur zusammen mit sid gültig, standardmäßig 120. Die vollständige Referenz finden Sie in den Geo-Targeting-Dokumenten und den Sessions-Dokumenten, und der konzeptionelle Unterschied ist in Sticky versus Rotating erklärt.
Ein nützliches Extra: Standardmäßig greift das Gateway, wenn zu diesem Zeitpunkt nichts einem sehr engen Filter entspricht, auf einen breiteren Pool zurück, sodass Ihre Anfrage trotzdem abgeschlossen wird. Fügen Sie strict-true hinzu, wenn eine exakte Geo-Übereinstimmung wichtiger ist als das Gelingen der Anfrage, und Sie erhalten einen 502 statt eines stillen Fallbacks.
Die zwei Formate, denen Sie begegnen werden
Proxy-Zugangsdaten werden auf zwei Arten geschrieben, und die Umwandlung zwischen ihnen bringt Leute durcheinander.
URL-Form, verwendet von den meisten Bibliotheken und von curl:
http://customer-USERNAME-country-de:PASSWORD@p.shifter.io:443
Doppelpunkt-getrennte Form, verwendet von vielen Desktop-Tools und Browser-Erweiterungen, die die Teile meist in separaten Feldern wollen:
p.shifter.io:443:customer-USERNAME-country-de:PASSWORD
Sie transportieren identische Informationen. Wenn ein Tool vier Felder verlangt, verwenden Sie das zweite Layout; wenn es eine einzelne Zeichenfolge verlangt, verwenden Sie das erste.
Im Code
import requests
USER = "customer-USERNAME-country-de"
PROXY = f"http://{USER}:PASSWORD@p.shifter.io:443"
r = requests.get("https://ipinfo.io/json",
proxies={"http": PROXY, "https": PROXY}, timeout=20)
print(r.json())
Setzen Sie sowohl den http- als auch den https-Eintrag. Nur einen zu setzen, ist eine häufige Ursache dafür, dass es “für manche Anfragen funktioniert und für andere nicht”, da unverschlüsselte und sichere Anfragen unterschiedliche Wege nehmen.
Wenn Ihr Passwort Zeichen enthält, die in einer URL eine Bedeutung haben, wie @, :, / oder #, kodieren Sie es vor dem Einbetten prozentual, sonst wird die URL falsch geparst und Sie erhalten einen Authentifizierungsfehler mit völlig korrekten Zugangsdaten.
Für SOCKS5 behalten Sie denselben Host, Port und dieselben Zugangsdaten bei und ändern nur das Schema. Verwenden Sie die Variante, die Hostnamen am Proxy statt lokal auflöst, da die andere Ihr DNS preisgibt und regional falsche Ergebnisse liefern kann, was in DNS-Lecks verhindern behandelt wird.
Funktionierende Konfigurationen für andere Stacks finden Sie in den Integrationsdokumenten und, speziell für Python, in Residential Proxies mit Python verwenden.
Die Fehler lesen
Vier Antworten decken fast jedes Konfigurationsproblem ab, und jede weist auf etwas anderes hin.
407 Proxy Authentication Required bedeutet, dass das Gateway Ihre Zugangsdaten abgelehnt hat. Entweder sind sie falsch, oder ein Flag in Ihrem Benutzernamen ist fehlerhaft formatiert, denn ein nicht erkannter Wert macht den gesamten Benutzernamen unparsebar. Entfernen Sie jedes Flag und testen Sie zuerst den nackten Benutzernamen: Wenn das funktioniert, liegt der Fehler in den Flags, und Sie können sie einzeln wieder hinzufügen, um ihn zu finden. Der vollständige Diagnoseweg steht in 407 und Zugangsdatenfehler beheben.
502 Bad Gateway bedeutet, dass Ihre Zugangsdaten in Ordnung waren, aber in diesem Moment nichts Ihrem Filter entsprach. Erweitern Sie ihn, gehen Sie von Stadt- zu Länderebene zurück, oder entfernen Sie strict-true.
509 Bandwidth Limit Exceeded bedeutet, dass die Plan-Zuteilung erschöpft ist und Überschreitungen deaktiviert sind. Mit der Verbindung stimmt nichts nicht.
Verbindung verweigert oder ein Timeout bedeutet, dass Sie das Gateway nie erreicht haben. Prüfen Sie, ob Sie auf p.shifter.io:443 zeigen statt auf einen veralteten portbasierten Host, und testen Sie die reine Konnektivität mit nc -vz p.shifter.io 443, bevor Sie ein Proxy-Problem annehmen.
Überprüfen, ob es wirklich funktioniert
Zwei Prüfungen sind es wert, einmal am Anfang durchgeführt zu werden.
Rotation bestätigen: Senden Sie dieselbe Anfrage mehrmals ohne sid und bestätigen Sie, dass sich die Adresse ändert. Wenn nicht, liegt die übliche Ursache darin, dass Ihr HTTP-Client eine Verbindung wiederverwendet, statt dass der Proxy nicht rotiert, was in IP rotiert nicht behandelt wird.
Geografie bestätigen: Fordern Sie ein Land an und prüfen Sie, ob sich die zurückgegebene Adresse dort geolokalisieren lässt, und noch aussagekräftiger, ob sich ein geo-sensitives Ziel so verhält, als wären Sie dort. Die ausführlichere Methode steht in Geschwindigkeit, Erfolgsrate und Standortgenauigkeit testen.
Fazit
Ein Host, ein Port, alles andere im Benutzernamen. Bringen Sie zuerst eine nackte Anfrage zum Laufen, fügen Sie dann Targeting-Flags einzeln hinzu, und denken Sie daran, dass Ländercodes ISO-Codes sind, sodass das UK gb ist. Setzen Sie sowohl den HTTP- als auch den HTTPS-Proxy-Eintrag, kodieren Sie ein Passwort mit Sonderzeichen prozentual, und verwenden Sie die SOCKS5-Variante, die remote auflöst, wenn Sie diesen Weg gehen. Wenn etwas fehlschlägt, sagt Ihnen der Statuscode, wo Sie nachschauen müssen: 407 ist ein Zugangsdaten- oder Flag-Fehler, 502 ist ein Filter, hinter dem nichts steckt, 509 ist Bandbreite, und Verbindung verweigert bedeutet, dass Sie überhaupt nicht mit dem Gateway sprechen.
Dieses Gateway ist die Eingangstür zu Residential Proxies, bei denen Land, Stadt, ASN und Session alles Parameter derselben Verbindung sind, abgerechnet pro GB, sodass sich an dem, was Sie zahlen, durch Ihre Konfiguration nichts ändert. Wenn Sie neu in diesem Thema sind, beginnen Sie mit Residential Proxies für Einsteiger.