* 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.
68 KiB
🌐 OmniRoute Proxy Guide (తెలుగు)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 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 · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
భౌగోళిక నిరోధాలను దాటవేయండి, మీ గుర్తింపును రక్షించుకోండి, ఎలాంటి proxy ద్వారానైనా AI ట్రాఫిక్ను రూట్ చేయండి — కాన్ఫిగరేషన్ సంక్లిష్టత ఏమాత్రం లేకుండా.
OmniRoute, upstream AI provider ట్రాఫిక్ను HTTP, HTTPS లేదా SOCKS5 proxies ద్వారా రూట్ చేయడానికి మిమ్మల్ని అనుమతించే పూర్తి ఫీచర్లతో కూడిన proxy నిర్వహణ వ్యవస్థను కలిగి ఉంది. మీరు నిరోధిత ప్రాంతంలో ఉన్నా, IP rotation అవసరమైనా లేదా stealth fingerprinting కావాలనుకున్నా — ఈ మార్గదర్శిని అన్నింటినీ వివరిస్తుంది.
విషయ సూచిక
- Proxies ఎందుకు ఉపయోగించాలి?
- ఆర్కిటెక్చర్ అవలోకనం
- 4-స్థాయిల Proxy వ్యవస్థ
- Proxy Registry (CRUD)
- 1proxy ఉచిత Marketplace
- Proxy Rotation
- గుర్తింపును నిరోధించడం & Stealth
- Upstream Proxy మోడ్లు
- Dashboard UI
- API సూచన
- Environment Variables
- సమస్య పరిష్కారం
Proxies ఎందుకు ఉపయోగించాలి?
చాలా AI providers భౌగోళిక ప్రాంతం ఆధారంగా యాక్సెస్ను పరిమితం చేస్తాయి. రష్యా, చైనా, ఇరాన్, క్యూబా, టర్కీ మరియు ఇతర దేశాల్లోని developers ఈ క్రింది తరహా errorsను ఎదుర్కొంటారు:
unsupported_country_region_territory
నిరోధిత ప్రాంతాల వెలుపల కూడా proxies ఈ ప్రయోజనాల కోసం ఉపయోగపడతాయి:
| వినియోగ సందర్భం | వివరణ |
|---|---|
| భౌగోళిక నిరోధాల దాటవేత | నిరోధిత దేశాల నుంచి OpenAI, Anthropic, Codex, Copilotను యాక్సెస్ చేయడం |
| IP rotation | Rate limitingను నివారించడానికి requestsను బహుళ IPల మధ్య పంపిణీ చేయడం |
| గోప్యత | Upstream providers నుంచి మీ అసలు IPని దాచడం |
| అనుగుణ్యత | నిర్దిష్ట అధికార పరిధుల ద్వారా ట్రాఫిక్ను రూట్ చేయడం |
| పరీక్షించడం | వివిధ ప్రాంతాల నుంచి requestsను అనుకరించడం |
ఆర్కిటెక్చర్ అవలోకనం
┌───────────────────────────────────────────────────────────────┐
│ OmniRoute Server │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Proxy │ │ Proxy │ │ Proxy │ │
│ │ Registry │───▶│ Dispatcher │───▶│ Fetch (undici) │ │
│ │ (SQLite) │ │ (cached) │ │ │ │
│ └─────────────┘ └──────────────┘ └────────┬─────────┘ │
│ ▲ │ │
│ │ ▼ │
│ ┌──────┴──────┐ ┌──────────────────┐ │
│ │ 1proxy Sync │ │ Upstream │ │
│ │ (ఉచిత pool) │ │ Provider API │ │
│ └─────────────┘ └──────────────────┘ │
└───────────────────────────────────────────────────────────────┘
ముఖ్య భాగాలు
| భాగం | ఫైల్ | పాత్ర |
|---|---|---|
| Proxy Registry | src/lib/db/proxies.ts |
Proxy entries మరియు scope assignments కోసం CRUD |
| Proxy Dispatcher | open-sse/utils/proxyDispatcher.ts |
Cachingతో undici ProxyAgent/SOCKS dispatchersను సృష్టిస్తుంది |
| Proxy Fetch | open-sse/utils/proxyFetch.ts |
Proxy dispatcher injectionతో fetch()ను wrap చేస్తుంది |
| Settings Route | src/app/api/settings/proxy/route.ts |
పాత proxy config API (GET/PUT/DELETE) |
| Management Route | src/app/api/v1/management/proxies/route.ts |
Registry CRUD API (GET/POST/PATCH/DELETE) |
| 1proxy DB | src/lib/db/oneproxy.ts |
ఉచిత proxy marketplace persistence |
4-స్థాయి ప్రాక్సీ వ్యవస్థ
OmniRoute నాలుగు స్వతంత్ర పరిధుల్లో ప్రాక్సీ కాన్ఫిగరేషన్కు మద్దతు ఇస్తుంది, ఇవి ప్రాధాన్యత క్రమంలో పరిష్కరించబడతాయి:
ప్రాధాన్యత పరిష్కార క్రమం (అత్యధికం → అత్యల్పం):
1. 🔵 ఖాతా/కనెక్షన్ ప్రాక్సీ → ప్రతి API కీ / OAuth కనెక్షన్కు
2. 🟡 ప్రొవైడర్ ప్రాక్సీ → ప్రతి ప్రొవైడర్కు (ఉదా., మొత్తం OpenAI ట్రాఫిక్)
3. 🟠 కాంబో ప్రాక్సీ → ప్రతి కాంబో/రూటింగ్ కాన్ఫిగరేషన్కు
4. 🟢 గ్లోబల్ ప్రాక్సీ → మొత్తం ట్రాఫిక్, అన్ని ప్రొవైడర్లు
పరిష్కారం ఎలా పనిచేస్తుంది
OmniRoute అప్స్ట్రీమ్ ప్రొవైడర్కు అభ్యర్థనను పంపినప్పుడు, అది resolveProxyForConnectionFromRegistry()ను కాల్ చేస్తుంది, ఇది ప్రతి స్థాయిని క్రమంగా తనిఖీ చేస్తుంది:
- ఖాతా-స్థాయి — ఈ నిర్దిష్ట కనెక్షన్ IDకి ప్రాక్సీ కేటాయించబడిందా?
- ప్రొవైడర్-స్థాయి — ఈ ప్రొవైడర్కు (ఉదా.,
openai) ప్రాక్సీ కేటాయించబడిందా? - గ్లోబల్-స్థాయి — గ్లోబల్ ప్రాక్సీ కాన్ఫిగర్ చేయబడిందా?
- ప్రాక్సీ లేదు — ప్రొవైడర్కు ప్రత్యక్ష కనెక్షన్.
మొదట సరిపోలినది ఉపయోగించబడుతుంది. అంటే, మీరు గ్లోబల్ ప్రాక్సీని ఫాల్బ్యాక్గా సెట్ చేసి, నిర్దిష్ట ప్రొవైడర్లు లేదా కనెక్షన్ల కోసం దాన్ని ఓవర్రైడ్ చేయవచ్చు.
ఏవి ప్రాక్సీ చేయబడతాయి
| ట్రాఫిక్ రకం | ప్రాక్సీ చేయబడుతుందా? | గమనికలు |
|---|---|---|
| చాట్ కంప్లీషన్లు | ✅ | అన్ని /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 |
ప్రాక్సీని సృష్టించడం
డ్యాష్బోర్డ్ ద్వారా:
- Settings → Proxyకు వెళ్లండి
- Add Proxyపై క్లిక్ చేయండి
- రకం, హోస్ట్, పోర్ట్ మరియు ఐచ్ఛిక ప్రమాణీకరణ వివరాలను పూరించండి
- సేవ్ చేయండి
API ద్వారా:
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"
}'
ప్రాక్సీని అప్డేట్ చేయడం
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కోసం ఖాళీ స్ట్రింగ్లను పంపితే, నిల్వ చేసిన విలువలు అలాగే ఉంచబడతాయి.
ప్రాక్సీని తొలగించడం
# ప్రాక్సీ ఏదైనా పరిధికి కేటాయించబడి ఉంటే విఫలమవుతుంది
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"
ప్రాక్సీలను జాబితా చేయడం
curl "http://localhost:20128/api/v1/management/proxies?limit=50&offset=0"
పరిధులకు ప్రాక్సీలను కేటాయించడం
# గ్లోబల్ పరిధికి కేటాయించండి
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}}'
అమలులో ఉండే ప్రాక్సీని పరిష్కరించడం
ఇచ్చిన కనెక్షన్ కోసం ఏ ప్రాక్సీ ఉపయోగించబడుతుందో తనిఖీ చేయండి:
curl "http://localhost:20128/api/settings/proxy?resolve=connection-uuid"
ఇది పరిష్కరించబడిన ప్రాక్సీని దాని స్థాయి (account, provider, లేదా global) మరియు మూలంతో సహా తిరిగి ఇస్తుంది.
బల్క్ కేటాయింపు
ఒకే ప్రాక్సీని ఒకేసారి అనేక ప్రొవైడర్లు లేదా కనెక్షన్లకు కేటాయించండి:
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"
}'
దిగుమతి/ఎగుమతి
ప్రాక్సీలు Backup/Restore వ్యవస్థలో చేర్చబడతాయి. మీరు మీ OmniRoute కాన్ఫిగరేషన్ను ఎగుమతి చేసినప్పుడు:
- Dashboard → Settings → Backupకు వెళ్లండి
- Exportపై క్లిక్ చేయండి — ప్రాక్సీ రిజిస్ట్రీ మరియు కేటాయింపులు చేర్చబడతాయి
- పునరుద్ధరించడానికి, Importపై క్లిక్ చేసి బ్యాకప్ ఫైల్ను అప్లోడ్ చేయండి
ప్రాక్సీ రిజిస్ట్రీ host+port ఆధారంగా upsertకు కూడా మద్దతు ఇస్తుంది — ఇప్పటికే ఉన్న ప్రాక్సీని (అదే హోస్ట్ మరియు పోర్ట్తో) మీరు దిగుమతి చేస్తే, నకలును సృష్టించడానికి బదులుగా అది అప్డేట్ చేయబడుతుంది.
లెగసీ మైగ్రేషన్
మీరు పాత సంస్కరణలో (రిజిస్ట్రీకి ముందు) ప్రాక్సీలను కాన్ఫిగర్ చేసి ఉంటే, OmniRoute వాటిని స్వయంచాలకంగా మైగ్రేట్ చేస్తుంది:
పాత key_value స్టోర్ → proxy_registry + proxy_assignments
అప్గ్రేడ్ చేసిన తర్వాత మొదటిసారి ప్రారంభించినప్పుడు ఇది ఒకసారి జరుగుతుంది. మళ్లీ అమలు చేయడానికి migrateLegacyProxyConfigToRegistry({ force: true }) ఉపయోగించండి.
1proxy ఉచిత ప్రాక్సీ మార్కెట్ప్లేస్
ప్రపంచవ్యాప్తంగా ఉన్న వందలాది ఉచిత, ధృవీకరించబడిన ప్రాక్సీలకు యాక్సెస్ అందించడానికి OmniRoute, 1proxy కమ్యూనిటీ ప్లాట్ఫారమ్తో అనుసంధానమవుతుంది. సొంత ప్రాక్సీ మౌలిక సదుపాయాలు లేని వినియోగదారులకు ఇది చక్కగా సరిపోతుంది.
ఇది ఎలా పనిచేస్తుంది
┌─────────────┐ సింక్ చేయి ┌─────────────────┐ రొటేట్ చేయి ┌──────────┐
│ 1proxy API │ ────────────▶ │ proxy_registry │ ────────────▶ │ ప్రొవైడర్ │
│ (బాహ్యమైనది)│ 500 వరకు │ source=oneproxy │ నాణ్యత ఆధారంగా│ API │
└─────────────┘ ప్రాక్సీలు └─────────────────┘ └──────────┘
- సింక్ — OmniRoute, 1proxy API నుండి ధృవీకరించబడిన ప్రాక్సీలను పొందుతుంది
- నిల్వ — ప్రాక్సీలు అదే
proxy_registryపట్టికలోsource = 'oneproxy'తో సేవ్ చేయబడతాయి - ఫిల్టర్ — ప్రోటోకాల్, దేశం, నాణ్యత స్కోర్ ఆధారంగా ఫిల్టర్ చేయండి
- రొటేట్ — నాణ్యత, యాదృచ్ఛిక లేదా క్రమానుగత వ్యూహాలను ఉపయోగించి ఉత్తమ ప్రాక్సీని ఎంచుకోండి
- స్వయంచాలక నాణ్యత తగ్గింపు — విఫలమైన ప్రాక్సీల నాణ్యత స్కోర్ తగ్గుతుంది; పరిమితి కంటే తక్కువైతే → నిష్క్రియంగా గుర్తించబడుతుంది
ప్రాక్సీలను సింక్ చేయడం
డ్యాష్బోర్డ్ ద్వారా:
- Settings → 1proxy ట్యాబ్కు వెళ్లండి
- **"Sync Now"**పై క్లిక్ చేయండి
- గణాంకాలను చూడండి: మొత్తం ప్రాక్సీలు, సక్రియ ప్రాక్సీల సంఖ్య, సగటు నాణ్యత, దేశాలవారీ విభజన
API ద్వారా:
# సింక్ను ప్రారంభించండి
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 }
ప్రాక్సీలను ఫిల్టర్ చేయడం
# ప్రోటోకాల్ ఆధారంగా ఫిల్టర్ చేయండి
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గా గుర్తించబడుతుంది - నిష్క్రియ ప్రాక్సీలు రొటేషన్ నుండి మినహాయించబడతాయి
రొటేషన్ వ్యూహాలు
# నాణ్యత ఆధారంగా రొటేట్ చేయండి (ఉత్తమ ప్రాక్సీ ముందుగా) — డిఫాల్ట్
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 ప్రాక్సీలను తొలగించడం
# ఒక్క 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ని ఉపయోగిస్తుంది |
ప్రతి ప్రొవైడర్కు విడిగా కాన్ఫిగర్ చేయండి:
curl -X PUT "http://localhost:20128/api/upstream-proxy/openai" \
-H "Content-Type: application/json" \
-d '{"mode": "native", "enabled": true}'
డ్యాష్బోర్డ్ UI
Settings → Proxy ట్యాబ్
- గ్లోబల్ ప్రాక్సీ కాన్ఫిగరేషన్ (ట్రాఫిక్ మొత్తానికి ఒకసారి సెట్ చేయండి)
- ప్రతి ప్రొవైడర్కు ప్రాక్సీ ఓవర్రైడ్లు
- ప్రతి కనెక్షన్కు ప్రాక్సీ కేటాయింపులు
- కాన్ఫిగర్ చేసిన ప్రాక్సీ ద్వారా కనెక్షన్ పరీక్ష
- సక్రియ ప్రాక్సీ స్థాయిని చూపించే రంగు-కోడింగ్ చేసిన బ్యాడ్జ్లు
Settings → 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 చూడండి. టన్నెల్ 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 టోకెన్ మార్పిడిని కాన్ఫిగర్ చేసిన ప్రాక్సీ ద్వారా రూట్ చేస్తుంది. ముందుగా గ్లోబల్ లేదా ప్రొవైడర్-స్థాయి ప్రాక్సీని సెట్ చేసి, ఆ తర్వాత కనెక్ట్ చేయండి.
ప్రాక్సీ ఉపయోగించబడటం లేదు
రిజల్యూషన్ క్రమాన్ని తనిఖీ చేయండి:
GET /api/settings/proxy?resolve=your-connection-idతో ధృవీకరించండి- ప్రాక్సీ
status,activeగా ఉందో తనిఖీ చేయండి (inactiveగా కాకుండా) - ప్రాక్సీ అసైన్మెంట్ స్కోప్ మీ కనెక్షన్తో సరిపోలుతుందని నిర్ధారించుకోండి
1proxy సింక్ విఫలమవుతోంది
సింక్ స్థితిని తనిఖీ చేయండి:
curl "http://localhost:20128/api/settings/oneproxy?action=status"
consecutiveFailures >= 5 అయితే, సర్క్యూట్ బ్రేకర్ ట్రిప్ అయింది. రీసెట్ చేయడానికి సర్వర్ను పునఃప్రారంభించండి లేదా మాన్యువల్ రీసెట్ కోసం వేచి ఉండండి.
డేటాబేస్ స్కీమా
proxy_registry పట్టిక
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, -- పారదర్శక/అజ్ఞాత/ఎలైట్
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 పట్టిక
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 | రేట్ పరిమితులను ట్రిగ్గర్ చేయగల వేగవంతమైన ప్రోబింగ్ను నివారించడం |
ప్రాక్సీ ఆరోగ్యాన్ని పరిశీలించడం
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 |
డేటాను యాక్సెస్ చేయడం
# ఇటీవలి ప్రాక్సీ ఈవెంట్లు
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— అన్ని ప్రాక్సీ లాగ్లను తొలగించండి
అవసరమైతే, సమగ్ర గణాంకాలను SQL ద్వారా proxy_logs పట్టిక నుండి నేరుగా క్వెరీ చేయవచ్చు. డ్యాష్బోర్డ్ UI సమగ్ర వీక్షణలను అందించవచ్చు.
సాధారణ నమూనాలు
అస్థిరమైన ప్రాక్సీని గుర్తించండి (విజయం/వైఫల్యం మధ్య మారుతూ ఉంటుంది):
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):
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 మార్కెట్ప్లేస్ పూల్ ఇప్పటికే విఫలమైన ప్రాక్సీలను స్వయంచాలకంగా డీగ్రేడ్ చేస్తుంది (ప్రాక్సీ నాణ్యత స్కోర్లు చూడండి). రిజిస్ట్రీకి మీరు జోడించిన ప్రాక్సీలకు, బ్యాక్గ్రౌండ్ హెల్త్ షెడ్యూలర్ (src/lib/proxyHealth/scheduler.ts) ఏదీ తొలగించకుండానే, అదే "పనిచేయని సభ్యుడిని చైన్ నుంచి స్వయంచాలకంగా మినహాయించడం" అనే ప్రవర్తనను అందిస్తుంది:
# .env — వరుసగా 3 విఫలమైన ప్రోబ్ల తర్వాత ప్రాక్సీని తాత్కాలికంగా నిలిపివేసి,
# అది మళ్లీ ప్రోబ్లకు స్పందించడం ప్రారంభించిన వెంటనే స్వయంచాలకంగా తిరిగి ప్రారంభించండి.
PROXY_AUTO_DISABLE=true
PROXY_AUTO_REMOVE_AFTER=3
బహుళ-ప్రాక్సీ చైన్లో ఇది పనిచేసే విధానం:
- షెడ్యూలర్ నమోదు చేసిన ప్రతి ప్రాక్సీని ప్రతి
PROXY_HEALTH_INTERVAL_MSవ్యవధికి ఒకసారి ప్రోబ్ చేస్తుంది (డిఫాల్ట్ 10 నిమిషాలు; కనిష్ఠం 1 నిమిషం). - వరుసగా
PROXY_AUTO_REMOVE_AFTERనిర్ధారిత వైఫల్యాల తర్వాత (వాస్తవ కనెక్షన్ వైఫల్యం — టైమ్అవుట్ లేదా ప్రోబ్ లక్ష్యం నుంచి వచ్చే 5xx ఎప్పుడూ లెక్కించబడవు; ప్రాక్సీ హెల్త్ తనిఖీ చూడండి), ప్రాక్సీ యొక్కstatusవిలువdeadగా సెట్ చేయబడుతుంది. - పూల్/రొటేషన్ పరిష్కారంలో ఉపయోగించే సజీవ-స్థితి ఫిల్టర్ మినహాయించే స్థితుల్లో
deadఒకటి. అందువల్ల స్కోప్ యొక్క రొటేషన్ (రౌండ్-రాబిన్ / యాదృచ్ఛిక / స్టికీ / లేటెన్సీ — రొటేషన్ వ్యూహ నిర్ణయ వృక్షం చూడండి) వెంటనే కొత్త అభ్యర్థనలకు ఆ ప్రాక్సీని కేటాయించడం ఆపివేస్తుంది. పూల్లోని ఇతర ప్రాక్సీలపై ఎటువంటి ప్రభావమూ ఉండదు, అలాగే మొత్తం పూల్ ఎప్పుడూ నిశ్శబ్దంగా ప్రత్యక్ష కనెక్షన్కు ఫాల్బ్యాక్ కాదు — ఫెయిల్-క్లోజ్డ్ రక్షణ కోసం 4-స్థాయి ప్రాక్సీ వ్యవస్థ చూడండి. - షెడ్యూలర్ అదే వ్యవధిలో
deadప్రాక్సీలను ప్రోబ్ చేస్తూనే ఉంటుంది. తదుపరి విజయవంతమైన ప్రోబ్statusను తిరిగిactiveకు మార్చి, ఆ ప్రాక్సీని మళ్లీ రొటేషన్లో చేర్చుతుంది — మాన్యువల్గా తిరిగి జోడించాల్సిన అవసరం లేదు.
ఇది ఉద్దేశపూర్వకంగా ఎంపిక చేసుకుంటేనే అమలయ్యేది మరియు విధ్వంసకరం కానిది: డిఫాల్ట్గా షెడ్యూలర్ వైఫల్యాలను లెక్కించి లాగ్ చేయడం మాత్రమే చేస్తుంది (decision.tsలోని పాలసీ C చూడండి), అలాగే PROXY_AUTO_DISABLE ఎప్పుడూ ఏ వరుసనూ తొలగించదు — దాని కోసం ప్రత్యేకమైన, మరింత కఠినమైన PROXY_AUTO_REMOVE ఫ్లాగ్ ఉంది. రెండింటినీ trueగా సెట్ చేస్తే, PROXY_AUTO_REMOVEకే ప్రాధాన్యం ఉంటుంది (తొలగించబోయే ప్రాక్సీని మధ్యలో తాత్కాలికంగా నిలిపివేయడం వల్ల ప్రయోజనం ఉండదు). వేరియబుల్స్ పూర్తి జాబితా కోసం ఎన్విరాన్మెంట్ కాన్ఫిగరేషన్ రిఫరెన్స్ చూడండి.
📖 సంబంధిత డాక్యుమెంటేషన్:
- వినియోగదారు మార్గదర్శిని — సాధారణ సెటప్ మరియు కాన్ఫిగరేషన్
- API రిఫరెన్స్ — పూర్తి API డాక్యుమెంటేషన్
- ఎన్విరాన్మెంట్ కాన్ఫిగరేషన్ — అన్ని ఎన్విరాన్మెంట్ వేరియబుల్స్