Замена крајње тачке у Виндовс-у и Линук-у

Усмерите фиксну ХТТПС крајњу тачку овлашћеног локалног клијента кроз митмпроки, са хватањем у опсегу, ТЛС поверењем, стримингом и враћањем.

Користите уграђене клијенте Основни УРЛ / Прилагођена крајња тачка / БИОК постављање кад год је то могуће. Види Водичи за повезивање и ГитХуб Цопилот. Локално ХТТПС пресретање је опционо резервно решење за клијента који не може да промени своју крајњу тачку, а не услов за коришћење Модел Гате-а.

Ово није универзално компатибилно. Клијент мора да пошаље протокол, путању и модел који подржава ваш Модел Гате налог, да прихвати ваш локални ауторитет за сертификацију и да вам омогући да конфигуришете АПИ кључ Модел Гате. Качење сертификата, приватно складиште поверења, потписани захтеви, чврсто кодирани модел или удаљени хост екстензије могу спречити да овај метод функционише. Поновно писање УРЛ-а не претвара довршене ОпенАИ ћаскања у антропске поруке или одговоре, не додаје могућности модела или замењује ГитХуб аутентификацију.

Пресрећу само апликације и саобраћај који поседујете или сте овлашћени да их прегледате. Добијте одобрење за управљане радне станице. митмпроки види дешифроване упите, изворни код и заглавља за аутентификацију; његов локални ЦА приватни кључ може имитирати ХТТПС сервере клијентима који му верују. Не делите приватне кључеве ЦА, не извозите нередиговане токове/ХАР датотеке, не излажите његов кориснички интерфејс мрежи или онемогућите ТЛС верификацију.

Шта овај пример мења

Пример пресликава тачно ово изворно порекло на порекло АПИ-ја модела приказано у документацији овог сајта:

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

Конфигуришите а наменски модел капије АПИ кључ, а не кључ ДеепСеек, у пољу акредитива клијента. Изаберите омогућен модел капије модела или псеудоним којим управља администратор каталог модела. Користите извориште АПИ-ја модела приказано у овом водичу са одговарајућим АПИ кључем; не користите панел или партнер АПИ хост.

Правило намерно не уређује ХТТП метод, путању, упит, ЈСОН тело, model, Authorization, или ЈСОН stream вредност. Мења одредиште и ХТТП Хост / ХТТП/2 :аутхорити; узводни ТЛС се повезује са новом дестинацијом. ХТТП верзија, величина/редослед заглавља, заглавља везе и уоквиривање такође могу да се разликују. То није бајт по бајт очување свих заглавља или мрежног саобраћаја.

Припремите стримовање само за одговор (оба система)

Сачувајте следеће као model-gate-response-stream.py у вашем радном именику. Иста датотека је укључена у издање унутар ПХП апликације на deploy/client-tools/; ради унутар митмпроки-ја и није потребна посебна Питхон инсталација када се користи изворни пакет.

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

Уграђени map_remote аддон преписује одредиште у захтев кука, након што се прочита тело захтева. Нека стримовање захтева буде онемогућено док се то преписивање не догоди. Немојте користити --set stream_large_bodies=1 са овим рецептом: може проследити оригинални захтев пре поновног писања. Мали додатак изнад омогућава само стриминг одговора, укључујући ССЕ, без измене ЈСОН тела или захтева за понављање.

Команде испод користе --set stream_large_bodies без знака једнакости или вредности да бисте ресетовали ово опционо подешавање на None, и експлицитно онемогућите задржавање стримованог тела. Додатак одбија касније омогућавање глобалног прага стриминга. Уклоните друге додатке за стримовање захтева/поновно писање из ове наменске сесије и решите све грешке при покретању пре него што ставите кључ у клијента. Прокси није граница акредитива затворена због грешке: прво потврдите руту лажним кључем.

Виндовс: Пример Висуал Студио-а

Инсталирајте званични изворни Виндовс пакет из митмпроки Довнлоадс. Поново отворите ПоверСхелл и проверите mitmweb --version. Немојте инсталирати унутар ВСЛ-а за овај пример Виндовс процеса.

Креирајте и верујте локалном ЦА ове инсталације

Покрените једном под истим Виндовс налогом који ће покренути прокси:

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

Након покретања, зауставите га са Цтрл+Ц. митмпроки креира свој ЦА у %USERPROFILE%\.mitmproxy. Префер Тренутни корисник верујте апликацији која ради као ви:

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

Верујте само ЦА генерисаном сопственом инсталацијом. mitmproxy-ca-cert.cer је јавни сертификат; mitmproxy-ca.pem такође садржи приватни кључ и мора остати приватан. Поново покрените Висуал Студио након промене поверења.

Само када је одобрена апликација посебно потребна Локална машина поверења, користите повишени ПоверСхелл и certutil -addstore Root "$ca" без -user. Ово је поверење у ЦА машину на целој територији, представља ширу безбедносну промену и захтева уклањање одговарајуће машине-продавнице у наставку. Надморска висина под а другачије администраторски налог може да користи другачији профил и ЦА; одржавајте конфигурацију налога, сертификата и проксија доследним.

Снимите само планирани процес и хост

Покрените изворни ПоверСхелл као администратор када то захтевају Виндовс дозволе за снимање, користећи исти налог/профил. Прво покрените Висуал Студио. Овај пример циља на име процеса 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/'

Не сме бити размака после ПоверСхелл-овог позадинског знака за наставак линије. Усидрено правило одговара само наведеном ХТТПС пореклу, укључујући експлицитни порт 443; име хоста добављача које се појављује унутар упита или друго име хоста се не преписује. Листа дозвољених хостова избегава дешифровање неповезаних одредишта из изабраног процеса. lazy плус upstream_cert=false избегава непотребну везу са оригиналним провајдером за откривање сертификата. ТЛС верификација стварне упстреам је и даље омогућена.

Висуал Студио је не ВС Цоде. Екстензија може слати захтеве преко засебног СервицеХуб-а, језичког сервера или помоћног процеса, а не devenv. Идентификујте стварни процес поседовања мреже пре него што проширите снимање. Да бисте прегледали Висуал Студио инстанце:

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

Замените local:devenv са local:12345 користећи стварни ПИД или листу експлицитно идентификованих ПИД-ова раздвојених зарезима. ПИД-ови се мењају након поновног покретања. Немојте користити $PID за прилагођену ПоверСхелл променљиву; односи се на ПоверСхелл-ов сопствени процес. Не прелазите на целу машину --mode local само да би се појавио захтев који недостаје.

Линук: исто мапирање опсега

Инсталирајте тренутну званичну митмпроки верзију и проверите mitmweb --version и uname -r. Локално снимање користи еБПФ; званични ниво подршке је Линук 6.8. Потребан му је привилеговани помоћник sudo. Трчи mitmweb као ваш обичан корисник са --mode local:... на командној линији тако да може затражити ту привилегију; избегавајте пребацивање целог проксија на роот и случајно коришћење /root/.mitmproxy.

Прво иницијализујте ЦА под својим уобичајеним налогом, а затим престаните са Цтрл+Ц:

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

Преферирајте документовани прилагођени ЦА механизам апликације. Он Убунту/Дебиан, апликације које користе складиште системског поверења могу уместо тога да користе ову опциону инсталацију на нивоу система:

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

Поново покрените клијента. Приватном складишту поверења Јава/Ноде/претраживача или ограниченој апликацији може бити потребно сопствено документовано подешавање поверења; увоз у ОС продавницу не гарантује да му сваки клијент верује. Друге дистрибуције користе сопствене процедуре ЦА-сторе.

За локални ВС Цоде процес под називом code, мапирање је:

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

Као и на Виндовс-у, користите стварни процес/ПИД за производњу захтева, а не нужно прозор уређивача. Инспецт ps -eo pid,comm,args и замена local:12345 по потреби. Подударање Линук имена је ограничено на првих 16 знакова. Локално снимање на ВСЛ-у није подржано, а контејнерима је потребно умрежавање домаћина за овај режим. Саобраћај са хоста ССХ/удаљеног проширења мора бити конфигурисан на машини на којој се тај процес покреће, а не само на радној површини.

Стреаминг, путање и други провајдери

Додатак само за одговор прослеђује ХТТП одговоре без чекања на комплетан одговор, што је важно за испоруку ССЕ токена. Тела захтева остају у баферу до map_remote је променио одредиште. Стреаминг тела се подразумевано не задржавају за инспекцију; заглавља и статус остају корисни. Не омогућавајте задржавање тела или извоз протока само да бисте решили проблем са кључем. Ово подешавање не мења клијентов ЈСОН stream заставицу и не може да направи ток добављача који не стримује.

Подразумевано мапирање чува путање. Клијент шаље /chat/completions без /v1 ће и даље послати ту путању до Модел Гате-а и можда ће примити 404. Само за изворни АПИ за чије се путање зна да захтевају ову нормализацију, замените map_remote вредност са:

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

Ово намерно додаје један /v1/ префикса, чувајући постојећи, преосталу путању и упит. То је засебна варијанта која мења пут, а не пример само за порекло. Верификујте резултујућу крајњу тачку пре него што пошаљете прави упит.

За другог провајдера, замените тачно изворно име хоста обоје allow-hosts и map_remote, избегавајте тачке редовног израза и изаберите исправно циљно порекло/путање. Држите меч усидрен са ^https:// и граница имена хоста; никада не користите широку замену подстринга. Постојећи сачувани додаци или правила преписивања могу да промене резултат, па проверите своју митмпроки конфигурацију пре тестирања.

Прихватање и решавање проблема

Прво пробно рутирање са лажним акредитивима и неосетљивим промптом; очекује се неуспех аутентификације на предвиђеном циљу. Тек након што је одредиште потврђено, направите један намерно мали захтев са наменским ограниченим кључем; закључак може бити наплатив. У митмвеб-у, проверите да ли је одредиште предвиђени хост АПИ врата модела, да ли је путања подржана, да ИД/псеудоним модела постоји и да је ХТТП статус успешан. Проверите историју захтева модела капије и потврдите да стримовани текст постепено стиже. Немојте објављивати заглавље овлашћења или извоз тока као доказ.

Нема снимљеног захтева. Стварни помоћник/ПИД, привилегије хватања, локално и удаљено извршавање, изворно име хоста и подршка кернелу.

Грешка ТЛС сертификата. Исправан ЦА/профил/продавница и поновно покретање клијента. Качење сертификата је ограничење компатибилности, а не разлог за онемогућавање верификације.

401. Клијент мора да користи кључ модела капије за одговарајући налог/АПИ домен; мап_ремоте не размењује акредитиве.

404. Прегледајте стварну путању; мапирање само порекла не додаје /v1.

400 или messages.0 / system грешка. Проверите компатибилност протокола захтева. Поновно писање порекла не преводи улоге поруке или друга ЈСОН поља.

Модел није доступан. Користите омогућен канонски ИД или постојећи псеудоним; мапирање не преименује model.

Стримовање стиже одједном. Проверите да ли се програмски додатак само за одговор успешно учитао, клијентов stream вредност и стварна подршка провајдера. Не омогућавајте глобални стримовање захтева.

Зауставите и уклоните поверење

Пре него што зауставите пресретање, затворите клијента или уклоните кључ Модел Гате из његове оригиналне конфигурације добављача. У супротном, његов следећи директни захтев може послати тај кључ оригиналном провајдеру. Немојте претпостављати да заустављање проксија не успе да затвори. Зауставите митмвеб помоћу Цтрл+Ц, а затим вратите нормалне поставке крајње тачке/кључа клијента.

За Виндовс Тренутни корисник увоз изнад, уклоните само тачан сертификат ове инсталације:

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

За опционо Локална машина импорт, користите повишену шкољку и certutil -delstore Root $cert.Thumbprint уместо тога. Чувајте јавну ЦА датотеку док не идентификујете и уклоните одговарајући поуздани сертификат; немојте брисати неповезане поуздане корене по имену.

За Убунту/Дебиан системски увоз изнад:

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

Такође уклоните било коју конфигурацију ЦА специфичну за апликацију. Поново покрените клијенте. Избришите осетљиве снимљене артефакте и ротирајте наменски кључ модела капије ако је био изложен или послан на нежељено одредиште. Ови кораци радне станице не захтевају промену нгинк-а, складишта поверења сервера, производње .env датотеке или ТЛС политике Модел Гате-а.

Званичне референце

Прегледано 08.09.2026. Потврдите опције према вашим инсталираним mitmweb --options; хватање клијената и понашање поверења и даље захтевају тестирање на вашој радној станици.