Files
OmniRoute/docs/i18n/fi/docs/security/STEALTH_GUIDE.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

25 KiB
Raw Blame History

Stealth Guide (Suomi)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Totuuden lähde: open-sse/utils/tlsClient.ts, open-sse/services/{tlsClientBase,claudeTlsClient,perplexityTlsClient,grokTlsClient,notionTlsClient,lmarenaTlsClient,claudeCodeCCH,claudeCodeFingerprint,claudeCodeObfuscation,claudeCodeCompatible}.ts, open-sse/config/cliFingerprints.ts, src/mitm/ Viimeksi päivitetty: 2026-09-02 — v3.8.51 Kohderyhmä: Palveluntarjoajakohtaisia häivetoteutuksia ylläpitävät insinöörit.

OmniRoute integroituu palveluntarjoajiin, joiden reunapalvelut tunnistavat aktiivisesti epävirallisia asiakasohjelmia sormenjälkien perusteella (TLS JA3/JA4, otsakkeiden järjestys, JSON-pyynnön rungon rakenne, eheystunnisteet). Tällä sivulla kuvataan OmniRouten tarjoamat häiveominaisuudet ja niiden toteutussijainnit.

Oikeudellinen ja eettinen huomautus

Häiveominaisuudet ovat olemassa, jotta OmniRoute voi toimia yhteensopivuuskerroksena käyttäjän omistamien virallisten tilien (Claude Code CLI, Codex, Antigravity, Cursor jne.) ja OmniRouten yhtenäisen API:n välillä. Niitä ei ole tarkoitettu petosten tunnistamisen kiertämiseen, tunnistetietojen jakamiseen tai palveluntarjoajien käyttöehtojen rikkomiseen. Ylläpitäjät edellyttävät, että operaattorit noudattavat niitä ylävirran käyttöehtoja, jotka he hyväksyivät tilejä luodessaan.


TLS-sormenjälkikerros

open-sse/utils/tlsClient.ts — wreq-js (Chrome 124)

Pysyvät wreq-js-istunnot luodaan laiskasti tilikohtaisesti ja ratkaistun välityspalvelimen mukaan. Prosessinlaajuinen TlsClient ylläpitää enintään 128 istunnon poolia, jotka jäljittelevät Chrome 124:ää macOS:ssä Cloudflaren takana oleville ylävirran palveluille. TlsClient.fetch() keskeyttää turvallisesti, kun natiivi suoritusympäristö ei ole käytettävissä; kutsuja voi nimenomaisesti valita varavaihtoehdon tämän kääreen ulkopuolella.

  • Istuntoprofiili: browser: "chrome_124", os: "macos"
  • Välityspalvelimen ratkaisu (prioriteettijärjestys): HTTPS_PROXYHTTP_PROXYALL_PROXY (myös pienillä kirjaimilla)
  • Aikakatkaisu: TLS_CLIENT_TIMEOUT_MS (periytyy muuttujasta FETCH_TIMEOUT_MS, oletus 600000)
  • wreq-js-vastaus on fetch-yhteensopiva (headers, text(), json(), clone(), body).
  • Ensimmäisen tavun valvonta (open-sse/utils/tlsFirstByteWatchdog.ts, #12656): TlsClient.fetch() palautuu heti, kun ylävirran otsakkeet saapuvat, joten TLS_CLIENT_TIMEOUT_MS ei yksin voi rajata rungon käsittelyaikaa, jos runko ei koskaan tuota ensimmäistä tavua. guardTlsFirstByte() asettaa rungon ensimmäisen read()-kutsun kilpailemaan aikarajan TLS_FIRST_BYTE_WATCHDOG_MS kanssa (oletus 10000, arvo 0 poistaa sen käytöstä); toimivaan runkoon tämä ei vaikuta, kun taas pysähtynyt runko peruuttaa wreq-lukijan ja antaa proxyFetch-toiminnon olemassa olevan TLS-varalogiikan jatkaa suoraan/välityspalvelimen kautta toimivaan välittäjään (pyyntö, jota ei voi turvallisesti toistaa, esimerkiksi rungollinen POST-pyyntö, aiheuttaa edelleen poikkeuksen sen sijaan, että se yritettäisiin hiljaisesti uudelleen).

Web-evästeitä käyttävä palveluntarjoajasiirto — wreq-js 3.2.0

open-sse/services/tlsClientBase.ts on alla olevien viiden erikoistuneen web-evästeitä käyttävän siirtotavan jaettu sovitin. Kukin kevyt palveluntarjoajakääre valitsee selain-/käyttöjärjestelmäprofiilin. Sovitin käyttää tiedostossa open-sse/utils/tlsClient.ts olevaa yhtä wreq-suoritusympäristön lataajaa ja siirtopoolia, jonka avaimena on profiili + käyttöjärjestelmä + ratkaistu välityspalvelin, ja jokainen pyyntö käyttää asetusta cookieMode: "ephemeral". Tilit ja pyynnöt jakavat näin siirtotason yhteydet, mutta eivät koskaan wreq-istuntoa tai evästesäilöä.

Palveluntarjoaja Profiili Emuloitu käyttöjärjestelmä Virran EOF-käytäntö
Claude chrome_146 Linux sisällytä [DONE]
Perplexity firefox_148 macOS sisällytä event: end_of_stream
Grok chrome_146 Linux jätä [DONE] pois
Notion chrome_146 Windows sisällytä [DONE]
LMArena chrome_146 Windows ei vartioarvoa; sulje natiivissa EOF-tilassa
  • Suoratoisto kuluttaa natiivin vastauksen ReadableStream-virtaa suoraan; väliaikaistiedostoa tai oheisprosessia ei luoda.
  • Enintään 256 ensimmäistä tavua tarkastetaan ennen virran tarjoamista. SSE-palveluntarjoajat puskuroivat muut kuin SSE- virheet; Grok/LMArena muuntavat Cloudflare-haasteet tilakoodiksi 403 ja HTML-välisivut tilakoodiksi 502.
  • Natiivin pyynnön aikakatkaisua rajoittaa lisäksi absoluuttinen JS:n kova määräaika. Jumiutuminen mitätöi ja sulkee vain kyseisen profiilin/käyttöjärjestelmän/välityspalvelimen siirtoyhteyden, ennen kuin seuraava pyyntö luo sen uudelleen.
  • Välityspalvelimen ratkaisun kutsukohtainen prioriteettijärjestys on proxyUrl → pyyntökohtainen tili-/hallintapaneelikonteksti → HTTPS_PROXY/HTTP_PROXY/ALL_PROXY (mukaan lukien pienikirjaimiset versiot). Ratkaisuvirheet keskeyttävät turvallisesti sen sijaan, että suora yhteys vuotaisi. LMArena tekee ratkaisun tarkoituksellisesti kohdetta arena.ai vasten.
  • byteResponse palauttaa sisältötyypitetyn data:-URL:n ilman UTF-8-vaurioita.
  • Virheet ovat TlsClientUnavailableError (paketti/lisäosa ei ole käytettävissä), TlsClientHangError (määräaika ylittyi) ja WreqTransportCapacityError (jaetun istuntokapasiteettivirheen koodi), kun kaikki 128 rajattua profiili-/käyttöjärjestelmä-/välityspalvelinpaikkaa ovat aktiivisia tai sulkeutumassa.

Yllä kuvattu yleinen TlsClient-istunto on edelleen erikoistettu selaimen tukemaan pysyvään evästetilaan. Molemmat polut käyttävät uudelleen yhtä välimuistiin tallennettua wreq-moduulin lataajaa ja prosessin elinkaarikoukkua; niiden poolit pysyvät erillisinä, koska niiden evästeiden elinkaaret ovat tarkoituksellisesti erilaiset.

Kiinnitetty paketti tukee profiileja, mutta todellisen WAF:n hyväksyntä voi muuttua paikallisista sopimustesteistä riippumatta. Validoi sormenjälkimuutokset erikseen valtuutettua aktiivista tiliä vasten, ennen kuin ilmoitat vastaavuudesta ylävirran selaimen kanssa.


Claude Code -häivepaketti

Kun cliCompatMode on käytössä, OmniRoute muotoilee lähtevät Claude-pyynnöt uudelleen niin, ettei niitä voi erottaa claude-cli-liikenteestä. Kolme moduulia toimii yhdessä:

claudeCodeFingerprint.ts

Laskee laskutusotsakkeeseen upotetun 3-merkkisen cc_version-sormenjäljen:

SHA256(SALT + msg[4] + msg[7] + msg[20] + version)[:3]
  • FINGERPRINT_SALT = "59cf53e54c78" (kovakoodattu; vastaa virallista asiakasohjelmaa)
  • Syötteet: ensimmäisen käyttäjäviestin tekstin indeksien 4, 7 ja 20 merkit + versiojono
  • Tulos: 3-merkkinen heksadesimaalietuliite

claudeCodeCCH.ts (asiakassisällön tiiviste)

Palvelinpuolen eheystarkistus, jonka virallinen Claude Code CLI laskee Bun/Zigillä. OmniRoute toteuttaa sen uudelleen xxhash-wasm-paketilla:

  1. Serialisoi runko käyttäen cch=00000;-paikkamerkkiä
  2. xxhash64(bytes, seed) & 0xFFFFF
  3. Nollilla täytetty 5-merkkinen heksadesimaaliarvo pienillä kirjaimilla
  4. Korvaa cch=00000; lasketulla tunnisteella

Vakiot:

  • Siemen: 0x6e52736ac806831e
  • Lauseke: /\bcch=([0-9a-f]{5});/

claudeCodeObfuscation.ts

Lisää Unicode-nollaleveyksisen yhdistäjän (U+200D) arkaluonteisten asiakasohjelmien nimien ensimmäisen merkin jälkeen, jotta ylävirran suodattimet eivät voi löytää niitä grep-haulla. Oletussanaluettelo:

opencode, open-code, cline, roo-cline, roo_cline, cursor, windsurf,
aider, continue.dev, copilot, avante, codecompanion

Kohteet: system-lohkot, kaikki messages[].content-sisällöt sekä tools[].description / tools[].function.description. Operaattori voi korvata asetuksen setSensitiveWords()-toiminnolla.

claudeCodeCompatible.tsanthropic-compatible-cc-*-palveluntarjoajat

Kolmannen osapuolen Anthropic-välityspalveluille, jotka hyväksyvät vain ”aidon Claude Code” -liikenteen:

  • CLAUDE_CODE_COMPATIBLE_USER_AGENT = "claude-cli/2.1.258 (external, sdk-cli)"
  • CLAUDE_CODE_COMPATIBLE_STAINLESS_PACKAGE_VERSION = "0.112.1"
  • CLAUDE_CODE_COMPATIBLE_STAINLESS_RUNTIME_VERSION = "v26.3.0"
  • anthropic-beta = "claude-code-20250219,interleaved-thinking-2025-05-14,effort-2025-11-24" oletuksena
  • Yhteyskohtainen ”Enable redact-thinking beta” -valitsin lisää arvon redact-thinking-2026-02-12, kun CC Compatible -ylävirta edellyttää nimenomaisesti peitettyjä päättelyvirtoja
  • Yhteyskohtainen ”Enable summarized thinking display” -valitsin tallentaa arvon providerSpecificData.requestDefaults.summarizeThinking ja lisää asetuksen display: "summarized" CC Compatible -päättelypyyntöihin, joissa näyttötilaa ei ole jo määritetty
  • CONTEXT_1M_BETA_HEADER = "context-1m-2025-08-07" (Opus/Sonnet 4.x -tuoteperhe)
  • Oletuspolku: /v1/messages?beta=true

Saman paketin rinnakkaismoduulit:

  • claudeCodeConstraints.ts — lämpötila- ja välimuistinhallintasäännöt
  • claudeCodeToolRemapper.ts — työkalunimien uudelleenkartoitus
  • claudeCodeExtraRemap.ts — hyötykuorman lisänormalisointi

Antigravity-häive

Antigravity-pyynnöt säilyttävät kutsujan tekstin tavu tavulta. OmniRoute ei lisää kehotteisiin nollaleveyksisiä merkkejä eikä nimeä työkaluja uudelleen tai lisää niitä jäljitelläkseen IDE-asiakasohjelmaa.

antigravityHeaderScrub.ts

Poistaa Stainless SDK -merkinnät (x-stainless-lang, x-stainless-package-version, x-stainless-os, x-stainless-arch, x-stainless-runtime, x-stainless-runtime-version, x-stainless-timeout, x-stainless-retry-count, x-stainless-helper-method) ennen välittämistä.

⚠️ Riski: ANTIGRAVITY_CREDITS=always (suuri tilikiellon riski)

ANTIGRAVITY_CREDITS=always (käytössä tiedostossa open-sse/executors/antigravity.ts) reitittää jokaisen pyynnön Antigravity AI Credit Overages -ylityslaskutuksen kautta (maksulliset Google-krediitit) sen sijaan, että Googlen maksuttoman tason kiintiön annettaisiin rajoittaa käyttöä. Tämä on dokumentoitu ominaisuutena, mutta se on yleisin näkemämme ilmoitettu käyttöehtorikkomus — useita Google Ultra -tilejä on estetty muutaman tunnin käytön jälkeen vastauksella 403 / "service disabled for ToS violation" / insufficient_quota, kun käytössä on ollut =always.

Ylävirran valvonta tapahtuu Googlen puolella, eikä OmniRoute voi estää sitä. Ympäristömuuttujan nimi ja nykyinen dokumentaatio saavat asetuksen vaikuttamaan turvalliselta ottaa käyttöön, mutta sitä se ei ole.

Miksi tämä käynnistää väärinkäytön tunnistuksen herkemmin kuin pelkkä maksuttoman tason käyttö:

  • Jatkuva automatisoitu rahankäyttö yhdellä Google-tilillä merkitään eri tavalla kuin maksuttoman tason käyttö, joka saavuttaa kiintiön ja pysähtyy.
  • Krediittien ylityskäytöllä ei ole nopeusrajoitusta, joten väärin määritetty asiakasohjelma voi kuluttaa satoja Yhdysvaltain dollareita minuuteissa ja näyttää API-avainten jälleenmyynniltä tai bottiliikenteeltä.
  • Useiden OmniRoute-käyttäjien rinnakkainen ylityskrediittien käyttö samasta ulkoisesta IP-osoitteesta voimistaa signaalia.

Suositeltu toimintatapa:

  1. Säilytä oletusarvo ANTIGRAVITY_CREDITS=off, ellei operaattori nimenomaisesti hyväksy maksullisiin krediitteihin ja tilin valvontatoimiin liittyvää riskiä. retry lähettää ensin tavallisen pyynnön ja lisää krediitit enintään kerran ehdot täyttävän kiintiöön liittyvän 429-virheen jälkeen; always lisää krediitit jo ensimmäiseen pyyntöön.
  2. Jaa kuorma palveluntarjoajien kesken Auto-Combolla (model: "auto" tai kr/glm/etc-combo) sen sijaan, että kuormittaisit yhden Antigravity-tilin äärimmilleen.
  3. Aseta yhteyskohtaiset RPM-rajat Antigravity-palveluntarjoajan muokkaussivulla (Dashboard → Providers → Antigravity → yhteys → nopeusrajoitus). 3060 RPM on perusteltavissa oleva yläraja jatkuvalle käytölle.
  4. Käytä vakaata, operaattorin hallitsemaa ylävirran verkkoyhteyttä ja vältä yhden tilin jakamista toisistaan riippumattomien käyttäjien tai työkuormien kesken.
  5. Jos tili estetään: tee valitus osoitteessa support.google.com → ”Restore Workspace/Account access” ja liitä mukaan Googlen lähettämä täsmällinen quota_exceeded / service disabled -vastausrunko. Tilin palauttamista ei taata.

Ympäristömuuttujien viitedokumentaatiossa kuvataan kunkin krediittitilan vaikutukset tiliin ja kuluihin.

Liittyvät kohdat:

  • open-sse/executors/antigravity.ts — lukee arvon process.env.ANTIGRAVITY_CREDITS
  • src/lib/oauth/providers/antigravity.ts — tunnistetietojen välitys
  • Alkuperäinen tapahtumaraportti: keskustelu #1183

CLI-sormenjälkirekisteri — open-sse/config/cliFingerprints.ts

Palveluntarjoajakohtainen taulukko, joka määrittää virallisten CLI-työkalujen mitmproxy-jäljityksistä tallennetun otsakkeiden täsmällisen järjestyksen ja JSON-rungon kenttien järjestyksen. Tällä hetkellä rekisteröityinä: codex, claude sekä suorituksen aikana johdetut profiilit tiedostossa providerHeaderProfiles.ts palveluntarjoajille antigravity ja github.

interface CliFingerprint {
  headerOrder: string[]; // kirjainkoko merkitsevä
  bodyFieldOrder: string[]; // ylätason JSON-avaimet
  userAgent?: string | (() => string);
  extraHeaders?: Record<string, string>;
}

Ota käyttöön tai poista käytöstä palveluntarjoajakohtaisesti ympäristömuuttujan avulla (katso alta). Kun toiminto on poistettu käytöstä, otsakkeet ja rungon avaimet näkyvät siinä järjestyksessä, jossa Node/JSON ne tuotti — ne on helppo tunnistaa sormenjäljen perusteella.


MITM-välityspalvelin (Antigravity, Linux/macOS/Windows)

CLI-työkaluille, joiden binääritiedostoja ei voi uudelleenohjata OPENAI_BASE_URL-muuttujan avulla, OmniRoute suorittaa paikallista TLS-yhteydet päättävää välityspalvelinta. Päätepisteet sijaitsevat hakemistossa src/app/api/cli-tools/antigravity-mitm/.

Menetelmä Päätepiste Tarkoitus
GET /api/cli-tools/antigravity-mitm Tila — käynnissä, pid, dnsConfigured, certExists
POST /api/cli-tools/antigravity-mitm Käynnistä MITM (vaatii apiKey + sudoPassword)
DELETE /api/cli-tools/antigravity-mitm Pysäytä MITM
GET /api/cli-tools/antigravity-mitm/alias Luettele mallien aliakset
PUT /api/cli-tools/antigravity-mitm/alias Tallenna työkalun mallialiakset

Siepattava kohdeisäntä: daily-cloudcode-pa.googleapis.com (Antigravityn ylävirran palvelin).

Käynnistysjärjestys (src/mitm/manager.ts::startMitm)

  1. Luo itse allekirjoitettu varmenne selfsigned-paketilla (RSA-2048, SHA-256, 1 vuosi) — cert/generate.ts
  2. Asenna varmenne järjestelmän luottamusvarastoon — cert/install.ts
  3. Lisää hosts-merkintä 127.0.0.1 daily-cloudcode-pa.googleapis.comdns/dnsConfig.ts
  4. Käynnistä src/mitm/server.cjs muuttujilla ROUTER_API_KEY + MITM_LOCAL_PORT (oletus 443)
  5. Tallenna PID pysyvästi tiedostoon <DATA_DIR>/mitm/.mitm.pid

Linuxin dynaaminen luottamusvaraston tunnistus — cert/install.ts

getLinuxCertConfig() käy prioriteettilistan läpi ja valitsee ensimmäisen olemassa olevan hakemiston:

Jakeluperhe Hakemisto Päivityskomento
Debian / Ubuntu /usr/local/share/ca-certificates update-ca-certificates
Arch / CachyOS / Manjaro /etc/ca-certificates/trust-source/anchors update-ca-trust
Fedora / RHEL / CentOS /etc/pki/ca-trust/source/anchors update-ca-trust
openSUSE /etc/pki/trust/anchors update-ca-certificates

Varmenteen tiedostonimi: omniroute-mitm.crt. Sormenjäljen täsmäytys funktiolla getCertFingerprint() (DER-muodon SHA-1).

Lisäksi updateNssDatabases() asentaa varmenteen käyttäjäkohtaisiin NSS-tietokantoihin, kun certutil on käytettävissä: ~/.pki/nssdb, ~/snap/chromium/.../nssdb ja kaikki Firefox-profiilit (mukaan lukien snap) lempinimellä OmniRoute MITM Root CA.

macOS / Windows

  • macOS: security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain
  • Windows: korotetuilla oikeuksilla suoritettava PowerShell → certutil -addstore Root

Todennus

Kaikki MITM-päätepisteet edellyttävät hallinnan todennusta (requireCliToolsAuth). Sudo-salasana tallennetaan välimuistiin moduulin näkyvyysalueelle (ei koskaan globalThis-objektiin), ja se tyhjennetään stopMitm()-kutsun yhteydessä.


User-Agent-ohitukset — ympäristömuuttujat (.env.example, osio 12)

Muuttuja Oletusarvo
CLAUDE_USER_AGENT claude-cli/2.1.258 (external, cli)
CODEX_USER_AGENT codex-cli/0.149.0 (Windows 10.0.26200; x64)
GITHUB_USER_AGENT GitHubCopilotChat/0.54.0
ANTIGRAVITY_USER_AGENT antigravity/2.0.1 linux/arm64 google-api-nodejs-client/10.3.0
KIRO_USER_AGENT AWS-SDK-JS/3.0.0 kiro-ide/1.0.0
QODER_USER_AGENT Qoder-Cli
CURSOR_USER_AGENT Cursor/3.4

open-sse/executors/base.ts::buildHeaders() käyttää näitä dynaamisen haun kautta. Päivitä nämä, kun palveluntarjoajat julkaisevat uusia CLI-versioita — vanhentuneet UA-merkkijonot hylätään vanhentuneina asiakasohjelmina.

CLI-yhteensopivuustilan valitsimet (.env.example, osio 13)

Muuttuja Vaikutus
CLI_COMPAT_CODEX=1 Codex-sormenjälki
CLI_COMPAT_CLAUDE=1 claude-cli-sormenjälki
CLI_COMPAT_GITHUB=1 GitHub Copilot Chat -sormenjälki
CLI_COMPAT_ANTIGRAVITY=1 Antigravity-sormenjälki
CLI_COMPAT_KIRO=1 Kiro
CLI_COMPAT_CURSOR=1 Cursor
CLI_COMPAT_KIMI_CODING=1 Kimi Coding
CLI_COMPAT_KILOCODE=1 KiloCode
CLI_COMPAT_CLINE=1 Cline
CLI_COMPAT_ALL=1 Ota kaikki yllä olevat käyttöön

Palveluntarjoajan IP-osoite säilytetään aina — valitsin muokkaa vain pyynnön verkkotason ilmentymää, eikä se vaihda lähtevän liikenteen IP-osoitetta.


Saapuvien otsakkeiden puhdistus

OmniRoute puhdistaa saapuvat asiakasohjelman otsakkeet ennen välittämistä, jotta Cursorista saapuva pyyntö ei vuoda User-Agent: Cursor/X.Y.Z -otsaketta Claude-ylävirtaan. Estolista on tiedostossa src/shared/constants/upstreamHeaders.ts, ja se pidetään synkronoituna Zod-skeemojen ja yksikkötestien kanssa.


Sormenjälkien päivittäminen palveluntarjoajan vaihtaessa niitä

  1. Tallenna virallisen CLI:n liikenne mitmproxy-työkalulla (TLS-kuuntelu + vedos)
  2. Poimi JA3/JA4 ja otsakkeiden täsmällinen järjestys
  3. Päivitä asianmukainen CLI_FINGERPRINTS[...]-merkintä
  4. Päivitä vastaavan *_USER_AGENT-muuttujan oletusarvo tiedostossa .env.example
  5. Jos itse TLS-kättely muuttui, päivitä asianmukainen palveluntarjoajan kääre tai wreq-js:n browser:-asetus
  6. Suorita palveluntarjoajakohtaiset TLS-testit ja manuaalinen canary-testi aktiivista palveluntarjoajaa vasten
  7. Julkaise korjausversiona ja dokumentoi tiedostossa CHANGELOG.md

Testit

  • open-sse/services/__tests__/claudeTlsClient.test.ts — jaetun TLS-kääreen toiminta
  • tests/unit/anthropic-cache-fingerprint.test.ts — sormenjäljen deterministisyys
  • tests/unit/chatgpt-web-source-retirement.test.ts — yleinen ChatGPT Webin stealth-lähde pysyy poissa, kun taas Codex Web säilyy mukana

Katso myös