Prepísanie koncového bodu v systémoch Windows a Linux
Smerujte pevný koncový bod HTTPS autorizovaného lokálneho klienta cez mitmproxy s rozsahom zachytávania, dôveryhodnosti TLS, streamovania a vrátenia.
Použite vstavaný klient Základná adresa URL / Vlastný koncový bod / BYOK nastavenie vždy, keď je to možné. Pozri Sprievodcovia pripojením a GitHub Copilot. Lokálne zachytenie HTTPS je voliteľná náhrada pre klienta, ktorý nemôže zmeniť svoj koncový bod, nie je to požiadavka na používanie Model Gate.
Toto nie je univerzálne kompatibilné. Klient musí poslať protokol, cestu a model podporovaný vaším účtom Model Gate, akceptovať vašu lokálnu certifikačnú autoritu a umožniť vám nakonfigurovať kľúč API modelu Gate. Pripnutie certifikátu, súkromný ukladací priestor dôveryhodnosti, podpísané požiadavky, pevne zakódovaný model alebo vzdialený hostiteľ rozšírenia môžu zabrániť fungovaniu tejto metódy. Prepis adresy URL nekonvertuje dokončenia chatu OpenAI na antropické správy alebo odpovede, nepridáva možnosti modelu ani nenahrádza autentifikáciu GitHub.
Zachyťte iba aplikácie a prevádzku, ktorú vlastníte alebo máte oprávnenie kontrolovať. Získajte súhlas na riadených pracovných staniciach. mitmproxy vidí dešifrované výzvy, zdrojový kód a overovacie hlavičky; jeho súkromný kľúč lokálnej CA môže zosobňovať servery HTTPS klientom, ktorí mu dôverujú. Nezdieľajte súkromné kľúče CA, neexportujte nezreagované toky/súbory HAR, nevystavujte jeho používateľské rozhranie sieti ani nevypínajte overenie TLS.
Čo mení tento príklad
Príklad mapuje presne tento zdroj zdroja na pôvod modelu API zobrazený v dokumentácii tejto lokality:
https://api.deepseek.com/v1/chat/completions
-> local mitmproxy
-> https://api.model-gate.com/v1/chat/completions
Konfigurovať a vyhradený kľúč API modelu brány, nie kľúč DeepSeek, v poli poverení klienta. Vyberte povolený model brány modelu alebo alias spravovaný správcom z katalóg modelov. Použite pôvod API modelu zobrazený v tejto príručke s príslušným kľúčom API; nepoužívajte panel alebo hostiteľa rozhrania Partner API.
Pravidlo zámerne neupravuje metódu HTTP, cestu, dotaz, telo JSON, model, Authorizationalebo JSON stream hodnotu. Zmení cieľ a HTTP Host / HTTP/2 :authority; upstream TLS sa pripojí k novému cieľu. Verzia HTTP, veľkosť písmen/poradie hlavičky, hlavičky pripojenia a rámovanie sa môžu tiež líšiť. Nie je to bajt za bajtom zachovanie všetkých hlavičiek alebo sieťovej prevádzky.
Pripravte streamovanie iba na odozvu (oba systémy)
Uložte nasledujúce ako model-gate-response-stream.py vo vašom pracovnom adresári. Rovnaký súbor je súčasťou vydania v rámci aplikácie PHP na adrese deploy/client-tools/; beží v mitmproxy a pri použití natívneho balíka nepotrebuje žiadnu samostatnú inštaláciu Pythonu.
"""Keep map_remote requests buffered; stream responses without retaining bodies."""
from mitmproxy import ctx, exceptions, http
def configure(updated: set[str]) -> None:
if ctx.options.stream_large_bodies is not None:
raise exceptions.OptionsError(
"Unset stream_large_bodies: map_remote must run before request forwarding."
)
def requestheaders(flow: http.HTTPFlow) -> None:
flow.request.stream = False
def responseheaders(flow: http.HTTPFlow) -> None:
if flow.response is not None:
flow.response.stream = True
Vstavaný map_remote addon prepíše cieľ v žiadosť po prečítaní tela požiadavky. Ponechajte streamovanie žiadostí zakázané, kým nedôjde k prepísaniu. Nepoužívajte --set stream_large_bodies=1 s týmto receptom: môže poslať pôvodnú požiadavku pred prepísaním. Malý doplnok vyššie umožňuje iba streamovanie odpovedí vrátane SSE bez úpravy tela JSON alebo opakovaných požiadaviek.
Používajú sa nižšie uvedené príkazy --set stream_large_bodies bez znamienka rovnosti alebo hodnoty na resetovanie tohto voliteľného nastavenia Nonea explicitne zakázať uchovávanie streamovaného obsahu. Doplnok odmietne povolenie globálneho prahu streamovania neskôr. Odstráňte ďalšie doplnky na streamovanie/prepis požiadaviek z tejto vyhradenej relácie a pred umiestnením kľúča do klienta vyriešte všetky chyby pri spustení. Proxy nie je hranica poverení uzavretá zlyhaním: najprv overte cestu pomocou fiktívneho kľúča.
Windows: Príklad Visual Studio
Nainštalujte oficiálny pôvodný balík Windows z mitmproxy na stiahnutie. Znova otvorte PowerShell a skontrolujte mitmweb --version. Neinštalujte vo vnútri WSL pre tento príklad procesu Windows.
Vytvorte a dôverujte lokálnej CA tejto inštalácie
Spustite raz pod rovnakým účtom Windows, na ktorom bude spustený server proxy:
mitmweb --listen-host 127.0.0.1 --web-host 127.0.0.1
Po spustení ho zastavte pomocou Ctrl+C. mitmproxy vytvára svoju CA v %USERPROFILE%\.mitmproxy. Radšej Aktuálny používateľ dôverovať aplikácii, ktorá beží ako vy:
$ca = Join-Path $env:USERPROFILE '.mitmproxy\mitmproxy-ca-cert.cer'
if (-not (Test-Path -LiteralPath $ca)) { throw 'Start mitmweb once under this account first.' }
certutil -user -addstore Root "$ca"
if ($LASTEXITCODE -ne 0) { throw 'CA installation failed.' }
Dôverujte iba CA vygenerovanej vašou vlastnou inštaláciou. mitmproxy-ca-cert.cer je verejný certifikát; mitmproxy-ca.pem obsahuje aj súkromný kľúč a musí zostať súkromný. Po zmene dôveryhodnosti reštartujte Visual Studio.
Iba v prípade, že schválená žiadosť konkrétne potrebuje Miestny stroj dôverujte, používajte zvýšené prostredie PowerShell a certutil -addstore Root "$ca" bez -user. Toto dôveruje CA v celom stroji, ide o širšiu zmenu zabezpečenia a vyžaduje odstránenie zodpovedajúceho strojového úložiska nižšie. Nadmorská výška pod a rôzne administrátorský účet môže používať iný profil a CA; udržiavať konfiguráciu účtu, certifikátu a proxy konzistentnú.
Zachyťte iba zamýšľaný proces a hostiteľa
Spustite natívny PowerShell ako správca, keď to vyžadujú povolenia na zachytávanie systému Windows, pomocou rovnakého účtu/profilu. Najprv spustite Visual Studio. Tento príklad sa zameriava na názov procesu devenv:
mitmweb --mode local:devenv `
--listen-host 127.0.0.1 --web-host 127.0.0.1 `
--allow-hosts '^api\.deepseek\.com(:443)?$' `
--set connection_strategy=lazy --set upstream_cert=false `
--set stream_large_bodies --set store_streamed_bodies=false `
-s .\model-gate-response-stream.py `
--set 'map_remote=|^https://api\.deepseek\.com(?::443)?/|https://api.model-gate.com/'
Za spätným začiarknutím pokračovania v riadku PowerShell nesmú byť žiadne medzery. Ukotvené pravidlo sa zhoduje iba so špecifikovaným pôvodom HTTPS vrátane explicitného portu 443; názov hostiteľa poskytovateľa vyskytujúci sa v dotaze alebo iný názov hostiteľa sa neprepisuje. Zoznam povolených hostiteľov zabraňuje dešifrovaniu nesúvisiacich cieľov z vybraného procesu. lazy plus upstream_cert=false predíde zbytočnému načítavaniu certifikátov k pôvodnému poskytovateľovi. Overenie TLS skutočného upstreamu je stále povolené.
Visual Studio je nie Kód VS. Rozšírenie môže odosielať požiadavky skôr cez samostatný ServiceHub, jazykový server alebo pomocný proces devenv. Pred rozšírením zachytávania identifikujte skutočný proces vlastníctva siete. Ak chcete skontrolovať inštancie Visual Studio:
Get-Process -Name devenv | Select-Object Id, ProcessName, Path
Vymeňte local:devenv s local:12345 pomocou skutočného PID alebo zoznamu explicitne identifikovaných PID oddelených čiarkami. PID sa po reštarte zmenia. Nepoužívajte $PID pre vlastnú premennú PowerShell; odkazuje na vlastný proces PowerShell. Neprepínajte na celý stroj --mode local len aby sa objavila chýbajúca žiadosť.
Linux: mapovanie rovnakého rozsahu
Nainštalujte aktuálnu oficiálnu zostavu mitmproxy a skontrolujte mitmweb --version a uname -r. Local Capture používa eBPF; oficiálna platforma podpory je Linux 6.8. Na začiatok potrebuje privilegovaného pomocníka sudo. Bežať mitmweb ako váš bežný používateľ s --mode local:... na príkazovom riadku, aby mohol požiadať o toto privilégium; vyhnite sa prepnutiu celého proxy na root a náhodnému použitiu /root/.mitmproxy.
Najprv inicializujte CA pod svojím bežným účtom a potom prestaňte Ctrl+C:
mitmweb --listen-host 127.0.0.1 --web-host 127.0.0.1
Uprednostňujte zdokumentovaný mechanizmus vlastnej CA aplikácie. Zapnuté Ubuntu/Debian, aplikácie používajúce systémový dôveryhodný sklad môžu namiesto toho použiť túto voliteľnú inštaláciu pre celý systém:
sudo install -m 0644 "$HOME/.mitmproxy/mitmproxy-ca-cert.pem" \
/usr/local/share/ca-certificates/model-gate-local-mitmproxy.crt
sudo update-ca-certificates
Reštartujte klienta. Súkromné úložisko dôveryhodnosti Java/Node/prehliadač alebo obmedzená aplikácia môže potrebovať vlastné zdokumentované nastavenie dôveryhodnosti; import do obchodu OS nezaručuje, že mu každý klient dôveruje. Ostatné distribúcie používajú svoje vlastné procedúry CA-store.
Pre lokálny proces kódu VS s názvom code, mapovanie je:
mitmweb --mode local:code \
--listen-host 127.0.0.1 --web-host 127.0.0.1 \
--allow-hosts '^api\.deepseek\.com(:443)?$' \
--set connection_strategy=lazy --set upstream_cert=false \
--set stream_large_bodies --set store_streamed_bodies=false \
-s ./model-gate-response-stream.py \
--set 'map_remote=|^https://api\.deepseek\.com(?::443)?/|https://api.model-gate.com/'
Rovnako ako v systéme Windows použite skutočný proces vytvárania požiadaviek/PID, nie nevyhnutne okno editora. Skontrolujte ps -eo pid,comm,args a nahradiť local:12345 podľa potreby. Zhoda názvov systému Linux je obmedzená na prvých 16 znakov. Lokálne zachytávanie na WSL nie je podporované a kontajnery potrebujú pre tento režim sieť hostiteľa. Prevádzka z hostiteľa SSH/vzdialeného rozšírenia musí byť nakonfigurovaná na počítači, na ktorom tento proces prebieha, nielen na vašej pracovnej ploche.
Streamovanie, cesty a ďalší poskytovatelia
Doplnok obsahujúci iba odpoveď posiela odpovede HTTP bez čakania na úplnú odpoveď, čo je dôležité pre doručenie tokenov SSE. Telá požiadaviek zostanú vo vyrovnávacej pamäti do map_remote zmenil destináciu. Streamovacie telá sa štandardne neuchovávajú na kontrolu; hlavičky a stav zostávajú užitočné. Nepovoľujte uchovávanie tela ani export toku iba na riešenie problémov s kľúčom. Toto nastavenie nemení JSON klienta stream príznak a nemôže vytvoriť stream poskytovateľa bez streamovania.
Predvolené mapovanie zachováva cesty. Klient odosiela /chat/completions bez /v1 stále pošle túto cestu do Model Gate a môže dostať 404. Len pre zdrojové API, o ktorých je známe, že cesty vyžadujú túto normalizáciu, nahradiť map_remote hodnota s:
map_remote=|^https://api\.deepseek\.com(?::443)?/(?:v1/)?|https://api.model-gate.com/v1/
Toto schválne pridáva jednu /v1/ prefix, zachovanie existujúceho, zostávajúcu cestu a dotaz. Je to samostatný variant zmeny cesty, nie príklad iba pôvodu. Pred odoslaním skutočnej výzvy overte výsledný koncový bod.
Pre iného poskytovateľa nahraďte presný názov zdrojového hostiteľa v oboje allow-hosts a map_remote, vynechajte bodky regulárneho výrazu a vyberte správny cieľový pôvod/cestu. Udržujte zápas ukotvený pomocou ^https:// a hranicu názvu hostiteľa; nikdy nepoužívajte širokú náhradu podreťazca. Existujúce uložené doplnky alebo pravidlá prepisovania môžu zmeniť výsledok, preto pred testovaním skontrolujte svoju konfiguráciu mitmproxy.
Prijatie a riešenie problémov
Prvý test smerovania s fiktívnym poverením a necitlivou výzvou; očakáva sa zlyhanie autentifikácie v zamýšľanom cieli. Až po potvrdení destinácie urobte jednu zámerne malú požiadavku s vyhradeným obmedzeným kľúčom; odvodenie môže byť fakturovateľné. V mitmweb skontrolujte, či je cieľom zamýšľaný hostiteľ API modelu Gate, cesta je podporovaná, ID/alias modelu existuje a stav HTTP je úspešný. Skontrolujte históriu požiadaviek modelovej brány a potvrďte, že streamovaný text prichádza postupne. Nezverejňujte hlavičku Autorizácie ani export toku ako dôkaz.
Žiadna zachytená žiadosť. Skutočný pomocník/PID, privilégiá na zachytávanie, lokálne verzus vzdialené spustenie, názov zdrojového hostiteľa a podpora jadra.
Chyba certifikátu TLS. Opravte CA/profil/uklad a reštartujte klienta. Pripnutie certifikátu je obmedzením kompatibility, nie dôvodom na deaktiváciu overovania.
401. Klient musí použiť kľúč Model Gate pre zodpovedajúci účet/doménu API; map_remote si nevymieňa poverenia.
404. Skontrolujte skutočnú cestu; mapovanie iba pôvodu nepridáva /v1.
400 resp messages.0 / system chyba. Skontrolujte kompatibilitu protokolu žiadosti. Prepis pôvodu neprekladá roly správ ani iné polia JSON.
Model nedostupný. Použite povolené kanonické ID alebo existujúci alias; mapovanie nepremenuje model.
Streamovanie prichádza naraz. Skontrolujte, či sa úspešne načítal doplnok iba na odozvu, teda doplnok klienta stream hodnotu a skutočnú podporu poskytovateľa. Nepovoľujte streamovanie globálnych žiadostí.
Zastavte a odstráňte dôveru
Pred zastavením odpočúvania zatvorte klienta alebo odstráňte kľúč Model Gate z jeho pôvodnej konfigurácie poskytovateľa. V opačnom prípade môže jeho ďalšia priama požiadavka poslať tento kľúč pôvodnému poskytovateľovi. Nepredpokladajte, že zastavenie servera proxy zlyhá. Zastavte mitmweb pomocou Ctrl+C a potom obnovte normálne nastavenia koncového bodu/kľúča klienta.
Pre Windows Aktuálny používateľ importujte vyššie, odstráňte iba presný certifikát tejto inštalácie:
$ca = Join-Path $env:USERPROFILE '.mitmproxy\mitmproxy-ca-cert.cer'
$cert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($ca)
certutil -user -delstore Root $cert.Thumbprint
if ($LASTEXITCODE -ne 0) { throw 'CA removal failed; inspect the certificate store.' }
Pre voliteľné Miestny stroj importovať, použiť zvýšenú mušľu a certutil -delstore Root $cert.Thumbprint namiesto toho. Ponechajte si súbor verejnej CA, kým neidentifikujete a neodstránite zodpovedajúci dôveryhodný certifikát; neodstraňujte nesúvisiace dôveryhodné korene podľa názvu.
Pre vyššie uvedený import pre celý systém Ubuntu/Debian:
sudo rm -- /usr/local/share/ca-certificates/model-gate-local-mitmproxy.crt
sudo update-ca-certificates --fresh
Odstráňte aj konfiguráciu CA pre konkrétnu aplikáciu. Reštartujte klientov. Odstráňte citlivé zachytené artefakty a otočte vyhradený kľúč Model Gate, ak bol odhalený alebo poslaný na neúmyselné miesto. Tieto kroky pracovnej stanice nevyžadujú zmenu nginx, serverových dôveryhodných obchodov, produkcie .env súbory alebo politiku TLS Model Gate.
Oficiálne referencie
Revidované dňa 2026-09-08. Potvrďte možnosti oproti nainštalovaným mitmweb --options; zachytenie klientov a správanie dôvery si stále vyžadujú testovanie na vašej pracovnej stanici.
- mitmproxy Local Capture režimy a obmedzenia
- mitmproxy mapovanie a streamovanie URL
- Príklad doplnku na streamovanie odozvy mitmproxy
- implementácia mitmproxy map_remote request-hook
- možnosti mitmproxy
- mitmproxy CA certifikáty a pripnutie
- mitmproxy cieľ a oprávnenie HTTP požiadavky
- Microsoft certutil
- Inštalácia a odstránenie Ubuntu CA