Windows ve Linux'ta uç noktayı geçersiz kılma

Yetkili bir yerel istemcinin sabit HTTPS uç noktasını kapsamlı yakalama, TLS güveni, akış ve geri alma özellikleriyle mitmproxy aracılığıyla yönlendirin.

Bir istemcinin yerleşik özelliğini kullanın Temel URL / Özel uç nokta / BYOK mümkün olduğunda ayarlama yapın. Görmek Bağlantı kılavuzları Ve GitHub Yardımcı Pilotu. Yerel HTTPS müdahalesi, uç noktasını değiştiremeyen bir istemci için isteğe bağlı bir geri dönüş olup, Model Kapısı'nın kullanılması için bir gereklilik değildir.

Bu evrensel olarak uyumlu değildir. İstemcinin, Model Gate hesabınız tarafından desteklenen bir protokol, yol ve model göndermesi, yerel sertifika yetkinizi kabul etmesi ve bir Model Gate API anahtarı yapılandırmanıza izin vermesi gerekir. Sertifika sabitleme, özel bir güven deposu, imzalı istekler, sabit kodlanmış bir model veya uzak uzantı ana bilgisayarı bu yöntemin çalışmasını engelleyebilir. URL'nin yeniden yazılması, OpenAI Sohbet Tamamlamalarını Antropik Mesajlara veya Yanıtlara dönüştürmez, model özellikleri eklemez veya GitHub kimlik doğrulamasının yerini almaz.

Yalnızca sahip olduğunuz veya incelemeye yetkili olduğunuz uygulamalara ve trafiğe müdahale edin. Yönetilen iş istasyonlarında onay alın. mitmproxy, şifresi çözülmüş istemleri, kaynak kodunu ve kimlik doğrulama başlıklarını görür; yerel CA özel anahtarı, kendisine güvenen istemciler için HTTPS sunucularının kimliğine bürünebilir. CA özel anahtarlarını paylaşmayın, düzenlenmemiş akışları/HAR dosyalarını dışa aktarmayın, kullanıcı arayüzünü ağa göstermeyin veya TLS doğrulamasını devre dışı bırakmayın.

Bu örnek neyi değiştiriyor?

Örnek, tam olarak bu kaynak kaynağını bu sitenin belgelerinde gösterilen Model API kaynağıyla eşleştirir:

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

Bir yapılandırın özel Model Geçidi API anahtarıistemcinin kimlik bilgisi alanında DeepSeek anahtarı değil. Etkinleştirilmiş bir Model Kapısı modeli veya yönetici tarafından yönetilen takma adı seçin. model kataloğu. Bu kılavuzda gösterilen Model API kaynağını eşleşen API anahtarıyla birlikte kullanın; paneli veya İş Ortağı API ana bilgisayarını kullanmayın.

Kural, HTTP yöntemini, yolunu, sorgusunu, JSON gövdesini ve içeriğini kasıtlı olarak düzenlemez. model, Authorizationveya JSON stream değer. Hedefi ve HTTP Ana Bilgisayarını / HTTP/2 :yetkisini değiştirir; yukarı akış TLS yeni hedefe bağlanır. HTTP sürümü, başlık gövdesi/sıralaması, bağlantı başlıkları ve çerçeveleme de farklılık gösterebilir. Tüm başlıkların veya ağ trafiğinin bayt bazında korunması değildir.

Yalnızca yanıt akışını hazırlama (her iki sistem)

Aşağıdakileri farklı kaydet model-gate-response-stream.py çalışma dizininizde. Aynı dosya şu adresteki PHP uygulamasının içindeki sürüme de dahil edilmiştir: deploy/client-tools/; mitmproxy içinde çalışır ve yerel paketi kullanırken ayrı bir Python kurulumuna ihtiyaç duymaz.

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

Yerleşik map_remote addon, içindeki hedefi yeniden yazar rica etmek kanca, istek gövdesi okunduktan sonra. Bu yeniden yazma gerçekleşene kadar istek akışını devre dışı bırakın. Kullanma --set stream_large_bodies=1 bu tarifle: yeniden yazmadan önce orijinal isteği iletebilir. Yukarıdaki küçük eklenti, JSON gövdesini değiştirmeden veya istekleri yeniden yürütmeden, SSE dahil yalnızca yanıt akışını etkinleştirir.

Aşağıdaki komutlar şunu kullanır: --set stream_large_bodies eşittir işareti veya değeri olmadan bu isteğe bağlı ayarı sıfırlamak için Noneve akış gövdesini saklamayı açıkça devre dışı bırakın. Eklenti daha sonra küresel akış eşiğini etkinleştirmeyi reddediyor. Bu özel oturumdan diğer istek akışı/yeniden yazma eklentilerini kaldırın ve istemciye bir anahtar yerleştirmeden önce tüm başlatma hatalarını çözün. Proxy, başarısızlıkla kapatılan bir kimlik bilgisi sınırı değildir: önce rotayı boş bir anahtarla doğrulayın.

Windows: Visual Studio örneği

Resmi yerel Windows paketini şuradan yükleyin: mitmproxy İndirilenler. PowerShell'i yeniden açın ve kontrol edin mitmweb --version. Bu Windows işlemi örneği için WSL'nin içine kurulum yapmayın.

Bu kurulumun yerel CA'sını oluşturun ve ona güvenin

Proxy'yi çalıştıracak aynı Windows hesabıyla bir kez başlayın:

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

Başlattıktan sonra şunu durdurun: Ctrl+C. mitmproxy CA'sını oluşturur %USERPROFILE%\.mitmproxy. Tercih etmek Mevcut Kullanıcı sizin gibi çalışan bir uygulamaya güvenin:

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

Yalnızca kendi kurulumunuz tarafından oluşturulan CA'ya güvenin. mitmproxy-ca-cert.cer kamu sertifikasıdır; mitmproxy-ca.pem aynı zamanda özel anahtarı da içerir ve özel kalmalıdır. Güveni değiştirdikten sonra Visual Studio'yu yeniden başlatın.

Yalnızca onaylanmış bir uygulamanın özel olarak ihtiyaç duyduğu durumlarda Yerel Makine güvenin, yükseltilmiş bir PowerShell kullanın ve certutil -addstore Root "$ca" olmadan -user. Bu, makine genelinde CA'ya güvenir, daha geniş bir güvenlik değişikliğidir ve aşağıdaki eşleşen makine deposunun kaldırılmasını gerektirir. Yükseklik bir farklı yönetici hesabı farklı bir profil ve CA kullanabilir; hesap, sertifika ve proxy yapılandırmasını tutarlı tutun.

Yalnızca amaçlanan işlemi ve ana bilgisayarı yakalayın

Windows yakalama izinleri gerektirdiğinde aynı hesabı/profili kullanarak yerel PowerShell'i Yönetici olarak çalıştırın. İlk önce Visual Studio'yu başlatın. Bu örnek işlem adını hedefliyor 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/'

PowerShell'in satır devamı geri işaretinden sonra boşluk olmamalıdır. Bağlantılı kural, açık bağlantı noktası 443 de dahil olmak üzere yalnızca belirtilen HTTPS kaynağıyla eşleşir; bir sorgunun içinde yer alan sağlayıcı ana bilgisayar adı veya başka bir ana bilgisayar adı yeniden yazılmaz. Ana makine izin verilenler listesi, seçilen işlemden ilgisiz hedeflerin şifresinin çözülmesini önler. lazy artı upstream_cert=false Orijinal sağlayıcıyla gereksiz bir sertifika koklama bağlantısını önler. Gerçek yukarı akışın TLS doğrulaması hala etkin.

Visual Studio: Olumsuz VS Kodu. Bir uzantı, istekleri ayrı bir ServiceHub, dil sunucusu veya yardımcı süreç aracılığıyla gönderebilir. devenv. Yakalamayı genişletmeden önce gerçek ağ sahibi olma sürecini tanımlayın. Visual Studio örneklerini incelemek için:

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

Yer değiştirmek local:devenv ile local:12345 gerçek PID'yi veya açıkça tanımlanmış PID'lerin virgülle ayrılmış listesini kullanarak. PID'ler yeniden başlatmanın ardından değişir. Kullanma $PID özel bir PowerShell değişkeni için; PowerShell'in kendi sürecini ifade eder. Tüm makineye geçmeyin --mode local yalnızca eksik bir isteğin görünmesini sağlamak için.

Linux: aynı kapsamlı eşleme

Geçerli bir resmi mitmproxy derlemesi yükleyin ve kontrol edin mitmweb --version Ve uname -r. Yerel Yakalama eBPF'yi kullanır; resmi destek katı Linux'tur 6.8. Baştan sona ayrıcalıklı bir yardımcıya ihtiyacı var sudo. Koşmak mitmweb sıradan kullanıcınız olarak --mode local:... bu ayrıcalığı talep edebilmesi için komut satırında; proxy'nin tamamını root'a geçirmekten ve yanlışlıkla kullanmaktan kaçının /root/.mitmproxy.

Öncelikle CA'yı normal hesabınız altında başlatın, ardından şunu durdurun: Ctrl+C:

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

Uygulamanın belgelenmiş özel CA mekanizmasını tercih edin. Açık Ubuntu/Debian, sistem güven deposunu kullanan uygulamalar bunun yerine bu isteğe bağlı, sistem çapındaki yüklemeyi kullanabilir:

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

İstemciyi yeniden başlatın. Özel bir Java/Düğüm/tarayıcı güven deposu veya sınırlı bir uygulama, kendi belgelenmiş güven kurulumuna ihtiyaç duyabilir; işletim sistemi mağazasına aktarma her müşterinin ona güveneceğini garanti etmez. Diğer dağıtımlar kendi CA deposu prosedürlerini kullanır.

Adlandırılmış yerel bir VS Kodu işlemi için codeeşleme şu şekildedir:

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

Windows'ta olduğu gibi, düzenleyici penceresini değil, gerçek istek üreten süreci/PID'yi kullanın. İncelemek ps -eo pid,comm,args ve yerine local:12345 gerektiği gibi. Linux adı eşleştirme ilk 16 karakterle sınırlıdır. WSL'de Yerel Yakalama desteklenmez ve kapsayıcıların bu mod için ana bilgisayar ağına ihtiyacı vardır. Bir SSH/uzak uzantı ana bilgisayarından gelen trafiğin yalnızca masaüstünüzde değil, bu işlemin çalıştığı makinede yapılandırılması gerekir.

Akış, yollar ve diğer sağlayıcılar

Yalnızca yanıt eklentisi, SSE belirteci teslimi için önemli olan yanıtın tamamını beklemeden HTTP yanıtlarını iletir. İstek gövdeleri şu ana kadar arabelleğe alınır: map_remote varış noktasını değiştirdi. Akış gövdeleri varsayılan olarak inceleme için tutulmaz; başlıklar ve durum yararlı olmaya devam ediyor. Yalnızca bir anahtarda sorun gidermek için gövde tutmayı veya akış dışa aktarmayı etkinleştirmeyin. Bu ayar istemcinin JSON'unu değiştirmez stream işaretliyor ve akış dışı sağlayıcı akışı oluşturamıyor.

Varsayılan eşleme yolları korur. Bir müşteri gönderiyor /chat/completions olmadan /v1 yine de bu yolu Model Gate'e gönderecek ve 404'ü alabilir. Yalnızca yollarının bu normalleştirmeyi gerektirdiği bilinen bir kaynak API için, değiştirin map_remote şununla değer:

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

Bu kasıtlı olarak bir tane ekler /v1/ önek, mevcut olanı, kalan yolu ve sorguyu koruyarak. Bu, yalnızca kökene özgü bir örnek değil, ayrı bir yol değiştiren değişkendir. Gerçek bir bilgi istemi göndermeden önce ortaya çıkan uç noktayı doğrulayın.

Farklı bir sağlayıcı için, kaynak ana bilgisayar adının tamamını değiştirin. ikisi birden allow-hosts Ve map_remote, normal ifade noktalarından kurtulun ve doğru hedef kaynağı/yolu seçin. Maçı sabit tutun ^https:// ve bir ana bilgisayar adı sınırı; asla geniş bir alt dize değişimi kullanmayın. Mevcut kayıtlı eklentiler veya yeniden yazma kuralları sonucu değiştirebilir; bu nedenle test etmeden önce mitmproxy yapılandırmanızı inceleyin.

Kabul ve sorun giderme

Sahte bir kimlik bilgisi ve hassas olmayan bir istemle ilk yönlendirmeyi test edin; amaçlanan hedefte bir kimlik doğrulama hatası bekleniyor. Ancak varış yeri onaylandıktan sonra, özel sınırlı bir anahtarla kasıtlı olarak küçük bir talepte bulunun; çıkarım faturalandırılabilir. Mitmweb'de hedefin amaçlanan Model Gate API ana bilgisayarı olup olmadığını, yolun desteklendiğini, model kimliğinin/takma adın mevcut olduğunu ve HTTP durumunun başarılı olduğunu kontrol edin. Model Geçidi İstek Geçmişini kontrol edin ve akış halindeki metnin aşamalı olarak geldiğini doğrulayın. Kanıt olarak Yetkilendirme başlığını veya akış dışa aktarımını yayınlamayın.

Yakalanan istek yok. Gerçek yardımcı/PID, yakalama ayrıcalıkları, yerel ve uzaktan yürütme, kaynak ana bilgisayar adı ve çekirdek desteği.

TLS sertifikası hatası. CA/profil/depolama ve istemci yeniden başlatma işlemlerini düzeltin. Sertifika sabitleme, doğrulamayı devre dışı bırakmak için bir neden değil, bir uyumluluk sınırlamasıdır.

401. Müşterinin, eşleşen hesap/API alanı için bir Model Geçidi anahtarı kullanması gerekir; Map_remote kimlik bilgilerini değiştirmez.

404. Gerçek yolu inceleyin; Yalnızca kaynak eşlemesi eklenmiyor /v1.

400 veya messages.0 / system hata. İstek protokolü uyumluluğunu kontrol edin. Kaynak yeniden yazma işlemi, mesaj rollerini veya diğer JSON alanlarını çevirmez.

Model kullanılamıyor. Etkinleştirilmiş bir standart kimliği veya mevcut takma adı kullanın; eşleme yeniden adlandırılmıyor model.

Akış bir anda geliyor. Yalnızca yanıt eklentisinin başarıyla yüklendiğini kontrol edin; istemcinin stream değer ve gerçek sağlayıcı desteği. Genel istek akışını etkinleştirmeyin.

Güveni durdurun ve kaldırın

Müdahaleyi durdurmadan önce istemciyi kapatın veya Model Geçidi anahtarını orijinal sağlayıcı yapılandırmasından çıkarın. Aksi takdirde, bir sonraki doğrudan talep bu anahtarı orijinal sağlayıcıya gönderebilir. Proxy'yi durdurmanın başarısız olduğunu varsaymayın. Mitmweb'i Ctrl+C ile durdurun, ardından istemcinin normal uç nokta/anahtar ayarlarını geri yükleyin.

Windows için Mevcut Kullanıcı yukarıya içe aktarın, yalnızca bu kurulumun tam sertifikasını kaldırın:

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

İsteğe bağlı olarak Yerel Makine içe aktarın, yükseltilmiş bir kabuk kullanın ve certutil -delstore Root $cert.Thumbprint yerine. Eşleşen güvenilir sertifikayı belirleyip kaldırıncaya kadar genel CA dosyasını saklayın; ilgisiz güvenilen kökleri ada göre silmeyin.

Yukarıdaki Ubuntu/Debian sistem genelinde içe aktarma için:

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

Uygulamaya özel CA yapılandırmalarını da kaldırın. İstemcileri yeniden başlatın. Yakalanan hassas yapıları silin ve açığa çıkması veya istenmeyen bir hedefe gönderilmesi durumunda özel Model Kapısı anahtarını döndürün. Bu iş istasyonu adımları, nginx'in, sunucu güven depolarının, üretimin değiştirilmesini gerektirmez .env dosyaları veya Model Gate'in TLS politikası.

Resmi referanslar

2026-09-08 tarihinde incelendi. Kurulu sisteminize göre seçenekleri onaylayın mitmweb --options; istemci yakalama ve güven davranışının yine de iş istasyonunuzda test edilmesi gerekir.