← Alle Beiträge

Proxy Port: Targeting und Sessions im Benutzernamen

Der FourA Proxy Port liest Netzwerk, Land und Sticky Sessions aus dem Benutzernamen, und Tippfehler liefern einen 400 mit den gültigen Keys. Hier ist die gesamte Grammatik.

Was gibt es Neues

Ein einziger fehlender Buchstabe reicht völlig. Tippst du -contry-de in einen Proxy-Benutzernamen ein, fällt der Tippfehler kaum auf und sieht wie eine gültige Option aus.

Der FourA-Proxy-Port beantwortet das mit einem 400-Fehler, der alle bekannten Keys auflistet. Das ist ein kleines Detail eines Produkts, das am 15. September die Beta verlassen hat: eine Proxy-URL an unseren Exits für jeden Client, der Proxys unterstützt (ein Browser, ein Download-Tool oder dein bestehender Scraper), ganz ohne API-Aufruf. Du erstellst einen Proxy-User im Dashboard, fügst den String ein, und Tunnel sowie Traffic werden genau wie API-Requests über deinen Plan abgerechnet.

Hier ist die gesamte Syntax und der Grund für jede einzelne Regel.

So funktioniert es

Der Port läuft unter proxy.foura.ai:34004 und nutzt HTTP CONNECT mit Basic Authentication für Ziele auf den Ports 443 und 80. Zugangsdaten sind Proxy-User, bewusst getrennt von deinem API-Key: Ein Proxy-Handshake wird im Klartext übertragen, und ein Proxy-User kann ein neues Passwort erhalten, ohne dass du deine API-Integration anpassen musst.

Alles nach den Zugangsdaten ist eine Liste von -key-value-Paaren in beliebiger Reihenfolge:

# Shared network, a German address, one sticky session for this job
curl -x "http://USERNAME-country-de-session-job42:PASSWORD@proxy.foura.ai:34004" \
  https://example.com

# Premium network, an Android address in Germany, held 30 minutes
curl -x "http://USERNAME-network-premium-country-de-os-android-session-s1-lifetime-30:PASSWORD@proxy.foura.ai:34004" \
  https://example.com

Shared umfasst FourAs eigene Exits: der Standard und in deinem Tarif enthalten. Premium umfasst Privatadressen, bezogen aus dem Premium-Traffic deines Tarifs plus eventuell zugekauftem Volumen. Im Shared-Netzwerk erlaubt -fallback-premium einer Verbindung, auf einen Premium-Exit auszuweichen, wenn der Shared-Exit sie nicht verarbeiten kann. Dies ist standardmäßig deaktiviert und greift nur, solange Premium-Kontingent vorhanden ist. Eine standardmäßige Aktivierung würde bedeuten, dieses Kontingent ungefragt in deinem Namen zu verbrauchen.

Country kann mehrfach angegeben werden, daher definiert -country-de-country-fr einen Bereich aus zwei Ländern. Region, City, Netzwerk nach AS-Nummer, Device (windows, android, ios, mac) und lifetime (3 bis 1440 Minuten) sind exklusiv für Premium verfügbar. Wenn du im Shared-Netzwerk eine City anfragst, erhältst du einen 400-Fehler statt eines Best-Effort-Versuchs. Shared filtert nach Land und nicht feiner, da ein meist nicht erfüllbarer City-Filter schlechter ist als gar kein Filter.

-session-<name> (1 bis 32 Buchstaben, Ziffern oder Unterstriche) macht Verbindungen sticky: Jede Verbindung mit diesem Namen teilt sich eine Adresse. Bei Shared bleibt die Adresse in einem rollierenden Zehn-Minuten-Fenster aktiv, sie bleibt also bestehen, solange du sie nutzt. Bei Premium bleibt sie für die von dir festgelegte lifetime oder den Standard des Netzwerks aktiv. Lässt du die Session weg, nutzt jede Verbindung eine neue Adresse.

Zusätzlich gibt es gespeicherte Defaults. Targeting, das für einen Proxy-User im Dashboard hinterlegt ist, gilt für jede seiner Verbindungen. So lässt sich der String auf die reinen Zugangsdaten reduzieren. Der Username hat für seine eigene Verbindung weiterhin Vorrang, und any setzt einen gespeicherten Wert zurück: -city-any fragt bei einem Key, der München gespeichert hat, ganz Deutschland an. Clients, die Header zu einem CONNECT hinzufügen können (curl unterstützt dies mit --proxy-header), können dieselben Optionen wie X-Foura-Country, X-Foura-Session und die übrigen senden. Ein Header überschreibt dabei den Usernamen.

Impact

Die meisten Vorteile zeigen sich an Fragen, die du dir nicht mehr stellen musst.

Warum wurde ich abgewiesen? Jede Ablehnung nach Prüfung deiner Zugangsdaten enthält einen X-Foura-Error-Header mit einer einzeiligen Begründung. Ein 400-Fehler nennt die Option und die zulässigen Werte. Ein 429-Fehler zeigt, welches Limit deines Tarifs erreicht wurde: gleichzeitig offene Tunnel, Tunnel-Öffnungen pro Minute oder Standard-Traffic für den Abrechnungszeitraum.

Wessen Kontingent ist es? Das des Accounts. Tunnel und Öffnungen werden für den gesamten Account und nicht pro Proxy-User gezählt. Ein zweiter Satz Zugangsdaten verdoppelt also nicht das Kontingent. Bytes zählen zum Bandbreitenlimit deines Tarifs und Premium-Bytes zum Premium-Kontingent innerhalb dieser Gesamtsumme, sie werden nie aufgeschlagen. Bei einem auf Credits basierenden Tarif verfügt der Port über eigene inkludierte Gigabyte, die auf der Billing-Seite aufgeladen werden können. Wenn kein Tunnel geöffnet wird, wird nichts berechnet.

Wem gehören die Zugangsdaten? Sie können nun einer Organisation gehören, damit der Downloader eines Unternehmens weiterläuft, wenn eine Person geht. Mitglieder können sie nutzen und das Passwort einsehen; Admins und Owner können sie rotieren, deaktivieren oder ihr Targeting anpassen; nur der Owner kann sie übertragen.

Was hat sich getan? Stelle den Produkt-Schalter auf Overview, Metrics oder Activity auf Proxy um: Tunnel in denselben Ergebnisklassen wie deine API-Requests, wie viele gerade offen sind, Setup-Zeit und Traffic, aufgeschlüsselt nach Proxy-User, Ziel, Exit-Land oder Client-IP. Eine Session, die ihre Adresse bereits hat, verbindet sich meist in deutlich unter einer Sekunde.

Aber der Port ist eine Pipe, und das ist der Trade-off. Dein Client kommuniziert über den Tunnel mit der Seite. Browser-Profile, deine validate rules und die Behandlung interaktiver Seiten liegen also nicht auf diesem Pfad. Er misst auch Bytes: Eine Fehlerseite, die über einen offenen Tunnel übertragen wird, zählt als Byte wie jedes andere, während über die API ein nicht erfolgreicher Request nicht abgerechnet wird. Leite Bytes über den Port; sende Seiten, die blockieren, an die API.

Für Power-User

Sobald das Premium-Kontingent aufgebraucht ist, erhalten die drei Routen in dieses Netzwerk bewusst drei unterschiedliche Antworten. Eine Verbindung, die -network-premium explizit anfordert, wird mit einem 403 abgelehnt, der genau das angibt. Denn ein Caller, der stillschweigend von woanders bedient wird, würde weiter anfragen und später die Rechnung nach einem Premium-Posten durchsuchen, der nie auftaucht. Das Fallback greift schlicht nicht, und ein auf dem Proxy-User hinterlegter Premium-Standard fällt auf das Shared-Netzwerk zurück, sodass der Tunnel dennoch geöffnet wird. Beide haben sich bei dieser Verbindung nicht aktiv für Ausgaben entschieden.

Drei Kombinationen werden direkt abgelehnt statt nur teilweise ausgeführt: feineres Targeting im Shared-Netzwerk, -fallback-premium zusammen mit -network-premium und feineres Targeting bei aktivertem Fallback. Der Port versteht ausschließlich CONNECT. Ein Client, der einen normalen http://-Request weiterleitet statt ihn zu tunneln, erhält daher einen 405 (curl tunnelt ihn mit --proxytunnel). Und ein Browser, der über den Port gesteuert wird, sollte immer einen Session-Namen nutzen, da ein einzelner Seitenaufruf Dutzende von Verbindungen öffnet.

Mehrere Worker mit jeweils eigener Adresse? Gib jedem einen eigenen Session-Namen:

import requests

TEMPLATE = "http://USERNAME-country-de-session-{name}:PASSWORD@proxy.foura.ai:34004"

def worker_session(name):
    proxy = TEMPLATE.format(name=name)
    s = requests.Session()
    s.proxies = {"http": proxy, "https": proxy}
    return s

workers = [worker_session(f"w{i}") for i in range(4)]
print(workers[0].get("https://example.com").status_code)

Das Dashboard macht dasselbe im großen Stil: Setze Sticky, wähle die Anzahl, und der Tab Connection string listet eine Zeile pro Adresse auf, als URL oder als host:port:user:pass für Proxy-Manager. Eine Ablehnung ist unklar? Füge -sv zum curl-Aufruf hinzu und leite an 2>&1 | grep -i x-foura-error weiter. Jede Option findest du in der proxy port reference und die Dashboard-Seite unter Proxy Users.

Was kommt als Nächstes?

Der erste Client, den wir auf Basis von Proxy-Benutzern gebaut haben, ist unser eigener. Die FourA Chrome extension leitet deinen Browser über einen davon: Wähle Netzwerk und Land, lege den Schalter um, und eine Statuszeile zeigt die Adresse, die Websites sehen. Es ist eine Beta, nicht im Chrome Web Store, installiert über Tools im Dashboard im Entwicklermodus. Weiter voraus steht organization billing auf der öffentlichen Roadmap. Das ist hier wichtig, weil der Proxy-Benutzer einer Organisation heute über den Eigentümer dieser Organisation abgerechnet wird.

Eine Proxy-URL ist der älteste Integrationsvertrag überhaupt, und jedes deiner Tools spricht ihn bereits. Der entscheidende Teil war nie der Tunnel. Es geht darum, was der String davor bedeuten darf und was passiert, wenn du ihn falsch setzt.