Galapunkta ignorēšana operētājsistēmās Windows un Linux

Maršrutējiet pilnvarota vietējā klienta fiksēto HTTPS galapunktu, izmantojot mitmproxy, ar tvērumu, TLS uzticamību, straumēšanu un atcelšanu.

Izmantojiet klienta iebūvēto Pamata URL/Pielāgots galapunkts/BYOK iestatījumu, kad vien iespējams. Skat Savienojuma ceļveži un GitHub Copilot. Lokālā HTTPS pārtveršana ir izvēles atkāpšanās iespēja klientam, kurš nevar mainīt galapunktu, nevis modeļa vārtu izmantošanas prasība.

Tas nav universāli saderīgs. Klientam ir jānosūta protokols, ceļš un modelis, ko atbalsta jūsu Model Gate konts, jāpieņem vietējā sertifikāta iestāde un jāļauj konfigurēt Model Gate API atslēgu. Sertifikātu piespraušana, privāts uzticamības veikals, parakstīti pieprasījumi, cietkodēts modelis vai attālā paplašinājuma resursdators var novērst šīs metodes darbību. URL pārrakstīšana nepārvērš OpenAI tērzēšanas pabeigšanas antropiskos ziņojumos vai atbildēs, nepievieno modeļa iespējas vai neaizstāj GitHub autentifikāciju.

Pārtveriet tikai lietojumprogrammas un trafiku, kas jums pieder vai jums ir tiesības to pārbaudīt. Saņemiet apstiprinājumu pārvaldītajām darbstacijām. mitmproxy redz atšifrētas uzvednes, avota kodu un autentifikācijas galvenes; tās vietējā CA privātā atslēga var uzdoties par HTTPS serveriem klientiem, kuri tai uzticas. Nekopīgojiet CA privātās atslēgas, neeksportējiet nerediģētas plūsmas/HAR failus, nepakļaujiet tās lietotāja saskarni tīklam un neatspējojiet TLS verifikāciju.

Ko maina šis piemērs

Piemērā tieši šī avota izcelsme ir kartēta ar modeļa API izcelsmi, kas parādīta šīs vietnes dokumentācijā:

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

Konfigurēt a īpaša Model Gate API atslēga, nevis DeepSeek atslēga, klienta akreditācijas datu laukā. Izvēlieties iespējotu Model Gate modeli vai administratora pārvaldītu aizstājvārdu no modeļu katalogs. Izmantojiet šajā rokasgrāmatā parādīto modeļa API izcelsmi ar tai atbilstošo API atslēgu; neizmantojiet paneli vai partnera API saimniekdatoru.

Kārtula ar nolūku nerediģē HTTP metodi, ceļu, vaicājumu, JSON pamattekstu, model, Authorizationvai JSON stream vērtību. Tas maina galamērķi un HTTP Host / HTTP/2 :autoritāti; augšpus TLS izveido savienojumu ar jauno galamērķi. Var atšķirties arī HTTP versija, galvenes korpuss/kārtība, savienojuma galvenes un ietvars. Tā nav visu galveņu vai tīkla trafika saglabāšana pa baitiem.

Sagatavot tikai atbildes straumēšanu (abas sistēmas)

Saglabājiet tālāk norādīto kā model-gate-response-stream.py savā darba direktorijā. Tas pats fails ir iekļauts laidienā PHP lietojumprogrammas iekšpusē deploy/client-tools/; tas darbojas iekš mitmproxy, un, izmantojot vietējo pakotni, nav nepieciešama atsevišķa Python instalēšana.

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

Iebūvētais map_remote papildinājums pārraksta galamērķi mapē pieprasījumu āķis, pēc pieprasījuma pamatteksta nolasīšanas. Atspējojiet pieprasījumu straumēšanu, līdz tiek veikta pārrakstīšana. Nelietot --set stream_large_bodies=1 ar šo recepti: tā var pārsūtīt sākotnējo pieprasījumu pirms pārrakstīšanas. Iepriekš minētais nelielais papildinājums iespējo tikai atbildes straumēšanu, tostarp SSE, nemainot JSON pamattekstu un neatkārtojot pieprasījumus.

Tālāk tiek izmantotas komandas --set stream_large_bodies bez vienādības zīmes vai vērtības lai atiestatītu šo izvēles iestatījumu uz None, un skaidri atspējojiet straumētā ķermeņa saglabāšanu. Papildinājums noraida globālās straumēšanas sliekšņa iespējošanu vēlāk. Noņemiet citus pieprasījumu straumēšanas/pārrakstīšanas papildinājumus no šīs īpašās sesijas un atrisiniet startēšanas kļūdas pirms atslēgas ievietošanas klientā. Starpniekserveris nav kļūdaini slēgta akreditācijas datu robeža: vispirms apstipriniet maršrutu ar fiktīvu atslēgu.

Windows: Visual Studio piemērs

Instalējiet oficiālo vietējo Windows pakotni no mitmproxy lejupielādes. Atkārtoti atveriet PowerShell un pārbaudiet mitmweb --version. Šajā Windows procesa piemērā neinstalējiet WSL ietvaros.

Izveidojiet un uzticieties šīs instalācijas vietējai CA

Sāciet vienreiz ar to pašu Windows kontu, kurā tiks palaists starpniekserveris:

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

Pēc palaišanas apturiet to ar Ctrl+C. mitmproxy izveido savu CA iekšā %USERPROFILE%\.mitmproxy. Dod priekšroku Pašreizējais lietotājs uzticība lietojumprogrammai, kas darbojas kā jūs:

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

Uzticieties tikai jūsu instalācijas radītajai CA. mitmproxy-ca-cert.cer ir publiskais sertifikāts; mitmproxy-ca.pem satur arī privāto atslēgu, un tai ir jāpaliek privātai. Pēc uzticības maiņas restartējiet Visual Studio.

Tikai tad, ja tas ir īpaši nepieciešams apstiprinātam pieteikumam Vietējā mašīna uzticieties, izmantojiet paaugstinātu PowerShell un certutil -addstore Root "$ca" bez -user. Tas uzticas CA visā datorā, ir plašākas drošības izmaiņas, un tālāk ir nepieciešama atbilstošā mašīnu veikala noņemšana. Paaugstinājums zem a dažādi administratora konts var izmantot citu profilu un CA; saglabāt konta, sertifikāta un starpniekservera konfigurācijas konsekvenci.

Uzņemiet tikai paredzēto procesu un saimniekdatoru

Palaidiet vietējo PowerShell kā administratoru, ja to pieprasa Windows tveršanas atļaujas, izmantojot to pašu kontu/profilu. Vispirms palaidiet Visual Studio. Šis piemērs attiecas uz procesa nosaukumu 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/'

Aiz PowerShell rindas turpinājuma atzīmes nedrīkst būt atstarpes. Noenkurotā kārtula atbilst tikai norādītajam HTTPS izcelsmei, tostarp precīzam 443. portam; nodrošinātāja resursdatora nosaukums, kas parādās vaicājumā, vai cits resursdatora nosaukums netiek pārrakstīts. Saimniekdatora atļauju saraksts izvairās no atlasītā procesa nesaistītu galamērķu atšifrēšanas. lazy plus upstream_cert=false izvairās no nevajadzīga sertifikātu meklēšanas savienojuma ar sākotnējo pakalpojumu sniedzēju. Joprojām ir iespējota faktiskā augšteces TLS pārbaude.

Visual Studio ir VS kods. Paplašinājums var nosūtīt pieprasījumus, izmantojot atsevišķu ServiceHub, valodas serveri vai palīgprocesu, nevis devenv. Pirms tveršanas paplašināšanas nosakiet faktisko tīkla īpašumtiesību procesu. Lai pārbaudītu Visual Studio gadījumus:

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

Aizstāt local:devenv ar local:12345 izmantojot faktisko PID vai komatatdalītu sarakstu ar skaidri identificētiem PID. PID mainās pēc restartēšanas. Nelietot $PID pielāgotam PowerShell mainīgajam; tas attiecas uz paša PowerShell procesu. Nepārslēdzieties uz visu mašīnu --mode local tikai tāpēc, lai parādītos trūkstošais pieprasījums.

Linux: tā pati tvēruma kartēšana

Instalējiet pašreizējo oficiālo mitmproxy versiju un pārbaudiet mitmweb --version un uname -r. Local Capture izmanto eBPF; Oficiālā atbalsta grīda ir Linux 6.8. Tam ir nepieciešams priviliģēts palīgs, kas sākts sudo. Skrien mitmweb kā jūsu parastais lietotājs ar --mode local:... komandrindā, lai tā varētu pieprasīt šo privilēģiju; izvairieties no visa starpniekservera pārslēgšanas uz saknes un nejaušas lietošanas /root/.mitmproxy.

Vispirms inicializējiet CA savā parastajā kontā, pēc tam pārtrauciet Ctrl+C:

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

Dodiet priekšroku lietojumprogrammas dokumentētam pielāgotā CA mehānismam. Ieslēgts Ubuntu/Debian, lietojumprogrammas, kas izmanto sistēmas uzticamības veikalu, tā vietā var izmantot šo izvēles, visas sistēmas instalāciju:

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

Restartējiet klientu. Privātam Java/mezgla/pārlūka uzticamības krātuvei vai ierobežotai lietojumprogrammai var būt nepieciešama sava dokumentēta uzticamības iestatīšana; importēšana OS veikalā negarantē, ka katrs klients tam uzticas. Citi izplatījumi izmanto savas CA veikala procedūras.

Vietējam VS koda procesam ar nosaukumu code, kartējums ir:

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

Tāpat kā operētājsistēmā Windows, izmantojiet faktisko pieprasījuma veidošanas procesu/PID, ne vienmēr redaktora logu. Pārbaudīt ps -eo pid,comm,args un aizstājējs local:12345 pēc vajadzības. Linux nosaukuma atbilstība ir ierobežota līdz pirmajām 16 rakstzīmēm. Vietējā uztveršana WSL tīklā netiek atbalstīta, un šim režīmam konteineriem ir nepieciešams saimniekdatora tīkls. Datplūsma no SSH/attālā paplašinājuma resursdatora ir jākonfigurē datorā, kurā darbojas šis process, nevis tikai darbvirsmā.

Straumēšana, ceļi un citi pakalpojumu sniedzēji

Tikai atbildes papildinājums pārsūta HTTP atbildes, negaidot pilnīgu atbildi, kas ir svarīgi SSE marķiera piegādei. Pieprasījumu struktūras paliek buferizētas līdz map_remote ir mainījis galamērķi. Straumēšanas struktūras pēc noklusējuma netiek paturētas pārbaudei; galvenes un statuss joprojām ir noderīgi. Neiespējojiet ķermeņa aizturi vai plūsmas eksportēšanu tikai atslēgas problēmu novēršanai. Šis iestatījums nemaina klienta JSON stream atzīmējiet un nevar izveidot nestraumēšanas nodrošinātāja straumi.

Noklusējuma kartēšana saglabā ceļus. Klients sūta /chat/completions bez /v1 joprojām nosūtīs šo ceļu uz Model Gate un var saņemt 404. Tikai avota API, kuras ceļiem ir nepieciešama šī normalizācija, nomainiet map_remote vērtība ar:

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

Tas apzināti pievieno vienu /v1/ prefiksu, saglabājot esošu, atlikušo ceļu un vaicājumu. Tas ir atsevišķs variants, kas maina ceļu, nevis vienīgais izcelsmes piemērs. Pirms īsta uzvednes nosūtīšanas pārbaudiet iegūto galapunktu.

Ja izmantojat citu pakalpojumu sniedzēju, nomainiet precīzu avota saimniekdatora nosaukumu gan allow-hosts un map_remote, izvairieties no regulārās izteiksmes punktiem un izvēlieties pareizo mērķa izcelsmi/ceļu. Saglabājiet spēli noenkurotu ar ^https:// un resursdatora nosaukuma robeža; nekad neizmantojiet plašu apakšvirknes nomaiņu. Esošie saglabātie papildinājumi vai pārrakstīšanas kārtulas var mainīt rezultātu, tāpēc pirms testēšanas pārbaudiet mitmproxy konfigurāciju.

Pieņemšana un problēmu novēršana

Pirmā testa maršrutēšana ar fiktīvu akreditācijas datu un nejutīgu uzvedni; paredzama autentifikācijas kļūme paredzētajā mērķī. Tikai pēc galamērķa apstiprināšanas veiciet vienu apzināti nelielu pieprasījumu ar īpašu ierobežotu atslēgu; secinājums var būt apmaksājams. Mitmweb pārbaudiet, vai galamērķis ir paredzētais Model Gate API resursdators, ceļš tiek atbalstīts, modeļa ID/alias pastāv un HTTP statuss ir veiksmīgs. Pārbaudiet modeļa vārtu pieprasījumu vēsturi un apstipriniet, ka straumēts teksts tiek saņemts pakāpeniski. Nepublicējiet autorizācijas galveni vai plūsmas eksportu kā pierādījumu.

Nav fiksēta pieprasījuma. Faktiskais palīgs/PID, uztveršanas privilēģijas, vietējā un attālā izpilde, avota resursdatora nosaukums un kodola atbalsts.

TLS sertifikāta kļūme. Pareiza CA/profila/veikala un klienta restartēšana. Sertifikāta piespraušana ir saderības ierobežojums, nevis iemesls verifikācijas atspējošanai.

401. Klientam ir jāizmanto Model Gate atslēga atbilstošajam kontam/API domēnam; map_remote neapmainās ar akreditācijas datiem.

404. Pārbaudiet faktisko ceļu; tikai izcelsmes kartēšana nepievieno /v1.

400 vai messages.0 / system kļūda. Pārbaudiet pieprasījuma un protokola saderību. Sākotnējā pārrakstīšana netulko ziņojumu lomas vai citus JSON laukus.

Modelis nav pieejams. Izmantojiet iespējotu kanonisko ID vai esošu aizstājvārdu; kartēšana nepārdēvē model.

Straumēšana notiek uzreiz. Pārbaudiet, vai klienta tikai atbildes papildinājums ir veiksmīgi ielādēts stream vērtību un faktisko pakalpojumu sniedzēja atbalstu. Neiespējot globālo pieprasījumu straumēšanu.

Apturiet un noņemiet uzticību

Pirms pārtveršanas apturēšanas aizveriet klientu vai noņemiet Model Gate atslēgu no sākotnējās nodrošinātāja konfigurācijas. Pretējā gadījumā nākamais tiešais pieprasījums var nosūtīt šo atslēgu sākotnējam pakalpojumu sniedzējam. Nedomājiet, ka starpniekservera apturēšana neizdodas aizvērt. Apturiet mitmweb ar Ctrl+C, pēc tam atjaunojiet klienta parastos galapunkta/atslēgas iestatījumus.

Operētājsistēmai Windows Pašreizējais lietotājs importēt iepriekš, noņemiet tikai šīs instalācijas precīzu sertifikātu:

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

Par neobligātu Vietējā mašīna importēt, izmantot paaugstinātu apvalku un certutil -delstore Root $cert.Thumbprint vietā. Saglabājiet publisko CA failu, līdz esat identificējis un noņēmis atbilstošo uzticamo sertifikātu; neizdzēsiet nesaistītās uzticamās saknes pēc nosaukuma.

Iepriekš minētajam Ubuntu/Debian sistēmas mēroga importam:

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

Noņemiet arī visas lietojumprogrammas CA konfigurācijas. Restartējiet klientus. Izdzēsiet sensitīvos uzņemtos artefaktus un pagrieziet īpašo Model Gate atslēgu, ja tā tika atklāta vai nosūtīta uz neparedzētu galamērķi. Šīs darbstacijas darbības nav jāmaina nginx, serveru uzticamības veikali, ražošana .env failus vai Model Gate TLS politiku.

Oficiālās atsauces

Apskatīts 2026-09-08. Apstipriniet instalētās opcijas mitmweb --options; klientu uztveršanai un uzticēšanās uzvedībai joprojām ir nepieciešama pārbaude jūsu darbstacijā.