Lõpp-punkti alistamine Windowsis ja Linuxis

Marsruutige volitatud kohaliku kliendi fikseeritud HTTPS-i lõpp-punkt mitmproxy kaudu koos ulatusega hõivamise, TLS-i usalduse, voogesituse ja tagasipööramisega.

Kasutage kliendi sisseehitatud seadet Baas-URL / kohandatud lõpp-punkt / BYOK seadistus igal võimalusel. Vaata Ühendusjuhised ja GitHubi kopiloot. Kohalik HTTPS-i pealtkuulamine on valikuline varuvõimalus kliendile, kes ei saa oma lõpp-punkti muuta, mitte aga Model Gate'i kasutamise nõue.

See ei ole universaalselt ühilduv. Klient peab saatma teie Model Gate'i konto toetatud protokolli, tee ja mudeli, aktsepteerima teie kohalikku sertifitseerimisasutust ja lubama teil konfigureerida Model Gate API võtme. Selle meetodi toimimist võivad takistada sertifikaadi kinnitamine, privaatne usaldussalv, allkirjastatud taotlused, kõvakodeeritud mudel või kauglaienduse host. URL-i ümberkirjutamine ei muuda OpenAI vestluse lõpetamisi antroopilisteks sõnumiteks või vastusteks, ei lisa mudelivõimalusi ega asenda GitHubi autentimist.

Peatage kinni ainult teile kuuluvad või kontrollimiseks volitatud rakendused ja liiklus. Hankige hallatavate tööjaamade heakskiit. mitmproxy näeb dekrüpteeritud viipasid, lähtekoodi ja autentimispäiseid; selle kohalik CA privaatvõti võib esineda HTTPS-serveritena klientidele, kes seda usaldavad. Ärge jagage CA privaatvõtmeid, eksportige redigeerimata voogusid/HAR-faile, avaldage selle kasutajaliidest võrku ega keelake TLS-i kinnitamist.

Mida see näide muudab

Näidis kaardistab täpselt selle allika lähtekoha mudeli API lähtekohaga, mis on näidatud selle saidi dokumentatsioonis:

https://api.deepseek.com/v1/chat/completions
  -> local mitmproxy
  -> https://api.model-gate.com/v1/chat/completions

Seadistage a spetsiaalne Model Gate API võti, mitte DeepSeeki võti, kliendi mandaadiväljal. Valige loendist lubatud Model Gate'i mudel või administraatori hallatav pseudonüüm mudelite kataloog. Kasutage selles juhendis näidatud mudeli API päritolu koos vastava API võtmega; ärge kasutage paneeli ega Partner API hosti.

Reegel ei muuda tahtlikult HTTP-meetodit, teed, päringut, JSON-i keha, model, Authorizationvõi JSON stream väärtus. See muudab sihtkohta ja HTTP Host / HTTP/2 :authority; ülesvoolu TLS loob ühenduse uue sihtkohaga. HTTP versioon, päise korpus/järjestus, ühenduse päised ja raamimine võivad samuti erineda. See ei ole kogu päiste või võrguliikluse bait-baidipõhine säilitamine.

Valmistage ette ainult vastusega voogesitus (mõlemad süsteemid)

Salvestage järgmine nimega model-gate-response-stream.py oma töökataloogis. Sama fail sisaldub versioonis PHP rakenduse sees aadressil deploy/client-tools/; see töötab mitmproxy sees ega vaja omapaketi kasutamisel eraldi Pythoni installimist.

"""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

Sisseehitatud map_remote addon kirjutab sihtkoha ümber nõuda konks, pärast päringu sisu lugemist. Jätke päringu voogesitus keelatud, kuni see ümberkirjutamine on toimunud. Ärge kasutage --set stream_large_bodies=1 selle retseptiga: see võib edastada esialgse taotluse enne ümberkirjutamist. Ülaltoodud väike lisandmoodul võimaldab ainult vastuste voogesitust, sealhulgas SSE-d, ilma JSON-i keha muutmata või taotlusi uuesti esitamata.

Allpool olevad käsud kasutavad --set stream_large_bodies ilma võrdusmärgi või väärtuseta selle valikulise sätte lähtestamiseks Noneja keelake voogesituse keha säilitamine. Lisandmoodul keeldub globaalse voogesituse läve lubamisest hiljem. Eemaldage sellest spetsiaalsest seansist muud päringu voogesituse/ümberkirjutamise lisandmoodulid ja lahendage kõik käivitamisvead enne võtme sisestamist klienti. Puhverserver ei ole tõrkekindlalt suletud mandaadi piir: esmalt kinnitage marsruut näiva võtmega.

Windows: Visual Studio näide

Installige ametlik Windowsi pakett aadressilt mitmproxy allalaadimine. Avage PowerShell uuesti ja kontrollige mitmweb --version. Ärge installige selle Windowsi protsessi näite puhul WSL-i.

Looge ja usaldage selle installi kohalikku CA-d

Käivitage üks kord sama Windowsi konto alt, mis käivitab puhverserveri:

mitmweb --listen-host 127.0.0.1 --web-host 127.0.0.1

Pärast käivitamist peatage see nupuga Ctrl+C. mitmproxy loob oma CA sisse %USERPROFILE%\.mitmproxy. Eelista Praegune kasutaja usaldus teie nimega töötava rakenduse puhul:

$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.' }

Usaldage ainult teie enda installi loodud CA-d. mitmproxy-ca-cert.cer on avalik sertifikaat; mitmproxy-ca.pem sisaldab ka privaatvõtit ja peab jääma privaatseks. Pärast usalduse muutmist taaskäivitage Visual Studio.

Ainult siis, kui heakskiidetud rakendus seda konkreetselt vajab Kohalik masin usaldage, kasutage kõrgendatud PowerShelli ja certutil -addstore Root "$ca" ilma -user. See usaldab CA-d kogu masinas, on laiem turbemuudatus ja nõuab allpool vastavat masinapoest eemaldamist. Kõrgus all a erinev administraatori konto võib kasutada teist profiili ja CA-d; hoidke konto, sertifikaadi ja puhverserveri konfiguratsioon järjepidevana.

Jäädvustage ainult kavandatud protsess ja host

Käivitage native PowerShell administraatorina, kui seda nõuavad Windowsi hõivamisõigused, kasutades sama kontot/profiili. Kõigepealt käivitage Visual Studio. See näide sihib protsessi nime 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/'

PowerShelli rea jätkuva tagasimärgi järel ei tohi olla tühikuid. Ankurdatud reegel vastab ainult määratud HTTPS-i lähtepunktile, sealhulgas selgesõnalisele pordile 443; päringus esinevat pakkuja hostinime või muud hostinime ei kirjutata ümber. Hosti lubade loend väldib valitud protsessist sõltumatute sihtkohtade dekrüpteerimist. lazy pluss upstream_cert=false väldib tarbetut sertifikaati nuusutavat ühendust algse pakkujaga. Tegeliku ülesvoolu TLS-i kontrollimine on endiselt lubatud.

Visual Studio on mitte VS kood. Laiendus võib saata päringuid eraldi ServiceHubi, keeleserveri või abistamisprotsessi kaudu devenv. Enne hõivamise laiendamist tuvastage tegelik võrgu omamise protsess. Visual Studio eksemplaride kontrollimiseks tehke järgmist.

Get-Process -Name devenv | Select-Object Id, ProcessName, Path

Asenda local:devenv koos local:12345 kasutades tegelikku PID-d või selgesõnaliselt tuvastatud PID-de komadega eraldatud loendit. PID-d muutuvad pärast taaskäivitamist. Ärge kasutage $PID kohandatud PowerShelli muutuja jaoks; see viitab PowerShelli enda protsessile. Ärge lülituge tervele masinale --mode local lihtsalt selleks, et ilmutada puuduv taotlus.

Linux: sama ulatusega kaardistamine

Installige praegune ametlik mitmproxy versioon ja kontrollige mitmweb --version ja uname -r. Local Capture kasutab eBPF-i; ametlik tugipõrand on Linux 6.8. See vajab privilegeeritud abilist, mille alustamiseks sudo. Jookse mitmweb kui teie tavakasutaja --mode local:... käsureal, et see saaks seda õigust taotleda; vältige kogu puhverserveri ümberlülitamist juurrežiimile ja kogemata kasutamist /root/.mitmproxy.

Esmalt lähtestage CA oma tavalise konto all, seejärel lõpetage Ctrl+C:

mitmweb --listen-host 127.0.0.1 --web-host 127.0.0.1

Eelistage rakenduse dokumenteeritud kohandatud CA mehhanismi. Sees Ubuntu/Debian, saavad süsteemi usaldussalve kasutavad rakendused kasutada seda valikulist kogu süsteemi hõlmavat installi:

sudo install -m 0644 "$HOME/.mitmproxy/mitmproxy-ca-cert.pem" \
  /usr/local/share/ca-certificates/model-gate-local-mitmproxy.crt
sudo update-ca-certificates

Taaskäivitage klient. Privaatne Java/sõlme/brauseri usaldussalv või piiratud rakendus võib vajada oma dokumenteeritud usalduse seadistust; OS-i poodi importimine ei garanteeri, et iga klient seda usaldab. Teised distributsioonid kasutavad oma CA-poe protseduure.

Kohaliku VS-koodi protsessi jaoks nimega code, kaardistamine on järgmine:

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/'

Nagu Windowsis, kasutage tegelikku päringu loomise protsessi/PID-d, mitte tingimata redaktori akent. Kontrollige ps -eo pid,comm,args ja asendada local:12345 vastavalt vajadusele. Linuxi nime sobitamine on piiratud esimese 16 tähemärgiga. Kohalikku hõivet WSL-is ei toetata ja konteinerid vajavad selle režiimi jaoks hostivõrku. Liiklus SSH-/kauglaienduse hostist tuleb konfigureerida masinas, kus see protsess töötab, mitte ainult teie töölaual.

Voogesitus, teed ja muud pakkujad

Ainult vastuse lisandmoodul edastab HTTP vastused täielikku vastust ootamata, mis on oluline SSE loa edastamiseks. Päringu kehad jäävad puhverdatuks kuni map_remote on sihtkohta muutnud. Voogesituse kehasid vaikimisi kontrollimiseks ei säilitata; päised ja olek jäävad kasulikuks. Ärge lubage keha kinnipidamist ega voolu eksporti ainult võtme tõrkeotsinguks. See säte ei muuda kliendi JSON-i stream märgista ja ei saa luua mittevoogesituse pakkuja voogu.

Vaikimisi kaardistamine säilitab teed. Klient saadab /chat/completions ilma /v1 saadab selle tee ikkagi Model Gate'ile ja võib saada 404. Ainult lähte-API jaoks, mille teed teadaolevalt nõuavad seda normaliseerimist, asendage map_remote väärtus koos:

map_remote=|^https://api\.deepseek\.com(?::443)?/(?:v1/)?|https://api.model-gate.com/v1/

See lisab meelega ühe /v1/ eesliide, olemasoleva säilitamine, ülejäänud tee ja päring. See on eraldi teed muutev variant, mitte ainult päritoluga näide. Enne tõelise viipa saatmist kontrollige saadud lõpp-punkti.

Teise pakkuja puhul asendage täpne allika hostinimi mõlemad allow-hosts ja map_remote, põgenege regex-punktidest ja valige õige sihtmärgi algus/tee. Hoidke matš ankurdatud ^https:// ja hostinime piir; ärge kunagi kasutage laia alamstringi asendust. Olemasolevad salvestatud lisandmoodulid või ümberkirjutusreeglid võivad tulemust muuta, seega kontrollige enne testimist oma mitmproxy konfiguratsiooni.

Vastuvõtmine ja tõrkeotsing

Esimene testmarsruutimine näiva mandaadi ja mittetundliku viipaga; eeldatakse autentimise ebaõnnestumist kavandatud sihtmärgil. Alles pärast sihtkoha kinnitamist esitage üks tahtlikult väike päring spetsiaalse piiratud võtmega; järeldus võib olla arveldatav. Mitmwebis kontrollige, kas sihtkoht on kavandatud Model Gate API host, tee on toetatud, mudeli ID/alias on olemas ja HTTP olek on edukas. Kontrollige mudelivärava taotluste ajalugu ja veenduge, et voogesitustekst saabub järk-järgult. Ärge avaldage tõendina autoriseerimispäist ega vooeksporti.

Jäädvustatud taotlust pole. Tegelik abimees/PID, püüdmisõigused, kohalik versus kaugkäivitus, allika hostinimi ja kerneli tugi.

TLS-sertifikaadi tõrge. Õige CA/profiil/pood ja kliendi taaskäivitamine. Sertifikaadi kinnitamine on ühilduvuse piirang, mitte põhjus kinnitamise keelamiseks.

401. Klient peab kasutama sobiva konto/API domeeni jaoks Model Gate võtit; map_remote ei vaheta mandaate.

404. Kontrollige tegelikku rada; ainult päritoluga kaardistamine ei lisa /v1.

400 või messages.0 / system viga. Kontrollige päringu-protokolli ühilduvust. Päritolu ümberkirjutamine ei tõlgi sõnumirolle ega muid JSON-välju.

Mudel pole saadaval. Kasutage lubatud kanoonilist ID-d või olemasolevat pseudonüümi; kaardistamine ei nimeta ümber model.

Voogesitus saabub korraga. Kontrollige, kas ainult vastusega lisandmoodul laaditi edukalt, kliendi oma stream väärtus ja tegelik pakkuja tugi. Ärge lubage ülemaailmset päringu voogesitust.

Peatage ja eemaldage usaldus

Enne pealtkuulamise peatamist sulgege klient või eemaldage mudelivärava võti selle algse pakkuja konfiguratsioonist. Vastasel juhul võib selle järgmine otsepäring selle võtme algsele pakkujale saata. Ärge eeldage, et puhverserveri peatamine ebaõnnestub. Peatage mitmweb klahvikombinatsiooniga Ctrl+C, seejärel taastage kliendi tavalised lõpp-punkti/võtme seaded.

Windowsi jaoks Praegune kasutaja importige ülal, eemaldage ainult selle installi täpne sertifikaat:

$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.' }

Valikulise jaoks Kohalik masin importida, kasutada kõrgendatud kesta ja certutil -delstore Root $cert.Thumbprint selle asemel. Hoidke avalikku CA-faili seni, kuni olete tuvastanud ja eemaldanud sobiva usaldusväärse sertifikaadi; ära kustuta sõltumatuid usaldusväärseid juuri nime järgi.

Ülaltoodud Ubuntu/Debiani süsteemiülese impordi jaoks:

sudo rm -- /usr/local/share/ca-certificates/model-gate-local-mitmproxy.crt
sudo update-ca-certificates --fresh

Eemaldage ka kõik rakendusepõhised CA konfiguratsioonid. Taaskäivitage kliendid. Kustutage tundlikud jäädvustatud artefaktid ja pöörake spetsiaalset Model Gate'i võtit, kui see paljastati või saadeti soovimatusse sihtkohta. Need tööjaama sammud ei nõua nginxi, serverite usalduspoodide ja tootmise muutmist .env failid või Model Gate'i TLS-poliitika.

Ametlikud viited

Vaadatud 2026-09-08. Kinnitage installitud valikud mitmweb --options; kliendi püüdmine ja usalduskäitumine nõuavad endiselt teie tööjaamas testimist.