Proxy MITM HTTP/HTTPS/SOCKS5 ad alte prestazioni in Rust con intercettazione TLS, riscrittura delle richieste basata su regole, cattura del traffico, breakpoint, sandbox di script e replay delle richieste tramite Web UI.
Server proxy HTTP/HTTPS/SOCKS5 ad alte prestazioni
Language: 中文 | English
Bifrost è un server proxy ad alte prestazioni e AI-friendly scritto in Rust, ispirato a Whistle. Offre capacità di intercettazione delle richieste, modifica delle regole, intercettazione TLS, estensione tramite script, visualizzazione del traffico, replay delle richieste e gestione tramite Web UI.
Installa la CLI; su macOS e Windows viene installata automaticamente anche l'App desktop:
Metodo 1: installazione tramite script
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
Lo script installa sempre la CLI e su macOS / Windows installa automaticamente l'App desktop della stessa versione; le piattaforme come Linux per cui non è ancora disponibile un pacchetto desktop restano CLI-only. Se serve solo la CLI, è possibile usare --no-desktop (Bash / Git Bash) o BIFROST_INSTALL_AUTO_DESKTOP=0 (Bash / PowerShell) per saltare la parte desktop. Lo script installa inoltre e considera attendibile il certificato CA, installa tutte le Bifrost AI skills e avvia Bifrost come servizio in background; al termine dell'installazione è possibile accedere direttamente al pannello di amministrazione.
Gli script di installazione Bash e PowerShell rilevano automaticamente la connessione diretta a GitHub e i mirror integrati, usando con priorità l'indirizzo di download della release più veloce disponibile; in reti limitate è anche possibile specificare il mirror preferito tramite BIFROST_GITHUB_MIRROR. Lo script PowerShell di Windows aggiunge la directory di installazione alla sessione corrente e alla Path utente di Windows; lo script Git Bash su Windows scrive in modo sincronizzato anche nella Path utente di Windows, così una nuova finestra PowerShell/CMD può eseguire direttamente bifrost.
Installazione di una versione specifica
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
Metodo 2: installazione tramite npm
npm i -g @bifrost-proxy/bifrost
Ulteriori metodi di installazione: docs/getting-started.md
Verifica del proxy:
bifrost status
Dopo l'avvio, accedi al pannello di amministrazione:
http://127.0.0.1:9900/_bifrost/
Prima di configurare il proxy su un telefono, un tablet o un altro computer, apri preferibilmente Settings -> Certificate -> Availability Check nella Web UI. Seleziona l'IP della rete locale del computer corrente per generare un codice QR o un link; accedendovi dal dispositivo di destinazione verranno controllate automaticamente tre cose:
Se la verifica ha esito positivo, la pagina mostrerà l'indirizzo proxy <IP rete locale>:<porta> cliccabile e copiabile, e sarà anche possibile aprire il codice QR del proxy per proseguire la configurazione. Se la verifica fallisce, la pagina indicherà i passi successivi in base a iOS/Android: installare la CA, su iOS accedere a Impostazioni > Generali > Info > Impostazioni attendibilità certificati e attivare la piena attendibilità, oppure approvare dal pannello di amministrazione l'accesso proxy di quel dispositivo.
bifrost install-skill -y
ASR Daily Agent supporta la suddivisione di un report giornaliero in più domande di ricerca indipendenti, ciascuna delle quali viene avviata come sessione separata da ChatGPT Web. Per il fan-out della ricerca è possibile configurare opzionalmente chatgpt_project_url; una volta configurato, le nuove sessioni verranno archiviate nel ChatGPT Project specificato, continuando comunque a usare in modo forzato la modalità Chat e il modello Pro:
{
"max_questions": 8,
"chatgpt_interface_mode": "chat",
"chatgpt_model": "pro",
"chatgpt_project_url": "https://chatgpt.com/g/g-p-<project-id>/project"
}
Per la composizione completa degli Agent, il manifest di ricerca e i limiti di errore, vedi design/asr-daily-agent-pipeline.md.

breakpoint://request / breakpoint://response, con possibilità di modificare headers/body e proseguire; vedi docs/breakpoint.md/_bifrost/api/system/memory mostrano l'occupazione dei writer dei file body/ws e lo stato di avviso in prossimità del limite di handlereqScript, resScript, decodeDopo aver clonato il repository, esegui una volta l'inizializzazione dei Git hook:
bash scripts/setup-git-hooks.sh
# oppure
make setup
Questo scrive nel repository corrente la configurazione locale core.hooksPath=.githooks; anche se sulla macchina è configurato un hooksPath globale, i successivi git commit eseguiranno con priorità il .githooks/pre-commit interno al repository. Il pre-commit predefinito controlla il formato dell'area di lavoro, il formato Tauri del desktop e cargo clippy --workspace --all-targets --all-features -- -D warnings.
Il desktop è adatto all'acquisizione quotidiana dei pacchetti, alla visualizzazione del traffico, alla modifica delle regole e all'aggiornamento di Bifrost, senza dover prima memorizzare i comandi CLI:
Assets della versione più recente..dmg corrispondente al tuo chip: per Apple Silicon scegli aarch64-apple-darwin, per Intel Mac scegli x86_64-apple-darwin..msi: per un normale computer x64 scegli x86_64-pc-windows-msvc, per un dispositivo ARM scegli aarch64-pc-windows-msvc..dmg e trascina Bifrost.app in Applications; su Windows fai doppio clic sul .msi e segui la procedura guidata.Se desideri che anche il desktop installi le capacità da riga di comando, apri Settings nel desktop e fai clic su Install CLI & Skills in Desktop Proxy Core. Per il tutorial dettagliato vedi docs/desktop.md.
Comandi comuni:
# 查看状态
bifrost status
# 停止服务
bifrost stop
# 管理端远程访问与鉴权(Web UI)
bifrost admin remote status
bifrost admin remote enable
bifrost admin passwd
bifrost admin revoke-all
# 查看流量
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
# 添加规则
bifrost rule add local-dev --content "example.com host://127.0.0.1:3000"
# 编辑全局默认规则,主端口和所有临时端口都会自动生效
bifrost rule update Default --content "internal.example.test dns://10.0.0.53"
Note aggiuntive sui comandi di ricerca:
bifrost search è equivalente a bifrost traffic searchtraffic list e la ricerca sono per impostazione predefinita in ordine decrescente per ora della richiesta, e a parità di timestamp in ordine decrescente per numero; le corrispondenze più recenti hanno priorità, --limit è 50 per impostazione predefinita, e --max-results della ricerca sovrascrive esplicitamente --limit--method, --host, --path, --status, --protocol; path è una sottostringa letterale, % e _ non sono considerati wildcard--req-json/--res-json supportano la radice $, i percorsi puntati, gli indici di array e [*]; percorsi non validi, espressioni di valore come tempo, header e nomi di include generano direttamente un errore--latest 5m indica gli ultimi 5 minuti, non prende un solo elemento; l'output strutturato senza parole chiave può usare direttamente le condizioni di filtro, senza entrare nella TUItraffic get --ids ID1,ID2 usa NDJSON per impostazione predefinita; con --format json-pretty esplicito restituisce il formato {"results":[...]}--url, --req-header, --res-header, --req-body, --res-body--headers cerca contemporaneamente negli header di richiesta e risposta, --body cerca contemporaneamente nel body di richiesta e rispostaEsempi di regole:
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
I valori inline su singola riga di reqHeaders:// e resHeaders:// possono separare più Header con &; se il valore di un Header contiene letteralmente &, usa la scrittura con oggetto JSON o con blocco Values con un Header per riga.
Default è la regola globale predefinita creata automaticamente da Bifrost, sempre abilitata e in cima alla lista. Non può essere eliminata, disabilitata, rinominata o sincronizzata in remoto, ma il suo contenuto è modificabile; è adatta a contenere configurazioni condivise da tutte le porte, come DNS unificati, header comuni e fallback TLS. Vedi 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