🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 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
Πηγή αναφοράς:
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/Τελευταία ενημέρωση: 2026-09-02 — v3.8.51 Απευθύνεται σε: Μηχανικούς που συντηρούν ειδικές ανά πάροχο ενσωματώσεις απόκρυψης.
Το OmniRoute ενσωματώνεται με παρόχους των οποίων τα περιφερειακά συστήματα ανιχνεύουν ενεργά τα χαρακτηριστικά μη επίσημων πελατών (TLS JA3/JA4, σειρά κεφαλίδων, δομή σώματος JSON, διακριτικά ακεραιότητας). Αυτή η σελίδα τεκμηριώνει τις επιφάνειες απόκρυψης που παρέχει το OmniRoute και το σημείο υλοποίησής τους.
Οι δυνατότητες απόκρυψης υπάρχουν ώστε το OmniRoute να μπορεί να λειτουργεί ως επίπεδο συμβατότητας μεταξύ επίσημων λογαριασμών που ανήκουν στους χρήστες (Claude Code CLI, Codex, Antigravity, Cursor κ.λπ.) και του ενοποιημένου API του OmniRoute. Δεν προορίζονται για την παράκαμψη της ανίχνευσης απάτης, την κοινή χρήση διαπιστευτηρίων ή την παραβίαση των Όρων Παροχής Υπηρεσιών των παρόχων. Οι συντηρητές αναμένουν από τους διαχειριστές να συμμορφώνονται με τους όρους ToS των ανάντη υπηρεσιών, τους οποίους αποδέχτηκαν κατά τη δημιουργία λογαριασμών.
Οι μόνιμες συνεδρίες wreq-js δημιουργούνται με οκνηρό τρόπο ανά εύρος λογαριασμού και επιλυμένο διακομιστή μεσολάβησης. Το
TlsClient σε επίπεδο διεργασίας διατηρεί σε κοινόχρηστη δεξαμενή έως 128 συνεδρίες που μιμούνται το Chrome 124 σε macOS για
ανάντη υπηρεσίες πίσω από το Cloudflare. Η TlsClient.fetch() αποτυγχάνει με ασφαλή τρόπο όταν το εγγενές περιβάλλον εκτέλεσης
δεν είναι διαθέσιμο· ένας καλών μπορεί να επιλέξει ρητά μια εναλλακτική λύση εκτός αυτού του περιτυλίγματος.
- Προφίλ συνεδρίας:
browser: "chrome_124", os: "macos" - Επίλυση διακομιστή μεσολάβησης (προτεραιότητα):
HTTPS_PROXY→HTTP_PROXY→ALL_PROXY(επίσης με πεζά) - Χρονικό όριο:
TLS_CLIENT_TIMEOUT_MS(κληρονομείται από τοFETCH_TIMEOUT_MS, προεπιλογή 600000) - Το Response του
wreq-jsείναι συμβατό με το fetch (headers,text(),json(),clone(),body). - Επόπτης πρώτου byte (
open-sse/utils/tlsFirstByteWatchdog.ts, #12656): ΗTlsClient.fetch()ολοκληρώνεται μόλις φτάσουν οι κεφαλίδες της ανάντη υπηρεσίας, επομένως τοTLS_CLIENT_TIMEOUT_MSαπό μόνο του δεν μπορεί να θέσει όριο σε ένα σώμα που δεν παρέχει ποτέ πρώτο byte. ΗguardTlsFirstByte()θέτει σε ανταγωνισμό την πρώτηread()του σώματος με τοTLS_FIRST_BYTE_WATCHDOG_MS(προεπιλογή10000, το0το απενεργοποιεί)· ένα υγιές σώμα δεν επηρεάζεται, ενώ ένα σώμα που έχει κολλήσει ακυρώνει τον αναγνώστη wreq και επιτρέπει στην υπάρχουσα λογική εναλλακτικής λύσης TLS τουproxyFetchνα συνεχίσει στον απευθείας/μέσω διακομιστή μεσολάβησης διεκπεραιωτή (ένα αίτημα που δεν είναι ασφαλές για επανάληψη, π.χ. ένα POST με σώμα, εξακολουθεί να προκαλεί εξαίρεση αντί να επαναλαμβάνεται σιωπηρά).
Το open-sse/services/tlsClientBase.ts είναι ο κοινόχρηστος προσαρμογέας για τις πέντε εξειδικευμένες
μεταφορές web-cookie παρακάτω. Κάθε λεπτό περιτύλιγμα παρόχου επιλέγει ένα προφίλ προγράμματος περιήγησης/λειτουργικού συστήματος. Ο προσαρμογέας
χρησιμοποιεί τον μοναδικό φορτωτή περιβάλλοντος εκτέλεσης wreq και τη δεξαμενή μεταφορών στο open-sse/utils/tlsClient.ts, με κλειδί
το προφίλ + λειτουργικό σύστημα + επιλυμένο διακομιστή μεσολάβησης, ενώ κάθε αίτημα χρησιμοποιεί cookieMode: "ephemeral". Επομένως, οι λογαριασμοί και
τα αιτήματα μοιράζονται συνδέσεις σε επίπεδο μεταφοράς, αλλά ποτέ μια συνεδρία wreq ή ένα χώρο αποθήκευσης cookie.
| Πάροχος | Προφίλ | Εξομοιούμενο λειτουργικό σύστημα | Πολιτική EOF ροής |
|---|---|---|---|
| Claude | chrome_146 |
Linux | συμπερίληψη [DONE] |
| Perplexity | firefox_151 |
macOS | συμπερίληψη event: end_of_stream |
| Grok | chrome_146 |
Linux | εξαίρεση [DONE] |
| Notion | chrome_146 |
Windows | συμπερίληψη [DONE] |
| LMArena | chrome_146 |
Windows | χωρίς σηματοδότη· κλείσιμο σε εγγενές EOF |
- Η ροή καταναλώνει απευθείας το
ReadableStreamτης εγγενούς απόκρισης· δεν δημιουργείται προσωρινό αρχείο ή βοηθητική διεργασία. - Εξετάζονται έως 256 αρχικά byte πριν από την έκθεση μιας ροής. Οι πάροχοι SSE αποθηκεύουν προσωρινά τα σφάλματα που δεν είναι SSE·
οι Grok/LMArena αντιστοιχίζουν τις προκλήσεις Cloudflare σε
403και τις ενδιάμεσες σελίδες HTML σε502. - Το εγγενές χρονικό όριο αιτήματος εξακολουθεί να περιβάλλεται από μια απόλυτη αυστηρή προθεσμία JS. Μια εμπλοκή ακυρώνει και κλείνει μόνο την επηρεαζόμενη μεταφορά προφίλ/λειτουργικού συστήματος/διακομιστή μεσολάβησης, προτού το επόμενο αίτημα την επαναδημιουργήσει.
- Η προτεραιότητα επίλυσης διακομιστή μεσολάβησης είναι ανά κλήση
proxyUrl→ περιβάλλον λογαριασμού/πίνακα ελέγχου με εύρος αιτήματος →HTTPS_PROXY/HTTP_PROXY/ALL_PROXY(συμπεριλαμβανομένων των παραλλαγών με πεζά). Τα σφάλματα επίλυσης αποτυγχάνουν με ασφαλή τρόπο αντί να διαρρεύσει μια απευθείας σύνδεση. Το LMArena εκτελεί σκόπιμα την επίλυση με βάση τοarena.ai. - Το
byteResponseεπιστρέφει ένα URLdata:με τύπο περιεχομένου, χωρίς αλλοίωση UTF-8. - Τα σφάλματα είναι
TlsClientUnavailableError(το πακέτο/πρόσθετο δεν είναι διαθέσιμο),TlsClientHangError(υπέρβαση προθεσμίας) καιWreqTransportCapacityError(ο κοινόχρηστος κωδικός σφάλματος χωρητικότητας συνεδριών) όταν και οι 128 περιορισμένες θέσεις προφίλ/λειτουργικού συστήματος/διακομιστή μεσολάβησης είναι ενεργές ή κλείνουν.
Η γενική συνεδρία TlsClient παραπάνω παραμένει εξειδικευμένη για μόνιμη κατάσταση cookie που υποστηρίζεται από πρόγραμμα περιήγησης.
Και οι δύο διαδρομές επαναχρησιμοποιούν έναν αποθηκευμένο στην κρυφή μνήμη φορτωτή μονάδας wreq και ένα άγκιστρο κύκλου ζωής διεργασίας· οι δεξαμενές τους παραμένουν
ξεχωριστές, επειδή οι διάρκειες ζωής των cookie τους είναι σκόπιμα διαφορετικές.
Τα προφίλ υποστηρίζονται από το καρφιτσωμένο πακέτο, αλλά η πραγματική αποδοχή από το WAF μπορεί να αλλάξει ανεξάρτητα από τις τοπικές δοκιμές συμβολαίου. Επικυρώστε τις αλλαγές δακτυλικού αποτυπώματος σε έναν ρητά εξουσιοδοτημένο ενεργό λογαριασμό πριν ισχυριστείτε ισοδυναμία με ένα ανάντη πρόγραμμα περιήγησης.
Όταν το cliCompatMode είναι ενεργοποιημένο, το OmniRoute αναδιαμορφώνει τα εξερχόμενα αιτήματα Claude ώστε να μην μπορούν να διακριθούν από την κίνηση του claude-cli. Τρία αρθρώματα συνεργάζονται:
Υπολογίζει το αποτύπωμα 3 χαρακτήρων cc_version που ενσωματώνεται στην κεφαλίδα χρέωσης:
SHA256(SALT + msg[4] + msg[7] + msg[20] + version)[:3]
FINGERPRINT_SALT = "59cf53e54c78"(ενσωματωμένο στον κώδικα· αντιστοιχεί στον επίσημο πελάτη)- Είσοδοι: οι χαρακτήρες στις θέσεις 4, 7 και 20 του κειμένου του πρώτου μηνύματος χρήστη + συμβολοσειρά έκδοσης
- Έξοδος: δεκαεξαδικό πρόθεμα 3 χαρακτήρων
Έλεγχος ακεραιότητας στην πλευρά του διακομιστή, τον οποίο το επίσημο Claude Code CLI υπολογίζει μέσω Bun/Zig. Το OmniRoute τον επανυλοποιεί με xxhash-wasm:
- Σειριοποίηση του σώματος με σύμβολο κράτησης θέσης
cch=00000; xxhash64(bytes, seed) & 0xFFFFF- Δεκαεξαδική τιμή 5 χαρακτήρων με πεζά γράμματα και συμπλήρωση με μηδενικά
- Αντικατάσταση του
cch=00000;με το υπολογισμένο διακριτικό
Σταθερές:
- Τιμή σποράς:
0x6e52736ac806831e - Μοτίβο:
/\bcch=([0-9a-f]{5});/
Εισάγει έναν Unicode συνδετήρα μηδενικού πλάτους (U+200D) μετά τον πρώτο χαρακτήρα «ευαίσθητων» ονομάτων πελατών, ώστε τα φίλτρα ανάντη να μην μπορούν να τα εντοπίσουν μέσω grep. Προεπιλεγμένη λίστα λέξεων:
opencode, open-code, cline, roo-cline, roo_cline, cursor, windsurf,
aider, continue.dev, copilot, avante, codecompanion
Εφαρμόζεται σε: μπλοκ system, όλο το messages[].content και τα tools[].description / tools[].function.description. Μπορεί να παρακαμφθεί από τον χειριστή μέσω setSensitiveWords().
Για αναμεταδότες Anthropic τρίτων που δέχονται μόνο «πραγματική κίνηση Claude Code»:
CLAUDE_CODE_COMPATIBLE_USER_AGENT = "claude-cli/2.1.280 (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"από προεπιλογή- Ο διακόπτης ανά σύνδεση «Ενεργοποίηση της beta έκδοσης απόκρυψης συλλογισμού» προσθέτει το
redact-thinking-2026-02-12όταν ένα ανάντη σύστημα συμβατό με CC απαιτεί συγκεκριμένα ροές με αποκρυμμένο συλλογισμό - Ο διακόπτης ανά σύνδεση «Ενεργοποίηση εμφάνισης συνοψισμένου συλλογισμού» αποθηκεύει το
providerSpecificData.requestDefaults.summarizeThinkingκαι προσθέτειdisplay: "summarized"στα αιτήματα συλλογισμού που είναι συμβατά με CC και δεν είχαν ήδη ορίσει λειτουργία εμφάνισης CONTEXT_1M_BETA_HEADER = "context-1m-2025-08-07"(οικογένεια Opus/Sonnet 4.x)- Προεπιλεγμένη διαδρομή:
/v1/messages?beta=true
Συγγενικά αρθρώματα στο ίδιο πακέτο:
claudeCodeConstraints.ts— κανόνες θερμοκρασίας + ελέγχου προσωρινής μνήμηςclaudeCodeToolRemapper.ts— επαναχαρτογράφηση ονομάτων εργαλείωνclaudeCodeExtraRemap.ts— πρόσθετη κανονικοποίηση ωφέλιμου φορτίου
Τα αιτήματα Antigravity διατηρούν το κείμενο του καλούντος ίδιο, byte προς byte. Το OmniRoute δεν εισάγει χαρακτήρες μηδενικού πλάτους στις προτροπές ούτε μετονομάζει/εισάγει εργαλεία για να μιμηθεί έναν πελάτη IDE.
Αφαιρεί τους δείκτες του Stainless SDK (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) πριν από την προώθηση.
Το ANTIGRAVITY_CREDITS=always (χρησιμοποιείται από το open-sse/executors/antigravity.ts) δρομολογεί κάθε αίτημα μέσω των υπερβάσεων πιστώσεων του Antigravity AI (επί πληρωμή πιστώσεις Google), αντί να επιτρέπει στο όριο δωρεάν χρήσης της Google να περιορίζει τη δραστηριότητα. Αυτό τεκμηριώνεται ως δυνατότητα, αλλά αποτελεί τη συχνότερη αναφορά παραβίασης των Όρων Παροχής Υπηρεσιών που βλέπουμε — πολλοί λογαριασμοί Google Ultra έχουν αποκλειστεί με 403 / "service disabled for ToS violation" / insufficient_quota, αφού λειτούργησαν για λίγες ώρες με =always.
Η επιβολή των κανόνων ανάντη γίνεται από την πλευρά της Google και δεν είναι κάτι που μπορεί να αποτρέψει το OmniRoute. Το όνομα της μεταβλητής περιβάλλοντος και η υπάρχουσα τεκμηρίωση δίνουν την εντύπωση ότι πρόκειται για μια ασφαλή ρύθμιση· δεν είναι.
Γιατί αυτό ενεργοποιεί τον εντοπισμό κατάχρησης πιο επιθετικά από τη χρήση μόνο του δωρεάν ορίου:
- Η συνεχής αυτοματοποιημένη δαπάνη σε έναν μόνο λογαριασμό Google επισημαίνεται διαφορετικά από τη συμπεριφορά όπου εξαντλείται το δωρεάν όριο και η χρήση σταματά.
- Οι υπερβάσεις πιστώσεων δεν έχουν ανώτατο όριο ρυθμού, επομένως ένας εσφαλμένα ρυθμισμένος πελάτης μπορεί να καταναλώσει αρκετές εκατοντάδες USD μέσα σε λίγα λεπτά και να μοιάζει με μεταπώληση κλειδιών API ή κίνηση bot.
- Η παράλληλη χρήση πιστώσεων υπέρβασης από πολλούς χρήστες του OmniRoute μέσω της ίδιας εξωτερικής διεύθυνσης IP ενισχύει το σχετικό σήμα.
Συνιστώμενη στάση:
- Διατηρήστε την προεπιλογή
ANTIGRAVITY_CREDITS=off, εκτός εάν ο χειριστής αποδέχεται ρητά τον κίνδυνο χρεώσιμων πιστώσεων και επιβολής περιορισμών στον λογαριασμό. Τοretryστέλνει πρώτα το κανονικό αίτημα και εισάγει πιστώσεις το πολύ μία φορά μετά από ένα επιλέξιμο σφάλμα ορίου 429· τοalwaysεισάγει πιστώσεις από το πρώτο αίτημα. - Κατανείμετε το φορτίο μεταξύ παρόχων μέσω Auto-Combo (
model: "auto"ή συνδυασμόςkr/glm/etc), αντί να υπερφορτώνετε έναν μόνο λογαριασμό Antigravity. - Ορίστε όρια RPM ανά σύνδεση στη σελίδα επεξεργασίας του παρόχου Antigravity (Πίνακας ελέγχου → Πάροχοι → Antigravity → σύνδεση → όριο ρυθμού). Τα 30–60 RPM αποτελούν ένα εύλογα υπερασπίσιμο ανώτατο όριο για συνεχή χρήση.
- Χρησιμοποιείτε σταθερή δικτύωση ανάντη που ελέγχεται από τον χειριστή και αποφεύγετε την κοινή χρήση ενός λογαριασμού μεταξύ άσχετων χρηστών ή φόρτων εργασίας.
- Σε περίπτωση αποκλεισμού: υποβάλετε ένσταση μέσω του
support.google.com→ «Επαναφορά πρόσβασης σε Workspace/Λογαριασμό», συμπεριλαμβάνοντας το ακριβές σώμα απόκρισηςquota_exceeded/service disabledπου έστειλε η Google. Η αποκατάσταση δεν είναι εγγυημένη.
Η αναφορά περιβάλλοντος τεκμηριώνει τις επιπτώσεις κάθε λειτουργίας πιστώσεων στον λογαριασμό και στις δαπάνες.
Σημεία επαφής:
open-sse/executors/antigravity.ts— διαβάζει τοprocess.env.ANTIGRAVITY_CREDITSsrc/lib/oauth/providers/antigravity.ts— διασύνδεση διαπιστευτηρίων- Αρχική αναφορά περιστατικού: Συζήτηση #1183
Πίνακας ανά πάροχο που καθορίζει την ακριβή σειρά των headers και των πεδίων του σώματος JSON, όπως καταγράφηκε από ίχνη mitmproxy των επίσημων CLI. Προς το παρόν έχουν καταχωριστεί: codex, claude, καθώς και προφίλ που παράγονται κατά την εκτέλεση στο providerHeaderProfiles.ts για τα antigravity και github.
interface CliFingerprint {
headerOrder: string[]; // διάκριση πεζών-κεφαλαίων
bodyFieldOrder: string[]; // κλειδιά JSON ανώτατου επιπέδου
userAgent?: string | (() => string);
extraHeaders?: Record<string, string>;
}Ενεργοποιείται ή απενεργοποιείται ανά πάροχο μέσω μεταβλητής περιβάλλοντος (δείτε παρακάτω). Όταν είναι απενεργοποιημένο, τα headers/κλειδιά σώματος εμφανίζονται με οποιαδήποτε σειρά τα παρήγαγε το Node/JSON — γεγονός που διευκολύνει τη δημιουργία αποτυπώματος.
Για CLI των οποίων τα εκτελέσιμα αρχεία δεν μπορούν να ανακατευθυνθούν μέσω του OPENAI_BASE_URL, το OmniRoute εκτελεί έναν τοπικό διακομιστή μεσολάβησης που τερματίζει το TLS. Τα endpoints βρίσκονται κάτω από το src/app/api/cli-tools/antigravity-mitm/.
| Μέθοδος | Endpoint | Σκοπός |
|---|---|---|
| GET | /api/cli-tools/antigravity-mitm |
Κατάσταση — εκτελείται, pid, dnsConfigured, certExists |
| POST | /api/cli-tools/antigravity-mitm |
Εκκίνηση MITM (απαιτεί apiKey + sudoPassword) |
| DELETE | /api/cli-tools/antigravity-mitm |
Διακοπή MITM |
| GET | /api/cli-tools/antigravity-mitm/alias |
Παράθεση ψευδωνύμων μοντέλων |
| PUT | /api/cli-tools/antigravity-mitm/alias |
Αποθήκευση ψευδωνύμων μοντέλων για ένα εργαλείο |
Κεντρικός υπολογιστής-στόχος υποκλοπής: daily-cloudcode-pa.googleapis.com (ο upstream διακομιστής του Antigravity).
- Δημιουργία αυτοϋπογεγραμμένου πιστοποιητικού μέσω
selfsigned(RSA-2048, SHA-256, 1 έτος) —cert/generate.ts - Εγκατάσταση του πιστοποιητικού στον χώρο αποθήκευσης αξιόπιστων πιστοποιητικών του συστήματος —
cert/install.ts - Προσθήκη καταχώρισης hosts
127.0.0.1 daily-cloudcode-pa.googleapis.com—dns/dnsConfig.ts - Εκκίνηση του
src/mitm/server.cjsμεROUTER_API_KEY+MITM_LOCAL_PORT(προεπιλογή443) - Αποθήκευση του PID στο
<DATA_DIR>/mitm/.mitm.pid
Η getLinuxCertConfig() διατρέχει μια λίστα προτεραιότητας και επιλέγει τον πρώτο υπάρχοντα κατάλογο:
| Οικογένεια διανομών | Κατάλογος | Εντολή ενημέρωσης |
|---|---|---|
| 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 |
Όνομα αρχείου πιστοποιητικού: omniroute-mitm.crt. Αντιστοίχιση αποτυπώματος μέσω getCertFingerprint() (SHA-1 του DER).
Επιπλέον, η updateNssDatabases() πραγματοποιεί εγκατάσταση στις βάσεις δεδομένων NSS ανά χρήστη, όταν είναι διαθέσιμο το certutil: ~/.pki/nssdb, ~/snap/chromium/.../nssdb, όλα τα προφίλ Firefox (συμπεριλαμβανομένων αυτών μέσω snap), με το ψευδώνυμο OmniRoute MITM Root CA.
- macOS:
security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain - Windows: PowerShell με αυξημένα δικαιώματα →
certutil -addstore Root
Όλα τα endpoints MITM απαιτούν έλεγχο ταυτότητας διαχείρισης (requireCliToolsAuth). Ο κωδικός sudo αποθηκεύεται προσωρινά σε εμβέλεια module (ποτέ στο globalThis) και διαγράφεται κατά την κλήση της stopMitm().
| Μεταβλητή | Προεπιλογή |
|---|---|
CLAUDE_USER_AGENT |
claude-cli/2.1.280 (external, cli) |
CODEX_USER_AGENT |
codex-cli/0.155.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() μέσω δυναμικής αναζήτησης. Ενημερώνετέ τα όταν οι πάροχοι κυκλοφορούν νέες εκδόσεις CLI — οι παρωχημένες συμβολοσειρές UA αρχίζουν να απορρίπτονται ως μη ενημερωμένοι πελάτες.
| Μεταβλητή | Επίδραση |
|---|---|
CLI_COMPAT_CODEX=1 |
Αποτύπωμα Codex |
CLI_COMPAT_CLAUDE=1 |
Αποτύπωμα claude-cli |
CLI_COMPAT_GITHUB=1 |
Αποτύπωμα GitHub Copilot Chat |
CLI_COMPAT_ANTIGRAVITY=1 |
Αποτύπωμα Antigravity |
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 |
Ενεργοποίηση όλων των παραπάνω |
Η διεύθυνση IP του παρόχου διατηρείται πάντα — ο διακόπτης αναδιαμορφώνει μόνο την εικόνα του αιτήματος στο δίκτυο, δεν αλλάζει τη διεύθυνση IP εξόδου.
Το OmniRoute αφαιρεί τις εισερχόμενες κεφαλίδες πελάτη πριν από την προώθηση, ώστε ένα αίτημα που φτάνει από το Cursor να μη διαρρέει το User-Agent: Cursor/X.Y.Z σε έναν ανάντη Claude. Ανατρέξτε στο src/shared/constants/upstreamHeaders.ts για τη λίστα αποκλεισμού, η οποία διατηρείται συγχρονισμένη με τα σχήματα Zod και τις δοκιμές μονάδας.
- Καταγράψτε την επίσημη κίνηση CLI με το
mitmproxy(υποκλοπή TLS + εξαγωγή) - Εξαγάγετε τα JA3/JA4 και την ακριβή σειρά των κεφαλίδων
- Ενημερώστε τη σχετική καταχώριση
CLI_FINGERPRINTS[...] - Αυξήστε την αντίστοιχη προεπιλεγμένη τιμή
*_USER_AGENTστο.env.example - Αν άλλαξε η ίδια η χειραψία TLS, ενημερώστε το σχετικό περίβλημα παρόχου ή την επιλογή
browser:του wreq-js - Εκτελέστε τις δοκιμές TLS για τον συγκεκριμένο πάροχο και μια μη αυτόματη δοκιμή-δείκτη στον ενεργό πάροχο
- Διανείμετε την αλλαγή σε μια έκδοση επιδιόρθωσης· τεκμηριώστε την στο
CHANGELOG.md
open-sse/services/__tests__/claudeTlsClient.test.ts— συμπεριφορά του κοινόχρηστου περιβλήματος TLStests/unit/anthropic-cache-fingerprint.test.ts— ντετερμινισμός αποτυπώματοςtests/unit/chatgpt-web-source-retirement.test.ts— η κοινή πηγή απόκρυψης ChatGPT Web παραμένει απούσα, ενώ το Codex Web παραμένει παρόν
- RESILIENCE_GUIDE.md — τι συμβαίνει όταν μια διαδρομή stealth λαμβάνει ένα
403 - TROUBLESHOOTING.md
- ENVIRONMENT.md — πλήρης αναφορά μεταβλητών περιβάλλοντος
- CLI-TOOLS.md — προβολή της ροής εργασίας MITM για τον χειριστή