Files
OmniRoute/docs/i18n/ne/docs/ops/PROXY_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

67 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 · 🇳🇱 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


भौगोलिक अवरोधहरू बाइपास गर्नुहोस्, आफ्नो पहिचान सुरक्षित गर्नुहोस्, र कुनै पनि proxy मार्फत AI ट्राफिक रुट गर्नुहोस् — त्यो पनि कन्फिगरेसनको कुनै जटिलताबिना।

OmniRoute मा पूर्ण सुविधायुक्त proxy व्यवस्थापन प्रणाली समावेश छ, जसले तपाईंलाई upstream AI प्रदायकको ट्राफिक HTTP, HTTPS, वा SOCKS5 proxy मार्फत रुट गर्न दिन्छ। तपाईं अवरुद्ध क्षेत्रमा हुनुहुन्छ, IP rotation आवश्यक छ, वा गोप्य fingerprinting चाहनुहुन्छ — यस निर्देशिकाले सबै कुरा समेट्छ।


विषयसूची


Proxy किन प्रयोग गर्ने?

धेरै AI प्रदायकहरूले भौगोलिक क्षेत्रका आधारमा पहुँच प्रतिबन्धित गर्छन्। रुस, चीन, इरान, क्युबा, टर्की, र अन्य देशका विकासकर्ताहरूले यस्ता त्रुटिहरू सामना गर्छन्:

unsupported_country_region_territory

अवरुद्ध क्षेत्रहरूबाहिर पनि proxy हरू निम्न प्रयोजनका लागि उपयोगी हुन्छन्:

प्रयोगको अवस्था विवरण
भौगोलिक बाइपास अवरुद्ध देशहरूबाट OpenAI, Anthropic, Codex, Copilot मा पहुँच प्राप्त गर्ने
IP rotation दर सीमित हुनबाट बच्न अनुरोधहरूलाई धेरै IP हरूमा वितरण गर्ने
गोपनीयता Upstream प्रदायकहरूबाट आफ्नो वास्तविक IP लुकाउने
अनुपालन निश्चित क्षेत्राधिकारमार्फत ट्राफिक रुट गर्ने
परीक्षण विभिन्न क्षेत्रहरूबाट आउने अनुरोधहरूको नक्कल गर्ने

आर्किटेक्चरको अवलोकन

┌───────────────────────────────────────────────────────────────┐
│                       OmniRoute सर्भर                         │
│                                                               │
│  ┌─────────────┐    ┌──────────────┐    ┌──────────────────┐  │
│  │ Proxy       │    │ Proxy        │    │ Proxy            │  │
│  │ Registry    │───▶│ Dispatcher   │───▶│ Fetch (undici)   │  │
│  │ (SQLite)    │    │ (cached)     │    │                  │  │
│  └─────────────┘    └──────────────┘    └────────┬─────────┘  │
│         ▲                                        │            │
│         │                                        ▼            │
│  ┌──────┴──────┐                        ┌──────────────────┐  │
│  │ 1proxy Sync │                        │ Upstream         │  │
│  │ (निःशुल्क पूल) │                        │ प्रदायक API     │  │
│  └─────────────┘                        └──────────────────┘  │
└───────────────────────────────────────────────────────────────┘

मुख्य कम्पोनेन्टहरू

कम्पोनेन्ट फाइल भूमिका
Proxy Registry src/lib/db/proxies.ts Proxy प्रविष्टिहरू र scope assignment हरूका लागि CRUD
Proxy Dispatcher open-sse/utils/proxyDispatcher.ts Caching सहित undici ProxyAgent/SOCKS dispatcher हरू सिर्जना गर्छ
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 को स्थायी भण्डारण

४-स्तरीय प्रोक्सी प्रणाली

OmniRoute ले चार स्वतन्त्र कार्यक्षेत्रमा प्रोक्सी कन्फिगरेसनलाई समर्थन गर्छ, जसलाई प्राथमिकताको क्रममा निर्धारण गरिन्छ:

प्राथमिकता निर्धारण क्रम (उच्चतम → न्यूनतम):

  1. 🔵 खाता/कनेक्सन प्रोक्सी  →  प्रत्येक API key / 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 String मानिसले बुझ्न सक्ने लेबल
type String प्रोटोकल: http, https, socks5
host String प्रोक्सी होस्टनेम वा IP
port Integer पोर्ट नम्बर
username String प्रमाणीकरण प्रयोगकर्ता नाम (भण्डारणमा इन्क्रिप्ट गरिएको)
password String प्रमाणीकरण पासवर्ड (भण्डारणमा इन्क्रिप्ट गरिएको)
region String भौगोलिक क्षेत्रको लेबल
notes String स्वतन्त्र-पाठ टिप्पणीहरू
status String active वा inactive
source String manual वा oneproxy

प्रोक्सी सिर्जना गर्ने

ड्यासबोर्डमार्फत:

  1. सेटिङ्स → प्रोक्सी मा जानुहोस्
  2. प्रोक्सी थप्नुहोस् मा क्लिक गर्नुहोस्
  3. प्रकार, होस्ट, पोर्ट र वैकल्पिक प्रमाणीकरण विवरणहरू भर्नुहोस्
  4. सेभ गर्नुहोस्

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

# कुनै विशेष कनेक्सन/key मा तोक्नुहोस्
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"
  }'

आयात/निर्यात

प्रोक्सीहरू ब्याकअप/पुनर्स्थापना प्रणालीमा समावेश हुन्छन्। तपाईंले आफ्नो OmniRoute कन्फिगरेसन निर्यात गर्दा:

  1. ड्यासबोर्ड → सेटिङ्स → ब्याकअप मा जानुहोस्
  2. निर्यात मा क्लिक गर्नुहोस् — प्रोक्सी रजिस्ट्री र असाइनमेन्टहरू समावेश हुन्छन्
  3. पुनर्स्थापना गर्न, आयात मा क्लिक गरी ब्याकअप फाइल अपलोड गर्नुहोस्

प्रोक्सी रजिस्ट्रीले host+port का आधारमा upsert पनि समर्थन गर्छ — यदि तपाईंले पहिले नै अवस्थित प्रोक्सी (उही होस्ट र पोर्ट भएको) आयात गर्नुभयो भने, डुप्लिकेट सिर्जना गर्नुको सट्टा त्यसलाई अद्यावधिक गरिन्छ।

पुरानो प्रणालीबाट माइग्रेसन

यदि तपाईंले पुरानो संस्करणमा (रजिस्ट्रीपूर्व) प्रोक्सीहरू कन्फिगर गर्नुभएको थियो भने, OmniRoute ले तिनलाई स्वचालित रूपमा माइग्रेट गर्छ:

लेगेसी key_value भण्डार → proxy_registry + proxy_assignments

यो अपग्रेडपछिको पहिलो स्टार्टअपमा एक पटक हुन्छ। पुनः चलाउन migrateLegacyProxyConfigToRegistry({ force: true }) प्रयोग गर्नुहोस्।


1proxy निःशुल्क प्रोक्सी मार्केटप्लेस

🆕 @oyi77 द्वारा योगदान गरिएको — PR #1847 (मुद्दा #1788)

OmniRoute ले विश्वभरका सयौँ निःशुल्क, प्रमाणीकरण गरिएका प्रोक्सीहरूमा पहुँच प्रदान गर्न 1proxy सामुदायिक प्लेटफर्मसँग एकीकरण गर्छ। आफ्नै प्रोक्सी पूर्वाधार नभएका प्रयोगकर्ताहरूका लागि यो उपयुक्त छ।

यसले कसरी काम गर्छ

┌─────────────┐    सिंक गर्नुहोस्    ┌─────────────────┐   रोटेट गर्नुहोस्   ┌────────────┐
│  1proxy API │ ──────────────────▶ │  proxy_registry  │ ──────────────────▶ │ प्रदायक API │
│   (बाह्य)    │   500 वटासम्म       │  source=oneproxy │   गुणस्तरअनुसार    │             │
└─────────────┘    प्रोक्सीहरू       └─────────────────┘                     └────────────┘
  1. सिंक — OmniRoute ले 1proxy API बाट प्रमाणीकरण गरिएका प्रोक्सीहरू प्राप्त गर्छ
  2. भण्डारण — प्रोक्सीहरूलाई उही proxy_registry तालिकामा source = 'oneproxy' सहित सुरक्षित गरिन्छ
  3. फिल्टर — प्रोटोकल, देश र गुणस्तर स्कोरअनुसार फिल्टर गर्नुहोस्
  4. रोटेट — गुणस्तर, अनियमित वा क्रमिक रणनीतिहरू प्रयोग गरेर उत्कृष्ट प्रोक्सी छान्नुहोस्
  5. स्वचालित अवनति — असफल प्रोक्सीहरूको गुणस्तर स्कोर घटाइन्छ; थ्रेसहोल्डभन्दा तल पुगेमा → निष्क्रिय चिन्ह लगाइन्छ

प्रोक्सीहरू सिंक गर्ने

ड्यासबोर्डमार्फत:

  1. Settings → 1proxy ट्याबमा जानुहोस्
  2. "Sync Now" मा क्लिक गर्नुहोस्
  3. तथ्याङ्क हेर्नुहोस्: कुल प्रोक्सीहरू, सक्रिय सङ्ख्या, औसत गुणस्तर र देशअनुसारको विवरण

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 टोकन एक्सचेन्जलाई कन्फिगर गरिएको प्रोक्सीमार्फत रुट गर्छ। पहिले ग्लोबल वा प्रदायक-स्तरीय प्रोक्सी सेट गर्नुहोस्, त्यसपछि कनेक्ट गर्नुहोस्।

प्रोक्सी प्रयोग भइरहेको छैन

रिजोल्युसन क्रम जाँच गर्नुहोस्:

  1. GET /api/settings/proxy?resolve=your-connection-id मार्फत पुष्टि गर्नुहोस्
  2. प्रोक्सीको status active छ (inactive होइन) कि जाँच गर्नुहोस्
  3. प्रोक्सी असाइनमेन्टको स्कोप तपाईंको कनेक्सनसँग मेल खान्छ भन्ने सुनिश्चित गर्नुहोस्

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

यो बहु-प्रोक्सी चेनमा कसरी समावेश हुन्छ:

  1. अनुसूचकले प्रत्येक दर्ता गरिएको प्रोक्सीलाई प्रत्येक PROXY_HEALTH_INTERVAL_MS मा जाँच गर्छ (पूर्वनिर्धारित 10 मिनेट; न्यूनतम 1 मिनेट)।
  2. लगातार PROXY_AUTO_REMOVE_AFTER वटा निर्णायक विफलतापछि (वास्तविक जडान विफलता — टाइमआउट वा जाँच लक्ष्यको आफ्नै 5xx लाई कहिल्यै गणना गरिँदैन, प्रोक्सी स्वास्थ्य जाँच हेर्नुहोस्), प्रोक्सीको status लाई dead मा सेट गरिन्छ।
  3. dead, पूल/रोटेसन रिजोल्युसनले प्रयोग गर्ने सक्रिय-स्थिति फिल्टरद्वारा बहिष्कृत गरिने स्थितिहरूमध्ये एक हो, त्यसैले कुनै स्कोपको रोटेसन (राउन्ड-रोबिन / अनियमित / स्टिकी / लेटेन्सी — रोटेसन रणनीति निर्णय वृक्ष हेर्नुहोस्) ले नयाँ अनुरोधहरूलाई उक्त प्रोक्सी दिन तुरुन्तै रोक्छ। पूलका अन्य कुनै प्रोक्सी प्रभावित हुँदैनन्, र सम्पूर्ण पूल कहिल्यै पनि चुपचाप प्रत्यक्ष जडानमा फर्किँदैन — fail-closed सुरक्षाका लागि 4-स्तरीय प्रोक्सी प्रणाली हेर्नुहोस्।
  4. अनुसूचकले उही अन्तरालमा dead प्रोक्सीहरूको जाँच जारी राख्छ। अर्को सफल जाँचले status लाई फेरि active मा परिवर्तन गर्छ र त्यो पुनः रोटेसनमा प्रवेश गर्छ — म्यानुअल रूपमा पुनः थप्न आवश्यक पर्दैन।

यो जानाजानी स्वैच्छिक र गैर-विनाशकारी बनाइएको हो: पूर्वनिर्धारित रूपमा अनुसूचकले विफलताहरूको गणना र लग मात्र गर्छ (decision.ts मा नीति C हेर्नुहोस्), र PROXY_AUTO_DISABLE ले कहिल्यै पनि कुनै पङ्क्ति मेट्दैन — त्यसका लागि छुट्टै, अझ आक्रामक PROXY_AUTO_REMOVE फ्ल्याग छ। यदि दुवैलाई true मा सेट गरिएको छ भने, PROXY_AUTO_REMOVE ले प्राथमिकता पाउँछ (मेटिन लागेको प्रोक्सीलाई बीचमा अस्थायी रूपमा निष्क्रिय पार्नुको कुनै उपयोग हुँदैन)। भेरिएबलहरूको पूर्ण सूचीका लागि वातावरण कन्फिगरेसन सन्दर्भ हेर्नुहोस्।


📖 सम्बन्धित दस्तावेजहरू: