Végpont felülbírálása Windows és Linux rendszeren
Egy felhatalmazott helyi ügyfél rögzített HTTPS-végpontjának irányítása a mitmproxyn keresztül, hatókörű rögzítéssel, TLS megbízhatósággal, adatfolyam-továbbítással és visszaállítással.
Használja a kliens beépített funkcióját Alap URL / Egyéni végpont / BYOK beállítást, amikor csak lehetséges. Lásd Csatlakozási útmutatók és GitHub másodpilóta. A helyi HTTPS-elfogás egy opcionális tartalék egy olyan ügyfél számára, amely nem tudja megváltoztatni a végpontját, nem követelmény a Model Gate használatához.
Ez nem univerzálisan kompatibilis. Az ügyfélnek el kell küldenie a Model Gate-fiókja által támogatott protokollt, elérési utat és modellt, el kell fogadnia a helyi tanúsító hatóságot, és lehetővé kell tennie a Model Gate API-kulcs konfigurálását. A tanúsítvány rögzítése, a privát megbízhatósági tároló, az aláírt kérelmek, a merev kódolású modell vagy a távoli bővítmény gazdagép megakadályozhatja ennek a módszernek a működését. Az URL-cím átírása nem alakítja át az OpenAI csevegéskiegészítéseket antropikus üzenetekké vagy válaszokká, nem ad hozzá modellképességeket, és nem helyettesíti a GitHub-hitelesítést.
Csak az Ön tulajdonában lévő vagy ellenőrzésre jogosult alkalmazásokat és forgalmat szabad lehallgatni. Szerezzen jóváhagyást a felügyelt munkaállomásokon. A mitmproxy látja a visszafejtett promptokat, a forráskódot és a hitelesítési fejléceket; helyi CA privát kulcsa megszemélyesítheti a HTTPS-kiszolgálókat a benne megbízó ügyfelek számára. Ne ossza meg a CA privát kulcsait, ne exportáljon módosítatlan folyamokat/HAR-fájlokat, ne tegye ki felhasználói felületét a hálózatnak, és ne tiltsa le a TLS-ellenőrzést.
Mit változtat meg ez a példa
A példa pontosan ezt a forrásforrást képezi le a webhely dokumentációjában látható Model API eredetével:
https://api.deepseek.com/v1/chat/completions
-> local mitmproxy
-> https://api.model-gate.com/v1/chat/completions
Konfigurálja a dedikált Model Gate API kulcs, nem pedig DeepSeek kulcsot, az ügyfél hitelesítő adatmezőjében. Válasszon egy engedélyezett Model Gate modellt vagy rendszergazda által kezelt álnevet a listából modell katalógus. Használja az útmutatóban látható Model API-eredetet a hozzá tartozó API-kulccsal; ne használja a panelt vagy a Partner API gazdagépet.
A szabály nem szerkeszti szándékosan a HTTP-módszert, elérési utat, lekérdezést, JSON törzset, model, Authorization, vagy a JSON stream érték. Megváltoztatja a célt és a HTTP Host / HTTP/2 :authority; upstream TLS csatlakozik az új célhoz. A HTTP-verzió, a fejléc betű- és sorrendje, a csatlakozási fejlécek és a keretezés is eltérhet. Ez nem az összes fejléc vagy hálózati forgalom bájtonkénti megőrzése.
Csak válaszadási adatfolyam előkészítése (mindkét rendszer)
Mentse el a következőt másként model-gate-response-stream.py a munkakönyvtárában. Ugyanez a fájl szerepel a PHP alkalmazáson belüli kiadásban a címen deploy/client-tools/; a mitmproxy-n belül fut, és nincs szüksége külön Python-telepítésre a natív csomag használatakor.
"""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
A beépített map_remote addon átírja a célt a kér hook, a kérés törzsének beolvasása után. Tartsa letiltva a kérések adatfolyamát, amíg az átírás meg nem történik. Ne használja --set stream_large_bodies=1 ezzel a recepttel: az átírás előtt továbbíthatja az eredeti kérést. A fenti kis kiegészítő csak válaszfolyamatokat tesz lehetővé, beleértve az SSE-t is, a JSON törzsének módosítása vagy a kérések újrajátszása nélkül.
Az alábbi parancsok használatosak --set stream_large_bodies egyenlőségjel vagy érték nélkül az opcionális beállítás visszaállításához None, és kifejezetten letiltja a streamelt test megtartását. A bővítmény elutasítja a globális streamelési küszöb későbbi engedélyezését. Távolítsa el a többi kérés-adatfolyam-/újraírás-kiegészítőt ebből a dedikált munkamenetből, és javítsa ki az indítási hibákat, mielőtt kulcsot helyezne el az ügyfélben. A proxy nem egy sikertelenül lezárt hitelesítő adathatár: először érvényesítse az útvonalat egy álkulccsal.
Windows: Visual Studio példa
Telepítse a hivatalos natív Windows-csomagot innen mitmproxy letöltések. Nyissa meg újra a PowerShellt, és ellenőrizze mitmweb --version. Ne telepítse a WSL-be ezt a Windows-folyamat példáját.
Hozzon létre és bízzon meg a telepítés helyi CA-jában
Indítsa el egyszer ugyanazzal a Windows-fiókkal, amelyen a proxy fut:
mitmweb --listen-host 127.0.0.1 --web-host 127.0.0.1
Indítás után állítsa le a következővel Ctrl+C. A mitmproxy létrehozza a CA-ját %USERPROFILE%\.mitmproxy. Inkább Jelenlegi felhasználó bizalom egy Ön által használt alkalmazásban:
$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.' }
Csak a saját telepítése által generált CA-ban bízzon. mitmproxy-ca-cert.cer a nyilvános tanúsítvány; mitmproxy-ca.pem tartalmazza a privát kulcsot is, és privátnak kell maradnia. A bizalom megváltoztatása után indítsa újra a Visual Studio-t.
Csak akkor, ha egy jóváhagyott alkalmazás kifejezetten szükséges Helyi gép bízzon, használjon emelt szintű PowerShellt és certutil -addstore Root "$ca" nélkül -user. Ez az egész gépen megbízik a CA-ban, egy szélesebb körű biztonsági változtatás, és az alábbi megfelelő gép-áruház eltávolítását igényli. Az a. alatti magasság különböző a rendszergazdai fiók más profilt és CA-t használhat; a fiók, a tanúsítvány és a proxy konfiguráció konzisztenciája legyen.
Csak a tervezett folyamatot és gazdagépet rögzítse
Futtassa a natív PowerShellt rendszergazdaként, ha a Windows rögzítési engedélyei megkövetelik, ugyanazzal a fiókkal/profillal. Először indítsa el a Visual Studio-t. Ez a példa a folyamat nevét célozza meg 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/'
Nem lehet szóköz a PowerShell sorfolytatója után. A rögzített szabály csak a megadott HTTPS-forrásnak felel meg, beleértve az explicit 443-as portot is; a lekérdezésben vagy egy másik gazdagépnévben előforduló szolgáltatói gazdagépnév nem íródik át. A gazdagép engedélyezési listája elkerüli a nem kapcsolódó célhelyek visszafejtését a kiválasztott folyamatból. lazy plusz upstream_cert=false elkerüli a szükségtelen tanúsítványszippantást az eredeti szolgáltatóval. A tényleges upstream TLS-ellenőrzése továbbra is engedélyezve van.
A Visual Studio az nem VS kód. A bővítmények külön ServiceHubon, nyelvi kiszolgálón vagy segédfolyamatokon keresztül küldhetnek kéréseket, nem pedig devenv. A rögzítés kiterjesztése előtt azonosítsa a tényleges hálózattulajdonlási folyamatot. A Visual Studio példányok ellenőrzése:
Get-Process -Name devenv | Select-Object Id, ProcessName, Path
Cserélje ki local:devenv -vel local:12345 a tényleges PID vagy a kifejezetten azonosított PID-ek vesszővel elválasztott listája használatával. A PID-ek az újraindítás után megváltoznak. Ne használja $PID egyéni PowerShell-változóhoz; a PowerShell saját folyamatára utal. Ne váltson át a teljes gépre --mode local pusztán egy hiányzó kérés megjelenítésére.
Linux: ugyanaz a hatókörű leképezés
Telepítsen egy aktuális hivatalos mitmproxy buildet, és ellenőrizze mitmweb --version és uname -r. A Local Capture eBPF-et használ; a hivatalos támogatási szint a Linux 6.8. Egy kiváltságos segítőre van szükség, amivel elkezdték sudo. Fut mitmweb mint a hétköznapi felhasználója --mode local:... a parancssorban, így kérheti ezt a jogosultságot; kerülje a teljes proxy gyökérre váltását és a véletlen használatát /root/.mitmproxy.
Először inicializálja a CA-t a szokásos fiókjában, majd hagyja abba Ctrl+C:
mitmweb --listen-host 127.0.0.1 --web-host 127.0.0.1
Részesítse előnyben az alkalmazás dokumentált egyéni CA-mechanizmusát. On Ubuntu/Debian, a rendszer megbízhatósági tárolóját használó alkalmazások ezt az opcionális, rendszerszintű telepítést használhatják:
sudo install -m 0644 "$HOME/.mitmproxy/mitmproxy-ca-cert.pem" \
/usr/local/share/ca-certificates/model-gate-local-mitmproxy.crt
sudo update-ca-certificates
Indítsa újra a klienst. Egy privát Java/csomópont/böngésző megbízhatósági tárolónak vagy egy korlátozott alkalmazásnak saját, dokumentált megbízhatósági beállításra lehet szüksége; az operációs rendszer áruházába történő importálás nem garantálja, hogy minden ügyfél megbízik benne. Más disztribúciók saját CA-tároló eljárásokat alkalmaznak.
nevű helyi VS Code folyamathoz code, a leképezés a következő:
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/'
A Windowshoz hasonlóan a tényleges kérés-előállító folyamatot/PID-t használja, nem feltétlenül a szerkesztőablakot. Vizsgálja meg ps -eo pid,comm,args és helyettesíti local:12345 szükség szerint. A Linux névegyeztetés az első 16 karakterre korlátozódik. A WSL helyi rögzítése nem támogatott, és a tárolóknak ehhez a módhoz gazdahálózatra van szükségük. Az SSH/távoli bővítmény gazdagépről érkező forgalmat azon a gépen kell konfigurálni, amelyen a folyamat fut, nem csak az asztalon.
Streaming, útvonalak és egyéb szolgáltatók
A csak válaszokat tartalmazó bővítmény a teljes válasz megvárása nélkül továbbítja a HTTP-válaszokat, ami fontos az SSE-jogkivonat kézbesítéséhez. A kérelmek testületei addig pufferelve maradnak map_remote megváltoztatta az úti célt. Az adatfolyam-testek alapértelmezés szerint nem maradnak meg ellenőrzésre; fejlécek és állapot továbbra is hasznosak maradnak. Ne engedélyezze a test megtartását vagy az áramlási exportot pusztán a kulcsok hibaelhárítása érdekében. Ez a beállítás nem módosítja az ügyfél JSON-ját stream jelölje meg, és nem tud nem streaming szolgáltatói adatfolyamot létrehozni.
Az alapértelmezett leképezés megőrzi az útvonalakat. Egy ügyfél küldése /chat/completions nélkül /v1 továbbra is elküldi ezt az útvonalat a Model Gate-nek, és megkaphatja a 404-et. Csak olyan forrás API-hoz, amelynek elérési útjairól ismert, hogy szükség van erre a normalizálásra, cserélje ki a map_remote érték a következővel:
map_remote=|^https://api\.deepseek\.com(?::443)?/(?:v1/)?|https://api.model-gate.com/v1/
Ez szándékosan hozzáad egyet /v1/ előtag, egy meglévő megőrzése, a fennmaradó elérési út és lekérdezés. Ez egy külön útváltó változat, nem csak az eredetre vonatkozó példa. Valódi prompt küldése előtt ellenőrizze az eredményül kapott végpontot.
Másik szolgáltató esetén cserélje ki a pontos forrás hosztnevet mindkét allow-hosts és map_remote, hagyja el a reguláris kifejezési pontokat, és válassza ki a megfelelő cél origót/útvonalat. Tartsa rögzítve a mérkőzést ^https:// és egy gazdagépnév határ; soha ne használjon széles részstring helyettesítést. A meglévő mentett kiegészítők vagy átírási szabályok megváltoztathatják az eredményt, ezért a tesztelés előtt ellenőrizze a mitmproxy konfigurációját.
Elfogadás és hibaelhárítás
Első tesztútválasztás ál hitelesítő adatokkal és nem érzékeny prompttal; hitelesítési hiba várható a tervezett célnál. Csak az úti cél megerősítése után adjon meg egy szándékosan kis kérést egy dedikált korlátozott kulccsal; következtetés számlázható lehet. A mitmwebben ellenőrizze, hogy a cél a tervezett Model Gate API-állomás, az elérési út támogatott-e, a modellazonosító/álnév létezik-e, és a HTTP állapot sikeres-e. Ellenőrizze a modellkapu-kérés előzményeit, és győződjön meg arról, hogy a streamelt szöveg fokozatosan érkezik. Ne tegyen közzé hitelesítési fejlécet vagy folyamatexportálást bizonyítékként.
Nincs rögzített kérés. A tényleges helper/PID, rögzítési jogosultságok, helyi versus távoli végrehajtás, forrás hosztnév és kernel támogatás.
TLS-tanúsítványhiba. Helyes CA/profil/üzlet és kliens újraindítása. A tanúsítvány rögzítése kompatibilitási korlátozás, nem pedig ok az ellenőrzés letiltására.
401. Az ügyfélnek Model Gate kulcsot kell használnia a megfelelő fiókhoz/API-tartományhoz; A map_remote nem cserél hitelesítő adatokat.
404. Vizsgálja meg a tényleges utat; A csak eredetre vonatkozó leképezés nem ad hozzá /v1.
400 ill messages.0 / system hiba. Ellenőrizze a kérés-protokoll kompatibilitást. Az eredet átírása nem fordítja le az üzenetszerepeket vagy más JSON-mezőket.
A modell nem elérhető. Használjon engedélyezett kanonikus azonosítót vagy meglévő álnevet; a leképezés nem nevezi át model.
A streamelés egyszerre érkezik. Ellenőrizze, hogy a csak válaszadást biztosító bővítmény sikeresen betöltődött-e az ügyfélnél stream érték és tényleges szolgáltatói támogatás. Ne engedélyezze a globális kérések streamingjét.
Állj le és távolítsd el a bizalmat
Az elfogás leállítása előtt zárja be az ügyfelet, vagy távolítsa el a Model Gate kulcsot az eredeti szolgáltató konfigurációjából. Ellenkező esetben a következő közvetlen kérés elküldheti ezt a kulcsot az eredeti szolgáltatónak. Ne feltételezze, hogy a proxy leállítása meghiúsul. Állítsa le a mitmweb-et a Ctrl+C billentyűkombinációval, majd állítsa vissza az ügyfél normál végpont-/kulcsbeállításait.
A Windows számára Jelenlegi felhasználó a fenti importálásnál csak a telepítés pontos tanúsítványát távolítsa el:
$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.' }
Az opcionálishoz Helyi gép importálás, emelt héj használata és certutil -delstore Root $cert.Thumbprint helyette. Tartsa meg a nyilvános CA-fájlt, amíg meg nem azonosítja és eltávolítja a megfelelő megbízható tanúsítványt; ne törölje név szerint a nem kapcsolódó megbízható gyökereket.
A fenti Ubuntu/Debian rendszerszintű importáláshoz:
sudo rm -- /usr/local/share/ca-certificates/model-gate-local-mitmproxy.crt
sudo update-ca-certificates --fresh
Távolítson el minden alkalmazás-specifikus CA-konfigurációt is. Indítsa újra az ügyfeleket. Törölje az érzékeny rögzített műtermékeket, és forgassa el a dedikált Model Gate kulcsot, ha nyilvánosságra került vagy nem szándékolt célállomásra küldték. Ezek a munkaállomás lépések nem igénylik az nginx, a szerver megbízhatósági tárolók és a termelés módosítását .env fájlokat vagy a Model Gate TLS szabályzatát.
Hivatalos referenciák
Értékelés ideje: 2026-09-08. Erősítse meg a telepített opciókat mitmweb --options; Az ügyfélrögzítés és a bizalom viselkedése továbbra is tesztelést igényel a munkaállomáson.
- mitmproxy Local Capture módok és korlátozások
- mitmproxy URL-leképezés és adatfolyam
- mitmproxy válasz-streaming addon példa
- mitmproxy map_remote request-hook megvalósítás
- mitmproxy opciók
- mitmproxy CA tanúsítványok és rögzítés
- mitmproxy HTTP kérés célállomása és jogosultsága
- Microsoft certutil
- Ubuntu CA telepítése és eltávolítása