Authentifizierte Proxies in Anti-Detect-Browsern: Unterstützungsübersicht 2026

Chromium hat nie Anmeldedaten bei SOCKS5 akzeptiert, und ein Launcher, der nur --proxy-server übergibt, hat niemanden, der die Authentifizierungsaufforderung beantwortet. Hier ist, welches Framework user:pass akzeptiert, welches einen Helfer benötigt und welches eine Sackgasse ist.

Ein authentifizierter Proxy in einem Anti-Detect-Browser schlägt auf eine von drei Arten fehl, und die Symptome ändern sich nie: ein Chrome-Anmelde-Popup, das sich nicht schließen lässt, ein 407 bei jeder Anfrage oder eine Seite, die perfekt von Ihrer eigenen IP lädt. Der Proxy ist selten schuld. Chromium hat nie einen Benutzernamen und ein Passwort bei SOCKS5 akzeptiert, und ein Launcher, der nur --proxy-server an die Binärdatei weiterleitet, hat niemanden, der die Authentifizierungsaufforderung des Browsers beantwortet. Dies ist die 2026-Übersicht: welche Frameworks user:pass nativ akzeptieren, welche einen Helfer benötigen und wo der Weg endet.

Eine Ursache, drei Symptome

Chromiums Proxy-Stack hat einen Slot für eine SOCKS5-Serveradresse und keinen Slot für Anmeldedaten. Die Anfrage sitzt seit Jahren als Problem 40323993 im Chromium-Tracker, die SwitchyOmega-Erweiterung hat die Bestätigung des Chrome-Teams in ihrem eigenen Problem #1455 protokolliert, und ChromeDriver-Benutzer, die dasselbe verfolgen, werden auf crbug 40829748 verwiesen. Firefox ist die Ausnahme — es authentifiziert SOCKS5 nativ — weshalb Camoufox in einer anderen Spalte als alles andere hier landet. Wenn die Protokolltrennung neu für Sie ist, beginnen Sie mit SOCKS5 vs HTTP Proxies.

HTTP- und HTTPS-Proxies sind eine andere Geschichte: Die Anmeldedaten funktionieren, nur nie von der Kommandozeile aus. Chrome beantwortet einen 407, indem es eine Authentifizierungsaufforderung erhebt, und etwas muss antworten — in einem normalen Browser das Popup, das Sie sehen. In der Automatisierung muss es eine geladene Erweiterung, ein CDP-Handler, der auf Fetch.authRequired abonniert ist, oder das Framework selbst sein. Alles, was nur ein Startflag übergibt, lässt die Herausforderung unbeantwortet, und das ist die hängende Seite, die Leute immer wieder screenshotten. Der Teil des Anmeldeformat wird in 407 Proxy-Authentifizierung erforderlich beheben behandelt.

Unterstützung für authentifizierte Proxies in Anti-Detect-Browsern: die 2026-Übersicht

Drei Kategorien: Anmeldedaten, die von der API akzeptiert werden, Anmeldedaten, die nur über einen selbstgebauten Helfer akzeptiert werden, und eine Begrenzung der Engine, die keine Konfiguration ändern kann.

Funktioniert nativ mit user:pass

Benötigt eine Erweiterung, ein Relay oder einen CDP-Handler

Funktioniert nie: SOCKS5 mit Anmeldedaten

Dreispaltiger Vergleich der Unterstützung für authentifizierte Proxies: Frameworks mit nativer Benutzer- und Passwortunterstützung, Frameworks, die eine Erweiterung oder einen CDP-Handler benötigen, und SOCKS5 mit Anmeldedaten, das in Chromium nie funktioniert
Gleicher Chromium-Kern, drei Ergebnisse. Die erste Spalte ist eine Konfigurationsänderung, die zweite ist ein Build-Schritt, und die dritte ist eine Engine-Beschränkung, die Sie umgehen.

Workaround 1: Verwenden Sie den HTTP-Endpunkt des Anbieters

Dies behebt die meisten der oben verlinkten Threads und kostet nichts. Wenn Ihr Anbieter denselben Pool über HTTP und SOCKS5 bereitstellt, richten Sie den Browser auf das HTTP-Gateway und Anmeldedaten werden zu einem unterstützten Parameter statt zu einem nicht unterstützten. Proxy-seitiges DNS ist kostenlos: Chromium überlässt die Namensauflösung immer einem HTTP-Proxy. Jeder QuantumProxies-Plan bietet HTTP und SOCKS5 vom selben Gateway mit denselben Anmeldedaten, sodass das Umschalten eine Schemaänderung und keine neue Bestellung ist.

# Playwright, Patchright and Camoufox all take the same proxy object.
# Swap the import line; the proxy config does not change.
from playwright.sync_api import sync_playwright   # or: from patchright.sync_api import ...

PROXY = {
    "server": "http://gate.quantumproxies.io:PORT",  # HTTP endpoint, not socks5://
    "username": "USER",
    "password": "PASS",
}

with sync_playwright() as p:
    browser = p.chromium.launch(proxy=PROXY, headless=False)
    page = browser.new_page()
    page.goto("https://httpbin.org/ip")
    print(page.inner_text("pre"))
    browser.close()

# Camoufox: same dict, plus geoip so timezone/locale/WebRTC follow the exit IP.
# pip install -U "camoufox[geoip]"
# with Camoufox(geoip=True, proxy=PROXY) as browser: ...

Workaround 2: IP-Whitelisting

Die sauberste Antwort ist, den Authentifizierungsschritt zu löschen. Mit IP-Whitelisting registrieren Sie die öffentliche IP der Maschine, die den Browser ausführt, und das Gateway autorisiert sie durch die Quelladresse — kein Benutzername, kein Passwort, kein Popup, nichts für das Framework zu beantworten. Jedes Problem auf dieser Seite verschwindet sofort, SOCKS5 eingeschlossen, weil es keine Anmeldedaten mehr gibt, die übergeben werden müssen. Es ist richtig für einen festen Scraping-Server oder einen Container hinter einer statischen Ausgangs-IP und falsch für Laptops in wechselnden Netzwerken. Whitelisting steht neben user:pass auf jedem QuantumProxies-Plan, sodass die Produktion auf die Whitelist gesetzt werden kann, während die Entwicklung Anmeldedaten behält.

Setzen Sie Ihre IP auf die Whitelist auf einem 90M+ Residential-Pool

Workaround 3: Eine generierte Chrome-Auth-Erweiterung oder ein CDP-Handler

Wenn Sie Anmeldedaten auf einem Chromium-Framework behalten müssen, das sie nicht akzeptiert, muss etwas im Browser die Herausforderung beantworten. Option eins ist eine Erweiterung, die den Proxy setzt und auf onAuthRequired antwortet — genau das, was SeleniumBase hinter seinem --proxy-Flag aufbaut. Unter Manifest V3 sind die beiden Berechtigungen, die es funktionieren lassen, webRequest und webRequestAuthProvider; fehlt die zweite, wird der Listener nie ausgelöst.

// manifest.json (MV3) — webRequestAuthProvider is the one people forget
{
  "name": "proxy-auth",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": ["proxy", "webRequest", "webRequestAuthProvider"],
  "host_permissions": ["<all_urls>"],
  "background": { "service_worker": "background.js" }
}

// background.js
const HOST = "gate.quantumproxies.io";
const PORT = 8080;              // your gateway port
const USER = "USER", PASS = "PASS";

chrome.proxy.settings.set({
  value: {
    mode: "fixed_servers",
    rules: { singleProxy: { scheme: "http", host: HOST, port: PORT } },
  },
  scope: "regular",
});

chrome.webRequest.onAuthRequired.addListener(
  () => ({ authCredentials: { username: USER, password: PASS } }),
  { urls: ["<all_urls>"] },
  ["blocking"],
);

Zwei Vorbehalte. Erweiterungen werden nicht in jeder Headless-Konfiguration geladen, daher erzwingt dies oft Headful plus eine virtuelle Anzeige auf Servern. Und die Erweiterungsoberfläche bewegt sich: SeleniumBase-Benutzer verloren die Proxy-Authentifizierung durch eine Chrome 137-Erweiterungsänderung, also fixieren Sie Ihre Browser- und Framework-Versionen.

Option zwei überspringt die Erweiterung und beantwortet die Herausforderung über CDP. Dies ist die akzeptierte Lösung in der nodriver-Diskussion, und die Reihenfolge bringt alle durcheinander: Registrieren Sie die Handler, bevor Sie die Fetch-Domäne aktivieren, und warten Sie nie innerhalb eines Handlers, sonst blockieren Sie die Ereignisschleife.

import asyncio, nodriver as uc

PROXY = "http://gate.quantumproxies.io:PORT"   # no credentials in the flag
USER, PASS = "USER", "PASS"

async def main():
    browser = await uc.start(browser_args=[f"--proxy-server={PROXY}"])
    tab = await browser.get("draft:,")

    async def on_auth(event: uc.cdp.fetch.AuthRequired):
        # fire-and-forget: awaiting here blocks every other request
        asyncio.create_task(tab.send(uc.cdp.fetch.continue_with_auth(
            request_id=event.request_id,
            auth_challenge_response=uc.cdp.fetch.AuthChallengeResponse(
                response="ProvideCredentials", username=USER, password=PASS),
        )))

    async def on_paused(event: uc.cdp.fetch.RequestPaused):
        asyncio.create_task(tab.send(uc.cdp.fetch.continue_request(request_id=event.request_id)))

    tab.add_handler(uc.cdp.fetch.RequestPaused, on_paused)
    tab.add_handler(uc.cdp.fetch.AuthRequired, on_auth)
    # enable AFTER the handlers are registered, or no event ever arrives
    await tab.send(uc.cdp.fetch.enable(handle_auth_requests=True))

    page = await browser.get("https://httpbin.org/ip")
    print(await page.get_content())

uc.loop().run_until_complete(main())
Checkliste, die die einfachen Lösungen für die Proxy-Authentifizierung, wie die Verwendung des HTTP-Endpunkts und das IP-Whitelisting, mit den schwierigeren wie der Erstellung einer Auth-Erweiterung oder dem Schreiben eines CDP-Handlers vergleicht
Reihenfolge der Operationen: Ändern Sie den Endpunkt, dann setzen Sie die IP auf die Whitelist. Bauen Sie nur eine Erweiterung, ein Relay oder einen CDP-Hook, wenn beides nicht möglich ist.

Workaround 4: Ein lokales Relay

Ein Relay ist ein kleiner Proxy, den Sie auf localhost ausführen, der mit Anmeldedaten mit dem Upstream-Gateway kommuniziert und Ihrem Framework einen nicht authentifizierten Listener bietet. Der Browser verbindet sich mit 127.0.0.1, sieht keine Authentifizierungsaufforderung, und das Anmeldeproblem wird auf einen Prozess verschoben, der damit keine Probleme hat. Dies ist der einzige Weg, um SOCKS5 mit Anmeldedaten von Chromium überhaupt zu verwenden, und was Camoufox-Benutzer berichten, dass sie tun. Open-Source-Relays auf GitHub nehmen die Upstream-Anmeldedaten als Umgebungsvariablen. Halten Sie den Listener an die Loopback-Schnittstelle gebunden — ein offener Proxy ohne Authentifizierung auf einer öffentlichen Schnittstelle ist jemandes anderer kostenloses Bandbreite. Aufbau versus Installation wird in Proxy-Relay-Tools für SOCKS5-Authentifizierung behandelt.

# SeleniumBase UC Mode: one flag, extension generated for you
pytest test_proxy.py --uc --proxy=USER:PASS@gate.quantumproxies.io:PORT

# Relay route: credentials upstream, no auth on the local listener
SOCKS5_SERVER=gate.quantumproxies.io:PORT \
SOCKS5_USER=USER SOCKS5_PASSWORD=PASS \
  ./socks-relay.py 127.0.0.1:1080

# now every framework can use it, credentials and limitations gone
# playwright: proxy={"server": "socks5://127.0.0.1:1080"}
# nodriver:   browser_args=["--proxy-server=socks5://127.0.0.1:1080"]

Welchen Weg wählen

Häufig gestellte Fragen

Warum unterstützt Chrome SOCKS5 nicht mit einem Benutzernamen und Passwort?

Weil Chromiums Netzwerk-Stack die SOCKS5-Benutzername-und-Passwort-Authentifizierungsmethode nie implementiert hat. Die Anfrage steht seit Jahren als Problem 40323993 im Chromium-Tracker, und das Chrome-Team hat bestätigt, dass es in verwandten Erweiterungsthreads nicht unterstützt wird. Es ist kein Flag, das Ihnen fehlt: keine Kombination von Kommandozeilenargumenten übergibt SOCKS5-Anmeldedaten an Chromium, und jedes auf Chromium basierende Framework erbt das.

Welches Anti-Detect-Framework hat die beste Proxy-Unterstützung?

Für authentifizierte HTTP-Proxies ist die Playwright-Familie — Playwright, Patchright, browser-use und Camoufox — am wenigsten schmerzhaft, weil Anmeldedaten ein erstklassiger Parameter sind. Camoufox geht am weitesten, indem es Zeitzone, Gebietsschema und WebRTC mit der Exit-IP über seine GeoIP-Option abgleicht. Die CDP-ersten Tools, nodriver und zendriver, sind stark im Stealth, erwarten aber, dass Sie die Authentifizierung selbst lösen.

Bricht ein Auth-Proxy die Cloudflare-Umgehung im UC-Modus?

Es kann, und die Berichte beschuldigen normalerweise zwei separate Dinge als eines. Die generierte Auth-Erweiterung ändert die Oberfläche des Browsers, und der Proxy ändert die Exit-IP — und eine IP mit schlechtem Ruf löst harte Herausforderungen aus, die kein Framework bestehen kann. Testen Sie dasselbe Ziel zweimal, einmal mit dem Proxy und einmal mit einer auf die Whitelist gesetzten IP, bevor Sie das Framework beschuldigen.

Ist IP-Whitelisting sicherer als user:pass?

Betrieblich ist es einfacher und beseitigt eine ganze Klasse von Fehlern, da nichts eine Herausforderung beantworten muss und Anmeldedaten nie in einem Startflag oder einer Prozessliste stehen. Der Kompromiss ist Flexibilität: es bindet den Pool an eine feste Quelladresse, sodass Laptops in wechselnden Netzwerken und automatisch skalierende Arbeiter immer noch Anmeldedaten benötigen. Die meisten Teams setzen die Produktion auf die Whitelist und behalten user:pass für die Entwicklung.

Die Übersicht ist kurz genug, um sie auswendig zu lernen. Playwright und seine Forks akzeptieren Anmeldedaten; nodriver und zendriver lassen Sie die Antwort bauen; SeleniumBase baut sie für Sie und bricht gelegentlich; SOCKS5 mit Anmeldedaten ist eine Sackgasse in Chromium. Der Rest ist die Wahl zwischen HTTP-Endpunkt, auf die Whitelist gesetzter IP, Erweiterung und Relay — in dieser Reihenfolge, weil das auch am wenigsten bis am meisten Wartung ist.

Holen Sie sich HTTP, SOCKS5 und IP-Whitelisting in einem Plan