
Hochleistungsfähiger HTTP/HTTPS/SOCKS5-MITM-Proxy in Rust mit TLS-Interception, regelbasiertem Request-Rewriting, Traffic-Capture, Breakpoints, Script-Sandbox und Request-Replay über Web-UI.
Hochleistungs-HTTP/HTTPS/SOCKS5-Proxy-Server
Language: 中文 | English
Bifrost ist ein in Rust geschriebener, hochperformanter und KI-freundlicher Proxy-Server, inspiriert von Whistle. Er bietet Request-Interception, Regeländerungen, TLS-Interception, Skript-Erweiterungen, Traffic-Anzeige, Request-Replay sowie eine Web-UI-Verwaltung.
CLI installieren; unter macOS und Windows wird gleichzeitig automatisch die Desktop-App installiert:
Methode 1: Installation per Skript
macOS / Linux / Git Bash:
curl -fsSL https://raw.githubusercontent.com/bifrost-proxy/bifrost/main/install-binary.sh | bash
Windows PowerShell:
irm https://raw.githubusercontent.com/bifrost-proxy/bifrost/main/install-binary.ps1 | iex
Das Skript installiert immer die CLI und unter macOS / Windows automatisch die Desktop-App derselben Version; Plattformen wie Linux, für die derzeit kein Desktop-Installationspaket bereitgestellt wird, bleiben CLI-only. Wenn nur die CLI benötigt wird, kann die Desktop-Version mit --no-desktop (Bash / Git Bash) oder BIFROST_INSTALL_AUTO_DESKTOP=0 (Bash / PowerShell) übersprungen werden. Anschließend installiert das Skript das CA-Zertifikat und vertraut ihm, installiert alle Bifrost AI skills und startet Bifrost als Hintergrunddienst; nach Abschluss der Installation kann direkt auf die Verwaltungsoberfläche zugegriffen werden.
Die Bash- und PowerShell-Installationsskripte erkennen automatisch die direkte GitHub-Verbindung sowie integrierte Mirror-Quellen und bevorzugen die schnellste verfügbare Release-Download-Adresse; in eingeschränkten Netzwerken kann über BIFROST_GITHUB_MIRROR ein bevorzugter Mirror angegeben werden. Das Windows-PowerShell-Skript fügt das Installationsverzeichnis zur aktuellen Sitzung und zum Windows-Benutzer-Path hinzu; das Git-Bash-Skript schreibt unter Windows ebenfalls in den Windows-Benutzer-Path, sodass in neu geöffneten PowerShell/CMD-Fenstern bifrost direkt ausgeführt werden kann.
Installation einer bestimmten Version
macOS / Linux / Git Bash:
curl -fsSL https://raw.githubusercontent.com/bifrost-proxy/bifrost/main/install-binary.sh | bash -s -- --version v0.0.96
Windows PowerShell:
$installer = irm https://raw.githubusercontent.com/bifrost-proxy/bifrost/main/install-binary.ps1
& ([scriptblock]::Create($installer)) -Version v0.0.96
Methode 2: Installation per npm
npm i -g @bifrost-proxy/bifrost
Weitere Installationsmethoden: docs/getting-started.md
Proxy prüfen:
bifrost status
Nach dem Start auf die Verwaltungsoberfläche zugreifen:
http://127.0.0.1:9900/_bifrost/
Bevor ein Smartphone, Tablet oder ein anderer Computer für die Proxy-Konfiguration eingerichtet wird, sollte vorzugsweise in der Web UI unter Settings -> Certificate -> Availability Check geöffnet werden. Nach Auswahl der LAN-IP des aktuellen Computers wird ein QR-Code oder Link generiert; durch Aufruf mit dem Zielgerät werden automatisch drei Dinge geprüft:
Nach erfolgreicher Prüfung zeigt die Seite die per Klick kopierbare Proxy-Adresse <LAN-IP>:<Port> an; außerdem kann der Proxy-QR-Code geöffnet werden, um die Konfiguration fortzusetzen. Schlägt die Prüfung fehl, zeigt die Seite je nach iOS/Android die nächsten Schritte: CA installieren, unter iOS Einstellungen > Allgemein > Info > Zertifikatsvertrauenseinstellungen aufrufen und vollständiges Vertrauen aktivieren, oder im Verwaltungsbereich den Proxy-Zugriff für dieses Gerät genehmigen.
bifrost install-skill -y
Der ASR Daily Agent unterstützt das Aufteilen eines Tagesberichts in mehrere unabhängige Forschungsfragen, die von ChatGPT Web jeweils in separaten Sitzungen erstellt werden. Für das Forschungs-Fan-out kann optional chatgpt_project_url konfiguriert werden; nach der Konfiguration werden neue Sitzungen in das angegebene ChatGPT Project archiviert, während weiterhin zwingend der Chat-Modus und das Pro-Modell verwendet werden:
{
"max_questions": 8,
"chatgpt_interface_mode": "chat",
"chatgpt_model": "pro",
"chatgpt_project_url": "https://chatgpt.com/g/g-p-<project-id>/project"
}
Die vollständige Agent-Kombination, das Forschungs-Manifest und die Fehlergrenzen sind in design/asr-daily-agent-pipeline.md beschrieben.

breakpoint://request / breakpoint://response entsprechen, in der Web UI; nach Bearbeitung von Headers/Body kann fortgesetzt werden; Details siehe docs/breakpoint.md/_bifrost/api/system/memory zeigen die Belegung durch body/ws-Datei-Writer sowie Warnzustände bei Annäherung an das Handle-Limit anreqScript, resScript, decodeNach dem Klonen des Repositorys zunächst einmalig die Git-Hooks initialisieren:
bash scripts/setup-git-hooks.sh
# oder
make setup
Dadurch wird für das aktuelle Repository lokal core.hooksPath=.githooks gesetzt; selbst wenn auf der Maschine ein globaler hooksPath konfiguriert ist, wird bei nachfolgenden git commit-Aufrufen vorrangig das repository-interne .githooks/pre-commit ausgeführt. Der Standard-pre-commit prüft die Formatierung des Arbeitsbereichs, die Tauri-Formatierung des Desktop-Clients sowie cargo clippy --workspace --all-targets --all-features -- -D warnings.
Der Desktop-Client eignet sich für alltägliches Packet-Capturing, die Anzeige von Traffic, die Bearbeitung von Regeln und das Aktualisieren von Bifrost, ohne dass man sich zuvor CLI-Befehle merken muss:
Assets auswählen..dmg herunterladen: für Apple Silicon aarch64-apple-darwin, für Intel Mac x86_64-apple-darwin..msi herunterladen: für gewöhnliche x64-Computer x86_64-pc-windows-msvc, für ARM-Geräte aarch64-pc-windows-msvc..dmg Bifrost.app in den Ordner Applications ziehen; unter Windows die .msi doppelklicken und dem Assistenten folgen.Wenn auch im Desktop-Client die Kommandozeilenfunktionen installiert werden sollen, im Desktop-Client Settings öffnen und unter Desktop Proxy Core auf Install CLI & Skills klicken. Eine ausführliche Anleitung siehe docs/desktop.md.
Häufige Befehle:
# Status anzeigen
bifrost status
# Dienst stoppen
bifrost stop
# Remote-Zugriff und Authentifizierung der Verwaltungsoberfläche (Web UI)
bifrost admin remote status
bifrost admin remote enable
bifrost admin passwd
bifrost admin revoke-all
# Traffic anzeigen
bifrost traffic list
bifrost traffic search "keyword" --method POST --host api.openai.com --path /v1/responses
bifrost search "keyword" --req-header
bifrost search "keyword" --res-body
# Regel hinzufügen
bifrost rule add local-dev --content "example.com host://127.0.0.1:3000"
# Globale Standardregel bearbeiten; Hauptport und alle temporären Ports werden automatisch wirksam
bifrost rule update Default --content "internal.example.test dns://10.0.0.53"
Ergänzende Hinweise zum Suchbefehl:
bifrost search ist gleichbedeutend mit bifrost traffic searchtraffic list und die Suche sind standardmäßig nach Request-Zeit absteigend sortiert, bei gleichem Zeitstempel nach laufender Nummer absteigend; die neueste Übereinstimmung hat Vorrang, --limit ist standardmäßig 50, das --max-results der Suche überschreibt --limit explizit--method, --host, --path, --status, --protocol; path ist ein literaler Teilstring, % und _ gelten nicht als Wildcards--req-json/--res-json unterstützen die Wurzel $, Punktpfade, Array-Indizes und [*]; ungültige Pfade, Zeit-, Header- und andere Wertausdrücke sowie include-Namen führen direkt zu einem Fehler--latest 5m bedeutet die letzten 5 Minuten, nicht nur einen einzelnen Eintrag; die strukturierte Ausgabe ohne Schlüsselwörter kann direkt mit Filterbedingungen verwendet werden und geht nicht in die TUItraffic get --ids ID1,ID2 verwendet standardmäßig NDJSON; explizites --format json-pretty liefert formatiertes {"results":[...]}--url, --req-header, --res-header, --req-body, --res-body--headers durchsucht gleichzeitig Request- und Response-Header, --body durchsucht gleichzeitig Request- und Response-BodyRegelbeispiele:
example.com host://127.0.0.1:3000
api.example.com reqHeaders://x-debug=1&x-env=ppe&x-use-ppe=1
chatgpt.com http3://
internal-api.example.test https://10.37.102.138:8080 upstreamUnsafeSsl://true
Bei den einzeiligen Inline-Werten von reqHeaders:// und resHeaders:// können mehrere Header durch & getrennt werden; wenn der Header-Wert selbst ein literales & enthält, bitte die Schreibweise als JSON-Objekt oder als Values-Block mit einem Header pro Zeile verwenden.
Default ist die von Bifrost automatisch erstellte globale Standardregel, die immer aktiviert und in der Liste ganz oben steht. Sie kann nicht gelöscht, deaktiviert, umbenannt oder mit einem Remote synchronisiert werden, ihr Inhalt ist jedoch bearbeitbar; sie eignet sich für einheitliches DNS, allgemeine Header, TLS-Fallbacks und andere Konfigurationen, die von allen Ports gemeinsam genutzt werden müssen. Details siehe docs/rule.md.
docs/README.mddocs/overview.mddocs/getting-started.mddocs/cli.mddocs/desktop.mddocs/rule.mddocs/operation.mddocs/pattern.mddocs/rules/README.mddocs/scripts.mddocs/values.mddocs/replay.mddocs/breakpoint.mddocs/architecture.mddocs/agent-skill.md