# 🌐 OmniRoute Proxy Guide (मराठी) 🌐 **Languages:** 🇺🇸 [English](../../../../ops/PROXY_GUIDE.md) · 🇪🇹 [am](../../../am/docs/ops/PROXY_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/ops/PROXY_GUIDE.md) · 🇦🇿 [az](../../../az/docs/ops/PROXY_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/ops/PROXY_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/ops/PROXY_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/ops/PROXY_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/ops/PROXY_GUIDE.md) · 🇩🇰 [da](../../../da/docs/ops/PROXY_GUIDE.md) · 🇩🇪 [de](../../../de/docs/ops/PROXY_GUIDE.md) · 🇬🇷 [el](../../../el/docs/ops/PROXY_GUIDE.md) · 🇪🇸 [es](../../../es/docs/ops/PROXY_GUIDE.md) · 🇪🇪 [et](../../../et/docs/ops/PROXY_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/ops/PROXY_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/ops/PROXY_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/ops/PROXY_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/ops/PROXY_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/ops/PROXY_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/ops/PROXY_GUIDE.md) · 🇮🇱 [he](../../../he/docs/ops/PROXY_GUIDE.md) · 🇮🇳 [hi](../../../hi/docs/ops/PROXY_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/ops/PROXY_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/ops/PROXY_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/ops/PROXY_GUIDE.md) · 🇮🇩 [id](../../../id/docs/ops/PROXY_GUIDE.md) · 🇳🇬 [ig](../../../ig/docs/ops/PROXY_GUIDE.md) · 🇮🇹 [it](../../../it/docs/ops/PROXY_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/ops/PROXY_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/ops/PROXY_GUIDE.md) · 🇰🇭 [km](../../../km/docs/ops/PROXY_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/ops/PROXY_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/ops/PROXY_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/ops/PROXY_GUIDE.md) · 🇱🇻 [lv](../../../lv/docs/ops/PROXY_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/ops/PROXY_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/ops/PROXY_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/ops/PROXY_GUIDE.md) · 🇲🇲 [my](../../../my/docs/ops/PROXY_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/ops/PROXY_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/ops/PROXY_GUIDE.md) · 🇳🇴 [no](../../../no/docs/ops/PROXY_GUIDE.md) · 🇮🇳 [or](../../../or/docs/ops/PROXY_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/ops/PROXY_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/ops/PROXY_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/ops/PROXY_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/ops/PROXY_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/ops/PROXY_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/ops/PROXY_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/ops/PROXY_GUIDE.md) · 🇱🇰 [si](../../../si/docs/ops/PROXY_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/ops/PROXY_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/ops/PROXY_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/ops/PROXY_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/ops/PROXY_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/ops/PROXY_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/ops/PROXY_GUIDE.md) · 🇮🇳 [te](../../../te/docs/ops/PROXY_GUIDE.md) · 🇹🇭 [th](../../../th/docs/ops/PROXY_GUIDE.md) · 🇹🇷 [tr](../../../tr/docs/ops/PROXY_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/ops/PROXY_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/ops/PROXY_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/ops/PROXY_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/ops/PROXY_GUIDE.md) · 🇳🇬 [yo](../../../yo/docs/ops/PROXY_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/ops/PROXY_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/ops/PROXY_GUIDE.md) --- > **भौगोलिक अवरोध टाळा, तुमची ओळख सुरक्षित ठेवा आणि AI ट्रॅफिक कोणत्याही प्रॉक्सीद्वारे रूट करा — तेही कॉन्फिगरेशनची कोणतीही गुंतागुंत न ठेवता.** OmniRoute मध्ये सर्व सुविधांनी युक्त प्रॉक्सी व्यवस्थापन प्रणाली समाविष्ट आहे, जी तुम्हाला अपस्ट्रीम AI प्रदात्यांचे ट्रॅफिक HTTP, HTTPS किंवा SOCKS5 प्रॉक्सीद्वारे रूट करू देते. तुम्ही अवरोधित प्रदेशात असाल, तुम्हाला IP रोटेशनची गरज असेल किंवा गुप्त फिंगरप्रिंटिंग हवे असेल — या मार्गदर्शकामध्ये सर्वकाही समाविष्ट आहे. --- ## विषयसूची - [प्रॉक्सी का वापरावेत?](#why-use-proxies) - [आर्किटेक्चरचा आढावा](#architecture-overview) - [4-स्तरीय प्रॉक्सी प्रणाली](#4-level-proxy-system) - [प्रॉक्सी रजिस्ट्री (CRUD)](#proxy-registry-crud) - [1proxy मोफत मार्केटप्लेस](#1proxy-free-proxy-marketplace) - [प्रॉक्सी रोटेशन](#proxy-rotation) - [अँटी-डिटेक्शन आणि स्टेल्थ](#anti-detection--stealth) - [अपस्ट्रीम प्रॉक्सी मोड](#upstream-proxy-modes) - [डॅशबोर्ड UI](#dashboard-ui) - [API संदर्भ](#api-reference) - [एन्व्हायर्नमेंट व्हेरिएबल्स](#environment-variables) - [समस्यानिवारण](#troubleshooting) --- ## प्रॉक्सी का वापरावेत? अनेक AI प्रदाते भौगोलिक प्रदेशानुसार प्रवेशावर निर्बंध घालतात. **रशिया, चीन, इराण, क्युबा, तुर्की** आणि इतर देशांमधील विकसकांना पुढीलप्रमाणे त्रुटी आढळतात: ``` unsupported_country_region_territory ``` अवरोधित प्रदेशांच्या बाहेरही प्रॉक्सी पुढील कारणांसाठी उपयुक्त आहेत: | वापराचे प्रकरण | वर्णन | | ----------------------- | ---------------------------------------------------------------------- | | **भौगोलिक अवरोध टाळणे** | अवरोधित देशांमधून OpenAI, Anthropic, Codex, Copilot मध्ये प्रवेश मिळवा | | **IP रोटेशन** | दर-मर्यादा टाळण्यासाठी विनंत्या अनेक IP मध्ये वितरित करा | | **गोपनीयता** | अपस्ट्रीम प्रदात्यांपासून तुमचा वास्तविक IP लपवा | | **अनुपालन** | विशिष्ट अधिकारक्षेत्रांमधून ट्रॅफिक रूट करा | | **चाचणी** | वेगवेगळ्या प्रदेशांमधील विनंत्यांचे अनुकरण करा | --- ## आर्किटेक्चरचा आढावा ``` ┌───────────────────────────────────────────────────────────────┐ │ OmniRoute सर्व्हर │ │ │ │ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │ │ │ प्रॉक्सी │ │ प्रॉक्सी │ │ प्रॉक्सी │ │ │ │ रजिस्ट्री │───▶│ डिस्पॅचर │───▶│ Fetch (undici) │ │ │ │ (SQLite) │ │ (कॅश केलेले) │ │ │ │ │ └─────────────┘ └──────────────┘ └────────┬─────────┘ │ │ ▲ │ │ │ │ ▼ │ │ ┌──────┴──────┐ ┌──────────────────┐ │ │ │ 1proxy सिंक │ │ अपस्ट्रीम │ │ │ │ (मोफत पूल) │ │ प्रदाता API │ │ │ └─────────────┘ └──────────────────┘ │ └───────────────────────────────────────────────────────────────┘ ``` ### प्रमुख घटक | घटक | फाइल | भूमिका | | ---------------------- | -------------------------------------------- | ----------------------------------------------------- | | **प्रॉक्सी रजिस्ट्री** | `src/lib/db/proxies.ts` | प्रॉक्सी नोंदी आणि स्कोप नेमणुकांसाठी CRUD | | **प्रॉक्सी डिस्पॅचर** | `open-sse/utils/proxyDispatcher.ts` | कॅशिंगसह `undici` ProxyAgent/SOCKS डिस्पॅचर तयार करतो | | **प्रॉक्सी Fetch** | `open-sse/utils/proxyFetch.ts` | प्रॉक्सी डिस्पॅचर इंजेक्शनसह `fetch()` रॅप करतो | | **सेटिंग्ज रूट** | `src/app/api/settings/proxy/route.ts` | लेगसी प्रॉक्सी कॉन्फिगरेशन API (GET/PUT/DELETE) | | **व्यवस्थापन रूट** | `src/app/api/v1/management/proxies/route.ts` | रजिस्ट्री CRUD API (GET/POST/PATCH/DELETE) | | **1proxy DB** | `src/lib/db/oneproxy.ts` | मोफत प्रॉक्सी मार्केटप्लेससाठी कायमस्वरूपी डेटा साठवण | --- ## 4-स्तरीय प्रॉक्सी प्रणाली OmniRoute **चार स्वतंत्र व्याप्तींवर** प्रॉक्सी कॉन्फिगरेशनला समर्थन देते, ज्यांचे प्राधान्यक्रमानुसार निराकरण केले जाते: ``` प्राधान्य निराकरण क्रम (सर्वोच्च → सर्वात कमी): 1. 🔵 खाते/कनेक्शन प्रॉक्सी → प्रत्येक API की / OAuth कनेक्शनसाठी 2. 🟡 प्रदाता प्रॉक्सी → प्रत्येक प्रदात्यासाठी (उदा., सर्व OpenAI ट्रॅफिक) 3. 🟠 कॉम्बो प्रॉक्सी → प्रत्येक कॉम्बो/रूटिंग कॉन्फिगरेशनसाठी 4. 🟢 ग्लोबल प्रॉक्सी → सर्व ट्रॅफिक, सर्व प्रदाते ``` ### निराकरण कसे कार्य करते OmniRoute जेव्हा अपस्ट्रीम प्रदात्याकडे विनंती पाठवते, तेव्हा ते `resolveProxyForConnectionFromRegistry()` कॉल करते, जे प्रत्येक स्तराची क्रमाने तपासणी करते: 1. **खाते-स्तर** — या विशिष्ट कनेक्शन ID ला प्रॉक्सी नियुक्त केली आहे का? 2. **प्रदाता-स्तर** — या प्रदात्याला (उदा., `openai`) प्रॉक्सी नियुक्त केली आहे का? 3. **ग्लोबल-स्तर** — ग्लोबल प्रॉक्सी कॉन्फिगर केली आहे का? 4. **प्रॉक्सी नाही** — प्रदात्याशी थेट कनेक्शन. पहिली जुळणारी नोंद वापरली जाते. याचा अर्थ तुम्ही ग्लोबल प्रॉक्सी फॉलबॅक म्हणून सेट करू शकता, परंतु विशिष्ट प्रदाते किंवा कनेक्शनसाठी ती ओव्हरराइड करू शकता. ### कोणते ट्रॅफिक प्रॉक्सीमार्फत जाते | ट्रॅफिकचा प्रकार | प्रॉक्सीमार्फत? | नोंदी | | ------------------- | --------------- | --------------------------------------------- | | चॅट पूर्णता | ✅ | सर्व `/v1/chat/completions` विनंत्या | | एम्बेडिंग्ज | ✅ | `/v1/embeddings` | | प्रतिमा निर्मिती | ✅ | `/v1/images/generations` | | ऑडिओ (TTS/STT) | ✅ | `/v1/audio/*` | | OAuth टोकन एक्सचेंज | ✅ | `unsupported_country_region_territory` सोडवते | | कनेक्शन चाचण्या | ✅ | "कनेक्शनची चाचणी करा" बटण प्रॉक्सी वापरते | | टोकन रिफ्रेश | ✅ | पार्श्वभूमीतील OAuth नूतनीकरण | | मॉडेल सिंक | ✅ | मॉडेल सूचीकरण आणि शोध | --- ## प्रॉक्सी रजिस्ट्री (CRUD) प्रॉक्सी रजिस्ट्री ही एक SQLite टेबल (`proxy_registry`) आहे, जी तुमच्या सर्व प्रॉक्सी संग्रहित करते. प्रत्येक प्रॉक्सीमध्ये पुढील घटक असतात: | फील्ड | प्रकार | वर्णन | | ---------- | -------- | ------------------------------------------------------------ | | `id` | UUID | अद्वितीय ओळखकर्ता | | `name` | स्ट्रिंग | माणसाला वाचता येण्याजोगे लेबल | | `type` | स्ट्रिंग | प्रोटोकॉल: `http`, `https`, `socks5` | | `host` | स्ट्रिंग | प्रॉक्सी होस्टनेम किंवा IP | | `port` | पूर्णांक | पोर्ट क्रमांक | | `username` | स्ट्रिंग | प्रमाणीकरण वापरकर्तानाव (संग्रहित स्थितीत एन्क्रिप्ट केलेले) | | `password` | स्ट्रिंग | प्रमाणीकरण पासवर्ड (संग्रहित स्थितीत एन्क्रिप्ट केलेला) | | `region` | स्ट्रिंग | भौगोलिक प्रदेशाचे लेबल | | `notes` | स्ट्रिंग | मुक्त-मजकूर नोंदी | | `status` | स्ट्रिंग | `active` किंवा `inactive` | | `source` | स्ट्रिंग | `manual` किंवा `oneproxy` | ### प्रॉक्सी तयार करणे **डॅशबोर्डद्वारे:** 1. **सेटिंग्ज → प्रॉक्सी** वर जा 2. **प्रॉक्सी जोडा** क्लिक करा 3. प्रकार, होस्ट, पोर्ट आणि पर्यायी प्रमाणीकरण क्रेडेन्शियल्स भरा 4. जतन करा **API द्वारे:** ```bash curl -X POST http://localhost:20128/api/v1/management/proxies \ -H "Content-Type: application/json" \ -d '{ "name": "US Proxy", "type": "http", "host": "proxy.example.com", "port": 8080, "username": "user", "password": "pass", "region": "US" }' ``` ### प्रॉक्सी अपडेट करणे ```bash curl -X PATCH http://localhost:20128/api/v1/management/proxies \ -H "Content-Type: application/json" \ -d '{ "id": "proxy-uuid-here", "host": "new-proxy.example.com", "port": 9090 }' ``` > **नोंद:** तुम्ही स्पष्टपणे रिक्त नसलेले नवीन पर्याय पाठवत नाही तोपर्यंत क्रेडेन्शियल्स जतन केली जातात. `username`/`password` साठी रिक्त स्ट्रिंग पाठवल्यास संग्रहित मूल्ये कायम ठेवली जातील. ### प्रॉक्सी हटवणे ```bash # प्रॉक्सी कोणत्याही व्याप्तीला नियुक्त केलेली असल्यास अयशस्वी होते curl -X DELETE "http://localhost:20128/api/v1/management/proxies?id=proxy-uuid" # सक्तीने हटवा (नियुक्त्यादेखील काढून टाकते) curl -X DELETE "http://localhost:20128/api/v1/management/proxies?id=proxy-uuid&force=1" ``` ### प्रॉक्सींची सूची मिळवणे ```bash curl "http://localhost:20128/api/v1/management/proxies?limit=50&offset=0" ``` ### व्याप्तींना प्रॉक्सी नियुक्त करणे ```bash # ग्लोबल व्याप्तीला नियुक्त करा curl -X PUT http://localhost:20128/api/settings/proxy \ -H "Content-Type: application/json" \ -d '{"level": "global", "proxy": {"type":"http","host":"proxy.example.com","port":8080}}' # विशिष्ट प्रदात्याला नियुक्त करा curl -X PUT http://localhost:20128/api/settings/proxy \ -H "Content-Type: application/json" \ -d '{"level": "provider", "id": "openai", "proxy": {"type":"socks5","host":"socks.example.com","port":1080}}' # विशिष्ट कनेक्शन/कीला नियुक्त करा curl -X PUT http://localhost:20128/api/settings/proxy \ -H "Content-Type: application/json" \ -d '{"level": "key", "id": "connection-uuid", "proxy": {"type":"http","host":"key-proxy.com","port":3128}}' ``` ### प्रभावी प्रॉक्सीचे निराकरण करणे दिलेल्या कनेक्शनसाठी कोणती प्रॉक्सी वापरली जाईल ते तपासा: ```bash curl "http://localhost:20128/api/settings/proxy?resolve=connection-uuid" ``` निराकरण केलेली प्रॉक्सी तिच्या स्तरासह (`account`, `provider`, किंवा `global`) आणि स्रोतासह परत करते. ### मोठ्या प्रमाणात नियुक्ती एक प्रॉक्सी एकाच वेळी अनेक प्रदाते किंवा कनेक्शनना नियुक्त करा: ```bash curl -X POST http://localhost:20128/api/v1/management/proxies/bulk-assign \ -H "Content-Type: application/json" \ -d '{ "scope": "provider", "scopeIds": ["openai", "anthropic", "codex"], "proxyId": "proxy-uuid" }' ``` ### आयात/निर्यात प्रॉक्सींचा **बॅकअप/पुनर्संचयित करा** प्रणालीमध्ये समावेश केला जातो. तुम्ही तुमचे OmniRoute कॉन्फिगरेशन निर्यात करता तेव्हा: 1. **डॅशबोर्ड → सेटिंग्ज → बॅकअप** वर जा 2. **निर्यात करा** क्लिक करा — प्रॉक्सी रजिस्ट्री आणि नियुक्त्यांचा समावेश केला जातो 3. पुनर्संचयित करण्यासाठी, **आयात करा** क्लिक करा आणि बॅकअप फाइल अपलोड करा प्रॉक्सी रजिस्ट्री **host+port नुसार upsert** लादेखील समर्थन देते — आधीपासून अस्तित्वात असलेली प्रॉक्सी (समान होस्ट आणि पोर्ट) तुम्ही आयात केल्यास, डुप्लिकेट तयार करण्याऐवजी ती अपडेट केली जाते. ### लेगसी स्थलांतर तुम्ही जुन्या आवृत्तीत (registry-पूर्व) प्रॉक्सी कॉन्फिगर केले असल्यास, OmniRoute त्यांचे स्वयंचलितपणे स्थलांतर करते: ``` जुने key_value स्टोअर → proxy_registry + proxy_assignments ``` हे अपग्रेडनंतर प्रथमच स्टार्टअप होताना एकदाच घडते. पुन्हा चालवण्यासाठी `migrateLegacyProxyConfigToRegistry({ force: true })` वापरा. --- ## 1proxy मोफत प्रॉक्सी मार्केटप्लेस > 🆕 **योगदानकर्ता [@oyi77](https://github.com/oyi77)** — PR [#1847](https://github.com/diegosouzapw/OmniRoute/pull/1847) (समस्या [#1788](https://github.com/diegosouzapw/OmniRoute/issues/1788)) ज्या वापरकर्त्यांकडे स्वतःची प्रॉक्सी पायाभूत सुविधा नाही, त्यांना जगभरातील **शेकडो मोफत, सत्यापित प्रॉक्सींचा** वापर करता यावा यासाठी OmniRoute हे **[1proxy](https://1proxy-api.aitradepulse.com)** समुदाय प्लॅटफॉर्मसोबत एकत्रित केले आहे. ### हे कसे कार्य करते ``` ┌─────────────┐ समक्रमण ┌─────────────────┐ रोटेशन ┌──────────┐ │ 1proxy API │ ────────────▶ │ proxy_registry │ ────────────▶ │ प्रदाता │ │ (बाह्य) │ 500 पर्यंत │ source=oneproxy │ गुणवत्तेनुसार │ API │ └─────────────┘ प्रॉक्सी └─────────────────┘ └──────────┘ ``` 1. **समक्रमण** — OmniRoute, 1proxy API वरून सत्यापित प्रॉक्सी प्राप्त करते 2. **साठवण** — प्रॉक्सी त्याच `proxy_registry` तक्त्यात `source = 'oneproxy'` सह जतन केल्या जातात 3. **फिल्टर** — प्रोटोकॉल, देश आणि गुणवत्ता गुणांनुसार फिल्टर करा 4. **रोटेशन** — गुणवत्ता, यादृच्छिक किंवा अनुक्रमिक धोरणांचा वापर करून सर्वोत्तम प्रॉक्सी निवडा 5. **स्वयंचलित अवनती** — अयशस्वी प्रॉक्सींचे गुणवत्ता गुण कमी केले जातात; मर्यादेपेक्षा कमी झाल्यास → निष्क्रिय म्हणून चिन्हांकित केले जाते ### प्रॉक्सी समक्रमित करणे **डॅशबोर्डद्वारे:** 1. **Settings → 1proxy** टॅबवर जा 2. **"Sync Now"** वर क्लिक करा 3. आकडेवारी पाहा: एकूण प्रॉक्सी, सक्रिय संख्या, सरासरी गुणवत्ता आणि देशनिहाय तपशील **API द्वारे:** ```bash # समक्रमण सुरू करा curl -X POST http://localhost:20128/api/settings/oneproxy \ -H "Content-Type: application/json" \ -d '{}' # प्रतिसाद: # { "success": true, "added": 127, "updated": 45, "failed": 2, "total": 172 } ``` ### प्रॉक्सी फिल्टर करणे ```bash # प्रोटोकॉलनुसार फिल्टर करा curl "http://localhost:20128/api/settings/oneproxy?protocol=socks5" # देशानुसार फिल्टर करा curl "http://localhost:20128/api/settings/oneproxy?countryCode=US" # किमान गुणवत्ता गुणांनुसार फिल्टर करा curl "http://localhost:20128/api/settings/oneproxy?minQuality=80" # फिल्टर एकत्रित करा curl "http://localhost:20128/api/settings/oneproxy?protocol=http&countryCode=DE&minQuality=70" ``` ### प्रॉक्सी गुणवत्ता गुण प्रत्येक 1proxy प्रॉक्सीसोबत मेटाडेटा उपलब्ध असतो: | फील्ड | वर्णन | | --------------- | --------------------------------------------- | | `qualityScore` | 1proxy सत्यापनाकडून मिळालेले 0-100 गुणांकन | | `latencyMs` | मोजलेली नेटवर्क विलंबता | | `anonymity` | `transparent`, `anonymous` किंवा `elite` | | `googleAccess` | प्रॉक्सी Google सेवांमध्ये प्रवेश करू शकते का | | `countryCode` | दोन-अक्षरी ISO देश कोड | | `lastValidated` | शेवटच्या सत्यापनाचा टाइमस्टॅम्प | गुणवत्ता गुण गतिशीलपणे समायोजित केले जातात: - **अयशस्वी विनंत्यांमुळे** गुण 10 अंकांनी कमी होतात - **गुण ≤10 पर्यंत घसरल्यास** → प्रॉक्सी `inactive` म्हणून चिन्हांकित केली जाते - निष्क्रिय प्रॉक्सी रोटेशनमधून वगळल्या जातात ### रोटेशन धोरणे ```bash # गुणवत्तेनुसार रोटेशन (सर्वोत्तम प्रॉक्सी प्रथम) — डीफॉल्ट curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \ -H "Content-Type: application/json" \ -d '{"strategy": "quality"}' # यादृच्छिक रोटेशन curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \ -d '{"strategy": "random"}' # अनुक्रमिक (सर्वात अलीकडे सत्यापित न केलेली प्रथम) curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \ -d '{"strategy": "sequential"}' ``` ### सर्किट ब्रेकर 1proxy समक्रमणामध्ये अंगभूत सर्किट ब्रेकर आहे: - **सलग 5 समक्रमण अपयशांनंतर**, पुढील समक्रमण प्रयत्न अवरोधित केले जातात - याचा वापर करून रीसेट करा: `resetOneproxyCircuitBreaker()` किंवा सर्व्हर रीस्टार्ट करा - समक्रमण स्थिती `GET /api/settings/oneproxy?action=status` येथे उपलब्ध आहे ### 1proxy प्रॉक्सी साफ करणे ```bash # एकच 1proxy प्रॉक्सी हटवा curl -X DELETE "http://localhost:20128/api/settings/oneproxy?id=proxy-uuid" # सर्व 1proxy प्रॉक्सी साफ करा (मॅन्युअल प्रॉक्सी बदलल्या जात नाहीत) curl -X DELETE "http://localhost:20128/api/settings/oneproxy?clearAll=1" ``` --- ## शोध टाळणे आणि गोपनीयता OmniRoute फक्त प्रॉक्सीद्वारे ट्रॅफिक रूट करत नाही — ते ट्रॅफिक वैध असल्यासारखेही भासवते: ### TLS फिंगरप्रिंट स्पूफिंग ब्राउझरसारखे TLS फिंगरप्रिंट तयार करण्यासाठी `wreq-js` वापरते आणि ब्राउझरबाह्य TLS हँडशेक चिन्हांकित करणाऱ्या बॉट शोध प्रणालींना चकवा देते. ### CLI फिंगरप्रिंट जुळवणी **CLI फिंगरप्रिंट टॉगल** (`Settings → Security`) नेटिव्ह CLI बायनरींच्या (Claude Code, Codex इ.) अचूक स्वाक्षरीशी जुळण्यासाठी HTTP हेडर्स आणि JSON बॉडी फील्ड्सचा क्रम बदलते. हे प्रॉक्सीच्या **वरच्या स्तरावर** कार्य करते: ``` तुमचा IP (अवरोधित) → प्रॉक्सी IP (US) → प्रदाता API + TLS स्पूफ + CLI फिंगरप्रिंट ``` तुम्हाला एकाच वेळी **IP मास्किंग** आणि **विनंतीची अस्सलता** हे दोन्ही मिळतात. ### प्रॉक्सी IP जतन डॅशबोर्डमधील रंग-संकेतित बॅज कोणता प्रॉक्सी स्तर सक्रिय आहे हे दाखवतात: | बॅज | स्तर | अर्थ | | --- | ------- | ---------------------------------------------- | | 🟢 | जागतिक | सर्व ट्रॅफिक या प्रॉक्सीद्वारे जाते | | 🟡 | प्रदाता | फक्त या प्रदात्याचे ट्रॅफिक प्रॉक्सी केले जाते | | 🔵 | कनेक्शन | ही विशिष्ट की/खाते हा प्रॉक्सी वापरते | पडताळणीसाठी बॅज निर्धारीत केलेला प्रॉक्सी IP देखील दाखवतो. --- ## अपस्ट्रीम प्रॉक्सी मोड्स CLIProxyAPI पॅटर्न वापरणाऱ्या प्रदात्यांसाठी OmniRoute तीन अपस्ट्रीम प्रॉक्सी मोड्सना समर्थन देते: | मोड | वर्णन | | ------------- | ---------------------------------------------------------- | | `native` | OmniRoute थेट प्रॉक्सी रूटिंग हाताळते (डीफॉल्ट) | | `cliproxyapi` | बाह्य CLIProxyAPI इन्स्टन्सकडे कार्य सोपवते | | `fallback` | प्रथम नेटिव्ह पद्धत वापरते, अपयश आल्यास CLIProxyAPI वापरते | प्रत्येक प्रदात्यासाठी कॉन्फिगर करा: ```bash curl -X PUT "http://localhost:20128/api/upstream-proxy/openai" \ -H "Content-Type: application/json" \ -d '{"mode": "native", "enabled": true}' ``` --- ## डॅशबोर्ड UI ### सेटिंग्ज → प्रॉक्सी टॅब - **जागतिक प्रॉक्सी** कॉन्फिगरेशन (सर्व ट्रॅफिकसाठी एकदाच सेट करा) - **प्रत्येक प्रदात्यासाठी प्रॉक्सी** अधिलेखन - **प्रत्येक कनेक्शनसाठी प्रॉक्सी** नियुक्त्या - कॉन्फिगर केलेल्या प्रॉक्सीद्वारे **कनेक्शन चाचणी** - सक्रिय प्रॉक्सी स्तर दाखवणारे **रंग-संकेतित बॅज** ### सेटिंग्ज → 1proxy टॅब - विनामूल्य प्रॉक्सी आणण्यासाठी **आता समक्रमित करा** बटण - **आकडेवारी कार्ड्स**: एकूण, सक्रिय, सरासरी गुणवत्ता, शेवटचे समक्रमण - **फिल्टर्स**: प्रोटोकॉल, देश कोड, किमान गुणवत्ता - होस्ट, प्रोटोकॉल, देश, गुणवत्ता गुण, विलंब, निनावीपणा आणि Google प्रवेश असलेला **प्रॉक्सी तक्ता** - यश/अपयश मागोवा आणि सलग अपयशांची संख्या असलेले **समक्रमण स्थिती** पॅनेल - सर्व 1proxy नोंदी काढून टाकण्यासाठी **सर्व साफ करा** --- ## API संदर्भ ### प्रॉक्सी सेटिंग्ज API | पद्धत | एंडपॉइंट | वर्णन | | -------- | ---------------------------------------------- | ------------------------------ | | `GET` | `/api/settings/proxy` | संपूर्ण प्रॉक्सी कॉन्फिग मिळवा | | `GET` | `/api/settings/proxy?level=global` | जागतिक प्रॉक्सी मिळवा | | `GET` | `/api/settings/proxy?level=provider&id=openai` | प्रदाता प्रॉक्सी मिळवा | | `GET` | `/api/settings/proxy?resolve=connectionId` | प्रभावी प्रॉक्सी निर्धारित करा | | `PUT` | `/api/settings/proxy` | प्रॉक्सी कॉन्फिग अद्ययावत करा | | `DELETE` | `/api/settings/proxy?level=provider&id=openai` | या स्तरावरील प्रॉक्सी काढा | ### प्रॉक्सी नोंदणी API | पद्धत | एंडपॉइंट | वर्णन | | -------- | ------------------------------------------------- | --------------------------- | | `GET` | `/api/v1/management/proxies` | सर्व प्रॉक्सींची सूची करा | | `GET` | `/api/v1/management/proxies?id=uuid` | ID द्वारे प्रॉक्सी मिळवा | | `GET` | `/api/v1/management/proxies?id=uuid&where_used=1` | प्रॉक्सी नियुक्त्या मिळवा | | `POST` | `/api/v1/management/proxies` | प्रॉक्सी तयार करा | | `PATCH` | `/api/v1/management/proxies` | प्रॉक्सी अद्ययावत करा | | `DELETE` | `/api/v1/management/proxies?id=uuid` | प्रॉक्सी हटवा | | `DELETE` | `/api/v1/management/proxies?id=uuid&force=1` | सक्तीने हटवा | | `POST` | `/api/v1/management/proxies/bulk-assign` | मोठ्या प्रमाणात नियुक्त करा | | `GET` | `/api/v1/management/proxies/assignments` | नियुक्त्यांची सूची करा | | `GET` | `/api/v1/management/proxies/health` | प्रॉक्सी आरोग्य आकडेवारी | ### टनेल्स API प्रॉक्सीद्वारे आउटबाउंड रूटिंग करण्याऐवजी तुमचा OmniRoute इन्स्टन्स सार्वजनिक इंटरनेटवर (Cloudflare/ngrok/Tailscale) उघड करण्यासाठी [TUNNELS_GUIDE.md](./TUNNELS_GUIDE.md) पहा. टनेल REST API हे `/api/tunnels/{cloudflared,ngrok,tailscale}/*` अंतर्गत उपलब्ध आहे आणि वर दस्तऐवजीकरण केलेल्या आउटबाउंड प्रॉक्सी साखळीपासून स्वतंत्र आहे. ### 1proxy API | पद्धत | एंडपॉइंट | वर्णन | | -------- | -------------------------------------- | ------------------------------- | | `GET` | `/api/settings/oneproxy` | 1proxy प्रॉक्सींची सूची करा | | `GET` | `/api/settings/oneproxy?action=stats` | आकडेवारी + समक्रमण स्थिती मिळवा | | `GET` | `/api/settings/oneproxy?action=status` | फक्त समक्रमण स्थिती मिळवा | | `POST` | `/api/settings/oneproxy` | समक्रमण सुरू करा | | `POST` | `/api/settings/oneproxy/rotate` | पुढील प्रॉक्सीकडे फिरवा | | `DELETE` | `/api/settings/oneproxy?id=uuid` | एक हटवा | | `DELETE` | `/api/settings/oneproxy?clearAll=1` | सर्व साफ करा | ### अपस्ट्रीम प्रॉक्सी API | पद्धत | एंडपॉइंट | वर्णन | | -------- | --------------------------------- | -------------------------------- | | `GET` | `/api/upstream-proxy/:providerId` | अपस्ट्रीम प्रॉक्सी कॉन्फिग मिळवा | | `PUT` | `/api/upstream-proxy/:providerId` | अपस्ट्रीम प्रॉक्सी मोड सेट करा | | `DELETE` | `/api/upstream-proxy/:providerId` | अपस्ट्रीम प्रॉक्सी कॉन्फिग काढा | --- ## पर्यावरणीय चल | चल | डीफॉल्ट | वर्णन | | --------------------- | ------- | ---------------------------------------------------------------------- | | `ENABLE_SOCKS5_PROXY` | `true` | SOCKS5 प्रॉक्सी समर्थन सक्षम करा (`.env.example` मध्ये डीफॉल्ट `true`) | --- ## समस्या निवारण ### "SOCKS5 प्रॉक्सी अक्षम आहे" तुमच्या `.env` फाइलमध्ये `ENABLE_SOCKS5_PROXY=true` सेट करा आणि रीस्टार्ट करा. ### प्रॉक्सीद्वारे "socket hang up" त्रुटी निष्क्रिय कनेक्शन तोडणाऱ्या स्वस्त प्रॉक्सींसह हे सामान्य आहे. OmniRoute हे आधीपासूनच पुढील प्रकारे हाताळते: - प्रॉक्सी कनेक्शनवर keep-alive अक्षम करून (`keepAliveTimeout: 1`) - पाइपलाइनिंग अक्षम करून (`pipelining: 0`) - वारंवार होणारे हँडशेक टाळण्यासाठी डिस्पॅचर कॅश करून समस्या कायम राहिल्यास, वेगळी प्रॉक्सी वापरून पाहा किंवा 1proxy रोटेशन वैशिष्ट्य वापरा. ### OAuth दरम्यान "unsupported_country_region_territory" OAuth प्रवाह सुरू करण्यापूर्वी प्रॉक्सी कॉन्फिगर केली असल्याची खात्री करा. OmniRoute कॉन्फिगर केलेल्या प्रॉक्सीद्वारे OAuth टोकनची देवाणघेवाण रूट करते. प्रथम जागतिक किंवा प्रदाता-स्तरीय प्रॉक्सी सेट करा, त्यानंतर कनेक्ट करा. ### प्रॉक्सी वापरली जात नाही निराकरणाचा क्रम तपासा: 1. `GET /api/settings/proxy?resolve=your-connection-id` वापरून पडताळा 2. प्रॉक्सीचे `status` हे `active` (`inactive` नाही) असल्याचे तपासा 3. प्रॉक्सी असाइनमेंटची व्याप्ती तुमच्या कनेक्शनशी जुळते याची खात्री करा ### 1proxy सिंक अयशस्वी होत आहे सिंक स्थिती तपासा: ```bash curl "http://localhost:20128/api/settings/oneproxy?action=status" ``` `consecutiveFailures >= 5` असल्यास, सर्किट ब्रेकर ट्रिप झाला आहे. रीसेट करण्यासाठी सर्व्हर रीस्टार्ट करा किंवा मॅन्युअल रीसेटची प्रतीक्षा करा. --- ## डेटाबेस स्कीमा ### `proxy_registry` सारणी ```sql CREATE TABLE proxy_registry ( id TEXT PRIMARY KEY, name TEXT NOT NULL, type TEXT NOT NULL DEFAULT 'http', host TEXT NOT NULL, port INTEGER NOT NULL, username TEXT DEFAULT '', password TEXT DEFAULT '', region TEXT, notes TEXT, status TEXT DEFAULT 'active', source TEXT NOT NULL DEFAULT 'manual', -- 'manual' किंवा 'oneproxy' quality_score INTEGER, -- 0-100 (फक्त 1proxy) latency_ms INTEGER, -- मिलिसेकंद (फक्त 1proxy) anonymity TEXT, -- transparent/anonymous/elite google_access INTEGER DEFAULT 0, -- Google मध्ये प्रवेश करू शकते का? (1proxy) last_validated TEXT, -- ISO टाइमस्टॅम्प (1proxy) country_code TEXT, -- ISO 2-अक्षरी कोड (1proxy) created_at TEXT NOT NULL, updated_at TEXT NOT NULL ); ``` ### `proxy_assignments` सारणी ```sql CREATE TABLE proxy_assignments ( id INTEGER PRIMARY KEY AUTOINCREMENT, proxy_id TEXT NOT NULL REFERENCES proxy_registry(id), scope TEXT NOT NULL, -- 'global', 'provider', 'account', 'combo' scope_id TEXT, -- प्रदाता ID, कनेक्शन ID किंवा कॉम्बो ID created_at TEXT NOT NULL, updated_at TEXT NOT NULL, UNIQUE(scope, scope_id) ); ``` --- ## प्रॉक्सी आरोग्य तपासणी (v3.8.16+) OmniRoute ची **प्रॉक्सी फास्ट-फेल** यंत्रणा (`src/lib/proxyHealth.ts`) जलद TCP कनेक्शन तपासणीद्वारे <2s मध्ये बंद पडलेल्या प्रॉक्सी शोधते आणि त्यानंतर प्रत्येक विनंतीचा अतिरिक्त भार टाळण्यासाठी **निकाल कॅश करते**. ### हे कसे कार्य करते ``` विनंती ──▶ ProxyHealthCache.get(url) │ ├─ कॅश हिट + ताजी? ──▶ कॅश केलेली स्थिती परत करा │ └─ कॅश मिस / कालबाह्य? ──▶ host:port शी TCP कनेक्शन करा (टाइमआउट: FAST_FAIL_TIMEOUT_MS) ──▶ HEALTH_CACHE_TTL_MS इतका वेळ कॅश करा ──▶ निकाल परत करा ``` ही यंत्रणा नसल्यास, बंद पडलेली प्रॉक्सी अयशस्वी होण्यापूर्वी प्रत्येक विनंतीला पूर्ण `PROXY_TIMEOUT_MS` (डीफॉल्ट 30s) कालावधीसाठी अवरोधित करेल. ### समायोजित करता येणारे पर्यावरणीय चल | चल | डीफॉल्ट | उद्देश | | ---------------------------- | ------- | ---------------------------------------------- | | `PROXY_FAST_FAIL_TIMEOUT_MS` | `2000` | प्रत्येक आरोग्य तपासणीसाठी TCP कनेक्शन टाइमआउट | | `PROXY_HEALTH_CACHE_TTL_MS` | `30000` | आरोग्य तपासणीचा निकाल किती काळ कॅश करायचा | **शिफारस केलेली मूल्ये:** | परिस्थिती | फास्ट-फेल टाइमआउट | कॅश TTL | कारण | | -------------------------- | ----------------- | ------- | ------------------------------------------------------- | | उच्च-थ्रूपुट API गेटवे | 1500ms | 60000ms | आक्रमक फेल-फास्ट, तपासण्या कमी करण्यासाठी दीर्घ कॅश | | भौगोलिकदृष्ट्या वितरित नोड | 3000ms | 15000ms | संथ नेटवर्कना अधिक वेळ लागतो; जलद फेलओव्हरसाठी लहान कॅश | | विकास / चाचणी | 1000ms | 10000ms | स्थानिक प्रॉक्सींसाठी जलद पुनरावृत्ती | | गुप्त / शोध-विरोधी | 2500ms | 45000ms | दर मर्यादा ट्रिगर करू शकणारी जलद तपासणी टाळा | ### प्रॉक्सी आरोग्याची तपासणी ```ts import { getAllProxyHealthStatuses, invalidateProxyHealth } from "omniroute/proxyHealth"; const statuses = getAllProxyHealthStatuses(); for (const s of statuses) { console.log(`${s.proxyUrl} → healthy=${s.healthy}, stale=${s.stale}`); } // विशिष्ट प्रॉक्सीची पुन्हा तपासणी सक्तीने करा invalidateProxyHealth("http://user:pass@203.0.113.7:8080"); ``` कॅश नोंदीने `HEALTH_CACHE_TTL_MS` ओलांडल्यावर `stale` ध्वज `true` असतो आणि पुढील विनंती नवीन तपासणी ट्रिगर करेल. ### प्रत्येक प्रॉक्सी प्रकारासाठी डीफॉल्ट आरोग्य तपासणी URL स्कीमवर आधारित योग्य डीफॉल्ट वापरते: | स्कीम | डीफॉल्ट पोर्ट | | -------------------------- | ------------- | | `http://` | 8080 | | `https://` | 443 | | `socks5://` / `socks5h://` | 1080 | URL मधील सानुकूल पोर्टना (`http://host:9999`) स्कीमच्या डीफॉल्टपेक्षा नेहमीच प्राधान्य दिले जाते. --- ## प्रॉक्सी विश्लेषण आणि निरीक्षणक्षमता रूटिंग पॅटर्न, विलंबातील अचानक वाढ आणि वारंवार होणारे अपयश यांचे निदान करण्यात ऑपरेटरना मदत करण्यासाठी OmniRoute प्रत्येक प्रॉक्सीचा वापर ट्रॅक करते. ### काय ट्रॅक केले जाते कॉन्फिगर केलेल्या प्रॉक्सीद्वारे जाणाऱ्या प्रत्येक विनंतीसाठी, OmniRoute खालील माहिती नोंदवते: | मेट्रिक | वर्णन | | ------------ | -------------------------------------------------------- | | `proxy_url` | संपूर्ण प्रॉक्सी URL (प्रमाणीकरण क्रेडेन्शियल्स लपवलेली) | | `provider` | अपस्ट्रीम प्रदाता ID (openai, anthropic इत्यादी) | | `latency_ms` | प्रॉक्सी हँडशेकसह एकूण राउंड-ट्रिप वेळ | | `connect_ms` | केवळ TCP कनेक्ट वेळ | | `status` | अपस्ट्रीमकडून मिळालेला HTTP स्थिती कोड | | `error` | विनंती अयशस्वी झाल्यास त्रुटी वर्ग | | `timestamp` | ISO 8601 UTC | ### डेटा ॲक्सेस करणे ```bash # अलीकडील प्रॉक्सी इव्हेंट्स curl -H "Authorization: Bearer $OMNIROUTE_KEY" \ "http://localhost:20128/api/usage/proxy-logs?limit=100" ``` प्रत्यक्ष एंडपॉइंट `/api/usage/proxy-logs` आहे (`src/app/api/usage/proxy-logs/route.ts` पहा). हा एंडपॉइंट खालील गोष्टींना समर्थन देतो: - `GET /api/usage/proxy-logs` — प्रॉक्सी लॉग्स मिळवा - `DELETE /api/usage/proxy-logs` — सर्व प्रॉक्सी लॉग्स हटवा आवश्यक असल्यास, एकत्रित आकडेवारीची थेट `proxy_logs` टेबलमधून SQL वापरून क्वेरी करता येते. डॅशबोर्ड UI मध्ये एकत्रित दृश्ये उपलब्ध असू शकतात. ### सामान्य पॅटर्न **वारंवार स्थिती बदलणारी प्रॉक्सी शोधा** (यश आणि अपयश यांमध्ये आलटून-पालटून बदलते): ```sql SELECT proxy_url, COUNT(*) AS total, SUM(CASE WHEN status >= 500 THEN 1 ELSE 0 END) AS errors, ROUND(100.0 * SUM(CASE WHEN status >= 500 THEN 1 ELSE 0 END) / COUNT(*), 1) AS error_pct FROM proxy_logs WHERE timestamp > datetime('now', '-1 hour') GROUP BY proxy_url HAVING error_pct > 5 ORDER BY error_pct DESC; ``` **संथ प्रॉक्सी शोधा** (p95 विलंब > 2s): ```sql WITH ranked AS ( SELECT proxy_url, latency_ms, PERCENT_RANK() OVER (PARTITION BY proxy_url ORDER BY latency_ms) AS pct FROM proxy_logs WHERE timestamp > datetime('now', '-24 hour') ) SELECT proxy_url, latency_ms FROM ranked WHERE pct >= 0.95 ORDER BY latency_ms DESC; ``` --- ## रोटेशन धोरण निर्णय-वृक्ष एका स्कोपला एकापेक्षा जास्त प्रॉक्सी नियुक्त केलेल्या असताना, प्रत्येक विनंतीसाठी कोणती प्रॉक्सी वापरायची हे निवडण्यासाठी OmniRoute **रोटेशन धोरण** वापरते. हे धोरण स्कोप स्तरावर कॉन्फिगर केले जाते (जागतिक, प्रत्येक प्रदात्यासाठी, प्रत्येक खात्यासाठी, प्रत्येक संयोजनासाठी). ### उपलब्ध धोरणे | धोरण | कधी वापरावे | तडजोड | | ------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------- | | `quality` (डीफॉल्ट) | मिश्र-गुणवत्तेच्या प्रॉक्सींसह उत्पादन वातावरण | उच्च रेटिंग असलेल्या प्रॉक्सीला प्राधान्य देते; कमी रेटिंग असलेल्या प्रॉक्सी वापराविना राहू शकतात | | `random` | लोड वितरण, गोपनीयता | समान वितरण; गुणवत्तेच्या संकेतांकडे दुर्लक्ष करते | | `sequential` | डीबगिंग, निर्धारक चाचणी | क्रमाने प्रॉक्सी वापरते; समजून घेणे सोपे आहे | ### निर्णय-वृक्ष ``` तुमच्या प्रॉक्सींसाठी गुणवत्ता गुण उपलब्ध आहेत का? │ ┌───────────┴───────────┐ │ │ होय नाही │ │ सर्व प्रॉक्सींची │ गुणवत्ता साधारणतः │ समान आहे का? │ │ │ ┌────┴────┐ │ │ │ │ होय नाही वापरा │ │ `random` │ │ (समान वितरणामुळे │ │ कालांतराने गुणवत्तेचा │ │ डेटा तयार होतो) │ │ │ `quality` वापरा │ (मिश्र गुणवत्तेसाठी │ सर्वोत्तम) │ `random` वापरा (लोडचे समान वितरण करा) ``` ## आपल्या स्वतःच्या प्रॉक्सींसाठी स्वयंचलित अपयश वगळणे 1proxy मार्केटप्लेस पूल अयशस्वी प्रॉक्सींची गुणवत्ता आधीपासूनच आपोआप कमी करतो (पाहा [प्रॉक्सी गुणवत्ता गुण](#proxy-quality-scores)). आपण रजिस्ट्रीमध्ये जोडलेल्या प्रॉक्सींसाठी, पार्श्वभूमीतील आरोग्य शेड्युलर (`src/lib/proxyHealth/scheduler.ts`) काहीही हटविल्याशिवाय, "निष्क्रिय सदस्याला साखळीतून आपोआप वगळण्याची" तीच कार्यपद्धती प्रदान करतो: ```bash # .env — सलग 3 तपासण्या अयशस्वी झाल्यानंतर प्रॉक्सी तात्पुरती अक्षम करा आणि ती # तपासण्यांना पुन्हा प्रतिसाद देऊ लागल्यानंतर आपोआप पुन्हा सक्षम करा. PROXY_AUTO_DISABLE=true PROXY_AUTO_REMOVE_AFTER=3 ``` हे बहु-प्रॉक्सी साखळीमध्ये कसे कार्य करते: 1. शेड्युलर प्रत्येक नोंदणीकृत प्रॉक्सीची प्रत्येक `PROXY_HEALTH_INTERVAL_MS` कालावधीनंतर तपासणी करतो (डीफॉल्ट 10 मिनिटे; किमान 1 मिनिट). 2. सलग `PROXY_AUTO_REMOVE_AFTER` **निर्णायक** अपयशांनंतर (प्रत्यक्ष कनेक्शन अपयश — टाइमआउट किंवा तपासणी लक्ष्याचा स्वतःचा 5xx प्रतिसाद कधीही मोजला जात नाही, पाहा [प्रॉक्सी आरोग्य तपासणी](#proxy-health-checking-v3816)), प्रॉक्सीचे `status` `dead` वर सेट केले जाते. 3. पूल/रोटेशन रिझोल्यूशनद्वारे वापरल्या जाणाऱ्या सक्रिय-स्थिती फिल्टरने वगळल्या जाणाऱ्या स्थितींपैकी `dead` ही एक आहे, त्यामुळे एखाद्या स्कोपचे रोटेशन (राउंड-रॉबिन / यादृच्छिक / स्टिकी / विलंबता — पाहा [रोटेशन धोरण निर्णय-वृक्ष](#rotation-strategy-decision-tree)) नवीन विनंत्यांना ती प्रॉक्सी देणे त्वरित थांबवते. पूलमधील इतर कोणत्याही प्रॉक्सीवर परिणाम होत नाही आणि संपूर्ण पूल कधीही गुपचूप थेट कनेक्शनवर परत जात नाही — फेल-क्लोज्ड सुरक्षेसाठी [4-स्तरीय प्रॉक्सी प्रणाली](#4-level-proxy-system) पाहा. 4. शेड्युलर त्याच कालांतराने `dead` प्रॉक्सींची तपासणी सुरू ठेवतो. पुढील यशस्वी तपासणी `status` पुन्हा `active` वर बदलते आणि प्रॉक्सी पुन्हा रोटेशनमध्ये प्रवेश करते — हाताने पुन्हा जोडण्याची आवश्यकता नसते. ही सुविधा जाणीवपूर्वक **पर्यायी आणि अविनाशी** ठेवली आहे: डीफॉल्टनुसार शेड्युलर केवळ अपयश मोजतो आणि त्यांची नोंद करतो (`decision.ts` मधील धोरण C पाहा), तसेच `PROXY_AUTO_DISABLE` कधीही कोणतीही रांग हटवत नाही — त्यासाठी स्वतंत्र आणि अधिक आक्रमक `PROXY_AUTO_REMOVE` ध्वज आहे. दोन्ही `true` वर सेट केले असल्यास, `PROXY_AUTO_REMOVE` ला प्राधान्य मिळते (हटवली जाणार असलेल्या प्रॉक्सीला मध्यंतरी तात्पुरते अक्षम करण्याचा उपयोग नसतो). चलांच्या संपूर्ण सूचीसाठी [पर्यावरण कॉन्फिगरेशन](../reference/ENVIRONMENT.md) संदर्भ पाहा. --- > 📖 **संबंधित दस्तऐवजीकरण:** > > - [वापरकर्ता मार्गदर्शक](../guides/USER_GUIDE.md) — सर्वसाधारण सेटअप आणि कॉन्फिगरेशन > - [API संदर्भ](../reference/API_REFERENCE.md) — संपूर्ण API दस्तऐवजीकरण > - [पर्यावरण कॉन्फिगरेशन](../reference/ENVIRONMENT.md) — सर्व पर्यावरणीय चल