Přepsání koncového bodu ve Windows a Linuxu
Směrujte pevný koncový bod HTTPS autorizovaného místního klienta přes mitmproxy s rozsahem zachycení, důvěryhodnosti TLS, streamování a vrácení zpět.
Použijte vestavěný klient Základní URL / Vlastní koncový bod / BYOK nastavení, kdykoli je to možné. Vidět Průvodce připojením a GitHub Copilot. Lokální zachycení HTTPS je volitelná záložní možnost pro klienta, který nemůže změnit svůj koncový bod, není to požadavek pro použití Model Gate.
Toto není univerzálně kompatibilní. Klient musí odeslat protokol, cestu a model podporovaný vaším účtem Model Gate, přijmout vaši místní certifikační autoritu a umožnit vám nakonfigurovat klíč API modelu Gate. Připnutí certifikátu, soukromé úložiště důvěryhodnosti, podepsané požadavky, pevně zakódovaný model nebo hostitel vzdáleného rozšíření mohou zabránit fungování této metody. Přepsání adresy URL nepřevádí dokončení chatu OpenAI na antropické zprávy nebo odpovědi, nepřidává možnosti modelu ani nenahrazuje ověřování GitHub.
Zachycujte pouze aplikace a provoz, které vlastníte nebo jste oprávněni kontrolovat. Získejte schválení na spravovaných pracovních stanicích. mitmproxy vidí dešifrované výzvy, zdrojový kód a autentizační hlavičky; jeho soukromý klíč místního CA se může vydávat za servery HTTPS klientům, kteří mu důvěřují. Nesdílejte soukromé klíče CA, neexportujte nezreagované toky/soubory HAR, nevystavujte jeho uživatelské rozhraní síti ani nevypínejte ověřování TLS.
Co tento příklad změní
Příklad mapuje přesně tento zdrojový počátek na počátek Model API zobrazený v dokumentaci tohoto webu:
https://api.deepseek.com/v1/chat/completions
-> local mitmproxy
-> https://api.model-gate.com/v1/chat/completions
Nakonfigurujte a vyhrazený klíč API modelu brány, nikoli klíč DeepSeek, v poli pověření klienta. Vyberte povolený model brány modelu nebo alias spravovaný správcem z katalog modelů. Použijte původ modelu API zobrazený v této příručce s odpovídajícím klíčem API; nepoužívejte panel nebo hostitele Partner API.
Pravidlo záměrně neupravuje metodu HTTP, cestu, dotaz, tělo JSON, model, Authorizationnebo JSON stream hodnota. Mění cíl a HTTP Host / HTTP/2 :authority; upstream TLS se připojí k novému cíli. Verze HTTP, velikost/pořadí hlavičky, hlavičky připojení a rámce se mohou také lišit. Není to bajt po bajtu zachování všech hlaviček nebo síťového provozu.
Připravte streamování pouze pro odpověď (oba systémy)
Uložte následující jako model-gate-response-stream.py ve vašem pracovním adresáři. Stejný soubor je obsažen ve verzi uvnitř aplikace PHP na adrese deploy/client-tools/; běží uvnitř mitmproxy a při použití nativního balíčku nepotřebuje žádnou samostatnou instalaci 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
Vestavěný map_remote addon přepíše cíl v žádost háček, po přečtení těla požadavku. Nechte streamování požadavku deaktivované, dokud nedojde k přepsání. Nepoužívejte --set stream_large_bodies=1 s tímto receptem: může předat původní požadavek před přepsáním. Malý doplněk výše umožňuje pouze streamování odpovědí, včetně SSE, bez úpravy těla JSON nebo přehrání požadavků.
Použijte níže uvedené příkazy --set stream_large_bodies bez znaménka rovná se nebo hodnoty pro resetování tohoto volitelného nastavení Nonea explicitně zakázat uchovávání streamovaného těla. Doplněk později odmítne povolení globálního prahu streamování. Odstraňte další doplňky pro streamování/přepis požadavků z této vyhrazené relace a před umístěním klíče do klienta vyřešte všechny chyby při spuštění. Proxy není hranice pověření uzavřená při selhání: nejprve ověřte cestu pomocí fiktivního klíče.
Windows: Příklad sady Visual Studio
Nainstalujte oficiální nativní balíček Windows z mitmproxy ke stažení. Znovu otevřete PowerShell a zkontrolujte mitmweb --version. V tomto příkladu procesu Windows neinstalujte uvnitř WSL.
Vytvořte a důvěřujte místnímu CA této instalace
Spusťte jednou pod stejným účtem Windows, na kterém bude spuštěn proxy:
mitmweb --listen-host 127.0.0.1 --web-host 127.0.0.1
Po spuštění jej zastavte pomocí Ctrl+C. mitmproxy vytváří svou CA v %USERPROFILE%\.mitmproxy. Preferuji Aktuální uživatel důvěřovat aplikaci běžící jako 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ůvěřujte pouze CA vygenerované vaší vlastní instalací. mitmproxy-ca-cert.cer je veřejný certifikát; mitmproxy-ca.pem obsahuje také soukromý klíč a musí zůstat soukromý. Po změně důvěryhodnosti restartujte Visual Studio.
Pouze v případě, že schválená žádost konkrétně potřebuje Místní stroj důvěřovat, používat zvýšené prostředí PowerShell a certutil -addstore Root "$ca" bez -user. To důvěřuje CA v celém stroji, je to širší bezpečnostní změna a vyžaduje odstranění odpovídajícího strojového úložiště níže. Nadmořská výška pod a jiný administrátorský účet může používat jiný profil a CA; udržovat konzistentní konfiguraci účtu, certifikátu a proxy.
Zachyťte pouze zamýšlený proces a hostitele
Spusťte nativní PowerShell jako správce, když to vyžadují oprávnění k zachycení Windows, pomocí stejného účtu/profilu. Nejprve spusťte Visual Studio. Tento příklad se zaměřuje na název 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 zadním zaškrtnutím pro pokračování řádku PowerShellu nesmí být žádné mezery. Ukotvené pravidlo odpovídá pouze zadanému původu HTTPS, včetně explicitního portu 443; název hostitele poskytovatele vyskytující se v dotazu nebo jiný název hostitele se nepřepisuje. Seznam povolených hostitelů se vyhýbá dešifrování nesouvisejících cílů z vybraného procesu. lazy plus upstream_cert=false předejde zbytečnému spojení s původním poskytovatelem, které vyžaduje čichání certifikátů. Ověření TLS skutečného upstreamu je stále povoleno.
Visual Studio je ne VS kód. Rozšíření může odesílat požadavky spíše prostřednictvím samostatného ServiceHub, jazykového serveru nebo pomocného procesu devenv. Před rozšířením zachycení identifikujte skutečný proces vlastnictví sítě. Chcete-li zkontrolovat instance sady Visual Studio:
Get-Process -Name devenv | Select-Object Id, ProcessName, Path
Nahradit local:devenv s local:12345 pomocí skutečného PID nebo seznamu explicitně identifikovaných PID oddělených čárkami. PID se po restartech změní. Nepoužívejte $PID pro vlastní proměnnou PowerShellu; odkazuje na vlastní proces PowerShellu. Nepřepínejte na celý stroj --mode local pouze proto, aby se objevil chybějící požadavek.
Linux: mapování stejného rozsahu
Nainstalujte aktuální oficiální sestavení mitmproxy a zkontrolujte mitmweb --version a uname -r. Local Capture používá eBPF; oficiální úrovní podpory je Linux 6.8. Potřebuje privilegovaného pomocníka sudo. Běh mitmweb jako váš běžný uživatel s --mode local:... na příkazovém řádku, aby mohl požádat o toto oprávnění; vyvarujte se přepnutí celého proxy na root a náhodnému použití /root/.mitmproxy.
Nejprve inicializujte CA pod svým běžným účtem a poté s ním přestaňte Ctrl+C:
mitmweb --listen-host 127.0.0.1 --web-host 127.0.0.1
Preferujte zdokumentovaný mechanismus vlastní CA aplikace. Na Ubuntu/Debian, mohou aplikace využívající úložiště důvěryhodnosti systému místo toho použít tuto volitelnou instalaci pro 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
Restartujte klienta. Soukromé úložiště důvěryhodnosti Java/Node/prohlížeče nebo omezená aplikace může potřebovat vlastní zdokumentované nastavení důvěryhodnosti; import do obchodu OS nezaručuje, že mu každý klient důvěřuje. Jiné distribuce používají své vlastní procedury úložiště CA.
Pro místní proces VS Code s názvem code, mapování 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/'
Stejně jako ve Windows použijte skutečný proces/PID pro vytváření požadavků, ne nutně okno editoru. Kontrolovat ps -eo pid,comm,args a nahradit local:12345 podle potřeby. Shoda názvů Linuxu je omezena na prvních 16 znaků. Místní zachycení na WSL není podporováno a kontejnery pro tento režim potřebují síť hostitele. Provoz z hostitele SSH/vzdáleného rozšíření musí být nakonfigurován na počítači, kde tento proces běží, nikoli pouze na ploše.
Streamování, cesty a další poskytovatelé
Doplněk pouze pro odpověď předává odpovědi HTTP bez čekání na úplnou odpověď, což je důležité pro doručení tokenu SSE. Těla požadavků zůstávají ve vyrovnávací paměti, dokud map_remote změnil cíl. Streamovací těla nejsou standardně uchovávána pro kontrolu; záhlaví a stav zůstávají užitečné. Nepovolujte uchování těla nebo export toku pouze za účelem odstraňování problémů s klíčem. Toto nastavení nemění JSON klienta stream příznak a nemůže vytvořit stream poskytovatele bez streamování.
Výchozí mapování zachovává cesty. Klient odesílá /chat/completions bez /v1 stále pošle tuto cestu do Model Gate a může obdržet 404. Pouze pro zdrojové rozhraní API, o jehož cestách je známo, že tuto normalizaci vyžadují, vyměňte map_remote hodnota s:
map_remote=|^https://api\.deepseek\.com(?::443)?/(?:v1/)?|https://api.model-gate.com/v1/
To záměrně přidává jednu /v1/ prefix, zachování existujícího, zbývající cestu a dotaz. Je to samostatná varianta se změnou cesty, nikoli příklad pouze s původem. Před odesláním skutečné výzvy ověřte výsledný koncový bod.
U jiného poskytovatele nahraďte přesný zdrojový název hostitele v obě allow-hosts a map_remote, unikněte tečkám regulárního výrazu a vyberte správný cílový počátek/cestu. Udržujte zápas zakotvený s ^https:// a hranice názvu hostitele; nikdy nepoužívejte náhradu širokých podřetězců. Existující uložené doplňky nebo pravidla přepisu mohou změnit výsledek, proto před testováním zkontrolujte konfiguraci mitmproxy.
Přijetí a řešení problémů
První testovací směrování s fiktivním pověřením a necitlivou výzvou; očekává se selhání ověřování u zamýšleného cíle. Teprve po potvrzení destinace proveďte jeden záměrně malý požadavek s vyhrazeným omezeným klíčem; závěr může být fakturovatelný. V mitmweb zkontrolujte, že cíl je zamýšlený hostitel API modelu Gate, cesta je podporována, ID/alias modelu existuje a stav HTTP je úspěšný. Zkontrolujte historii požadavků modelové brány a potvrďte, že streamovaný text přichází postupně. Nezveřejňujte autorizační hlavičku ani export toku jako důkaz.
Žádný zachycený požadavek. Skutečný pomocník/PID, oprávnění k zachycení, místní versus vzdálené spuštění, název hostitele zdroje a podpora jádra.
Chyba certifikátu TLS. Opravte CA/profil/úložiště a restartujte klienta. Připnutí certifikátu je omezením kompatibility, nikoli důvodem k deaktivaci ověřování.
401. Klient musí použít klíč Model Gate pro odpovídající účet/doménu API; map_remote si nevyměňuje přihlašovací údaje.
404. Zkontrolujte skutečnou cestu; mapování pouze původu nepřidává /v1.
400 resp messages.0 / system chyba. Zkontrolujte kompatibilitu protokolu požadavku. Přepsání původu nepřekládá role zpráv ani jiná pole JSON.
Model nedostupný. Použijte povolené kanonické ID nebo existující alias; mapování nepřejmenovává model.
Streamování přichází najednou. Zkontrolujte, zda se úspěšně načetl doplněk pouze pro odpověď, tedy doplněk klienta stream hodnotu a skutečnou podporu poskytovatele. Nepovolujte streamování globálních požadavků.
Zastavte a odstraňte důvěru
Před zastavením odposlechu zavřete klienta nebo odeberte klíč Model Gate z jeho původní konfigurace poskytovatele. V opačném případě může jeho další přímý požadavek poslat tento klíč původnímu poskytovateli. Nepředpokládejte, že zastavení serveru proxy se nezdaří. Zastavte mitmweb pomocí Ctrl+C a poté obnovte normální nastavení koncového bodu/klíče klienta.
Pro Windows Aktuální uživatel importovat výše, odstraňte pouze přesný certifikát této instalace:
$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.' }
Pro volitelné Místní stroj importovat, použít zvýšený shell a certutil -delstore Root $cert.Thumbprint místo toho. Uchovávejte soubor veřejné CA, dokud neidentifikujete a neodstraníte odpovídající důvěryhodný certifikát; neodstraňujte nesouvisející důvěryhodné kořeny podle názvu.
Pro výše uvedený systémový import Ubuntu/Debian:
sudo rm -- /usr/local/share/ca-certificates/model-gate-local-mitmproxy.crt
sudo update-ca-certificates --fresh
Odeberte také všechny konfigurace CA specifické pro aplikaci. Restartujte klienty. Odstraňte citlivé zachycené artefakty a otočte vyhrazeným klíčem Model Gate, pokud byl vystaven nebo odeslán na nezamýšlené místo. Tyto kroky pracovní stanice nevyžadují změnu nginx, úložiště důvěryhodnosti serveru, produkci .env soubory nebo zásadu TLS Model Gate.
Oficiální reference
Revidováno dne 2026-09-08. Potvrďte možnosti oproti nainstalovaným mitmweb --options; zachycování klientů a chování důvěry stále vyžadují testování na vaší pracovní stanici.
- mitmproxy Místní režimy zachycení a omezení
- mitmproxy mapování URL a streamování
- příklad doplňku mitmproxy response-streaming
- implementace mitmproxy map_remote request-hook
- možnosti mitmproxy
- mitmproxy CA certifikáty a připínání
- mitmproxy cíl požadavku HTTP a oprávnění
- Microsoft certutil
- Instalace a odstranění Ubuntu CA