* 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.
43 KiB
🌐 OmniRoute Proxy Guide (Oʻzbekcha)
🌐 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 · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
Geografik bloklarni chetlab oʻting, shaxsingizni himoya qiling va AI trafigini istalgan proksi orqali yoʻnaltiring — sozlashdagi hech qanday murakkabliksiz.
OmniRoute yuqori oqimdagi AI provayderlari trafigini HTTP, HTTPS yoki SOCKS5 proksilari orqali yoʻnaltirish imkonini beruvchi toʻliq funksiyali proksi boshqaruv tizimini oʻz ichiga oladi. Bloklangan hududda boʻlsangiz, IP rotatsiyasi kerak boʻlsa yoki yashirin fingerprintingdan foydalanmoqchi boʻlsangiz — ushbu qoʻllanmada hammasi yoritilgan.
Mundarija
- Nega proksilardan foydalanish kerak?
- Arxitektura haqida umumiy maʼlumot
- 4 darajali proksi tizimi
- Proksi reyestri (CRUD)
- 1proxy bepul marketpleysi
- Proksi rotatsiyasi
- Aniqlanishdan himoya va yashirinlik
- Yuqori oqim proksi rejimlari
- Boshqaruv paneli interfeysi
- API maʼlumotnomasi
- Muhit oʻzgaruvchilari
- Muammolarni bartaraf etish
Nega proksilardan foydalanish kerak?
Koʻplab AI provayderlari geografik hududga qarab kirishni cheklaydi. Rossiya, Xitoy, Eron, Kuba, Turkiya va boshqa mamlakatlardagi dasturchilar quyidagiga oʻxshash xatolarga duch keladi:
unsupported_country_region_territory
Proksilar bloklangan hududlardan tashqarida ham foydalidir:
| Foydalanish holati | Tavsif |
|---|---|
| Geografik cheklovni chetlab oʻtish | Bloklangan mamlakatlardan OpenAI, Anthropic, Codex, Copilot xizmatlariga kirish |
| IP rotatsiyasi | Tezlik cheklovlariga duch kelmaslik uchun soʻrovlarni bir nechta IP boʻylab taqsimlash |
| Maxfiylik | Haqiqiy IP manzilingizni yuqori oqim provayderlaridan yashirish |
| Muvofiqlik | Trafikni muayyan yurisdiksiyalar orqali yoʻnaltirish |
| Sinovdan oʻtkazish | Turli hududlardan yuborilgan soʻrovlarni simulyatsiya qilish |
Arxitektura haqida umumiy maʼlumot
┌───────────────────────────────────────────────────────────────┐
│ OmniRoute serveri │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Proksi │ │ Proksi │ │ Proksi │ │
│ │ reyestri │───▶│ dispetcheri │───▶│ Fetch (undici) │ │
│ │ (SQLite) │ │ (keshlangan) │ │ │ │
│ └─────────────┘ └──────────────┘ └────────┬─────────┘ │
│ ▲ │ │
│ │ ▼ │
│ ┌──────┴──────┐ ┌──────────────────┐ │
│ │ 1proxy │ │ Yuqori oqim │ │
│ │ sinxronlash │ │ provayderi API'si│ │
│ │ (bepul pul) │ │ │ │
│ └─────────────┘ └──────────────────┘ │
└───────────────────────────────────────────────────────────────┘
Asosiy komponentlar
| Komponent | Fayl | Vazifasi |
|---|---|---|
| Proksi reyestri | src/lib/db/proxies.ts |
Proksi yozuvlari va qamrov biriktirmalari uchun CRUD |
| Proksi dispetcheri | open-sse/utils/proxyDispatcher.ts |
Keshlash bilan undici ProxyAgent/SOCKS dispetcherlarini yaratadi |
| Proksi Fetch | open-sse/utils/proxyFetch.ts |
Proksi dispetcherini kiritish orqali fetch() funksiyasini oʻraydi |
| Sozlamalar marshruti | src/app/api/settings/proxy/route.ts |
Eski proksi konfiguratsiyasi API'si (GET/PUT/DELETE) |
| Boshqaruv marshruti | src/app/api/v1/management/proxies/route.ts |
Reyestr CRUD API'si (GET/POST/PATCH/DELETE) |
| 1proxy maʼlumotlar bazasi | src/lib/db/oneproxy.ts |
Bepul proksi marketpleysi maʼlumotlarini doimiy saqlash |
4 darajali proksi tizimi
OmniRoute proksi konfiguratsiyasini ustuvorlik tartibida aniqlanadigan toʻrtta mustaqil doirada qoʻllab-quvvatlaydi:
Ustuvorlik boʻyicha aniqlash tartibi (eng yuqori → eng past):
1. 🔵 Hisob/Ulanish proksisi → har bir API kaliti / OAuth ulanishi uchun
2. 🟡 Provayder proksisi → har bir provayder uchun (masalan, barcha OpenAI trafigi)
3. 🟠 Kombinatsiya proksisi → har bir kombinatsiya/marshrutlash konfiguratsiyasi uchun
4. 🟢 Global proksi → barcha trafik, barcha provayderlar
Aniqlash qanday ishlaydi
OmniRoute yuqori oqimdagi provayderga soʻrov yuborganda, har bir darajani tartib bilan tekshiradigan resolveProxyForConnectionFromRegistry() funksiyasini chaqiradi:
- Hisob darajasi — Ushbu aniq ulanish ID identifikatoriga proksi biriktirilganmi?
- Provayder darajasi — Ushbu provayderga (masalan,
openai) proksi biriktirilganmi? - Global daraja — Global proksi sozlanganmi?
- Proksi yoʻq — Provayderga toʻgʻridan-toʻgʻri ulanish.
Birinchi mos kelgan sozlama ishlatiladi. Bu global proksini zaxira variant sifatida belgilash, ammo uni muayyan provayderlar yoki ulanishlar uchun qayta belgilash imkonini beradi.
Qaysi trafik proksilanadi
| Trafik turi | Proksilanadimi? | Izohlar |
|---|---|---|
| Chat toʻldirishlari | ✅ | Barcha /v1/chat/completions soʻrovlari |
| Embeddinglar | ✅ | /v1/embeddings |
| Tasvir yaratish | ✅ | /v1/images/generations |
| Audio (TTS/STT) | ✅ | /v1/audio/* |
| OAuth token almashinuvi | ✅ | unsupported_country_region_territory xatosini hal qiladi |
| Ulanish sinovlari | ✅ | "Ulanishni sinash" tugmasi proksidan foydalanadi |
| Tokenni yangilash | ✅ | Fon rejimida OAuth yangilanishi |
| Model sinxronizatsiyasi | ✅ | Modellarni roʻyxatlash va aniqlash |
Proksi reyestri (CRUD)
Proksi reyestri barcha proksilaringizni saqlaydigan SQLite jadvalidir (proxy_registry). Har bir proksi quyidagilarga ega:
| Maydon | Tur | Tavsif |
|---|---|---|
id |
UUID | Noyob identifikator |
name |
String | Inson oʻqishi uchun qulay yorliq |
type |
String | Protokol: http, https, socks5 |
host |
String | Proksi xost nomi yoki IP manzili |
port |
Integer | Port raqami |
username |
String | Autentifikatsiya foydalanuvchi nomi (saqlashda shifrlangan) |
password |
String | Autentifikatsiya paroli (saqlashda shifrlangan) |
region |
String | Geografik hudud yorligʻi |
notes |
String | Erkin matnli qaydlar |
status |
String | active yoki inactive |
source |
String | manual yoki oneproxy |
Proksi yaratish
Boshqaruv paneli orqali:
- Sozlamalar → Proksi boʻlimiga oʻting
- Proksi qoʻshish tugmasini bosing
- Tur, xost, port va ixtiyoriy autentifikatsiya maʼlumotlarini kiriting
- Saqlang
API orqali:
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"
}'
Proksini yangilash
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
}'
Eslatma: Agar boʻsh boʻlmagan yangi qiymatlarni ochiq yubormasangiz, hisob maʼlumotlari saqlanib qoladi.
username/passworduchun boʻsh satrlar yuborilsa, saqlangan qiymatlar oʻzgarmaydi.
Proksini oʻchirish
# Proksi biror doiraga biriktirilgan boʻlsa, bajarilmaydi
curl -X DELETE "http://localhost:20128/api/v1/management/proxies?id=proxy-uuid"
# Majburan oʻchirish (biriktirishlarni ham olib tashlaydi)
curl -X DELETE "http://localhost:20128/api/v1/management/proxies?id=proxy-uuid&force=1"
Proksilarni roʻyxatlash
curl "http://localhost:20128/api/v1/management/proxies?limit=50&offset=0"
Proksilarni doiralarga biriktirish
# Global doiraga biriktirish
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}}'
# Muayyan provayderga biriktirish
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}}'
# Muayyan ulanish/kalitga biriktirish
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}}'
Amaldagi proksini aniqlash
Berilgan ulanish uchun qaysi proksi ishlatilishini tekshiring:
curl "http://localhost:20128/api/settings/proxy?resolve=connection-uuid"
Aniqlangan proksini uning darajasi (account, provider yoki global) va manbasi bilan qaytaradi.
Ommaviy biriktirish
Bitta proksini bir vaqtning oʻzida bir nechta provayder yoki ulanishga biriktiring:
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"
}'
Import/Eksport
Proksilar Zaxiralash/Tiklash tizimiga kiritilgan. OmniRoute konfiguratsiyangizni eksport qilganingizda:
- Boshqaruv paneli → Sozlamalar → Zaxiralash boʻlimiga oʻting
- Eksport tugmasini bosing — proksi reyestri va biriktirishlar ham kiritiladi
- Tiklash uchun Import tugmasini bosing va zaxira faylini yuklang
Proksi reyestri host+port boʻyicha upsert funksiyasini ham qoʻllab-quvvatlaydi — agar allaqachon mavjud boʻlgan proksini (xost va porti bir xil) import qilsangiz, dublikat yaratish oʻrniga u yangilanadi.
Eski versiyadan migratsiya
Agar proksilarni eski versiyada (reyestrdan oldingi) sozlagan bo‘lsangiz, OmniRoute ularni avtomatik ravishda ko‘chiradi:
Eski key_value ombori → proxy_registry + proxy_assignments
Bu yangilangandan keyingi ilk ishga tushirishda bir marta amalga oshadi. Qayta ishga tushirish uchun migrateLegacyProxyConfigToRegistry({ force: true }) dan foydalaning.
1proxy bepul proksi bozori
OmniRoute butun dunyo boʻylab yuzlab bepul, tekshirilgan proksilardan foydalanish imkonini berish uchun 1proxy hamjamiyat platformasi bilan integratsiyalashadi. Bu oʻz proksi infratuzilmasiga ega boʻlmagan foydalanuvchilar uchun juda mos keladi.
Bu qanday ishlaydi
┌─────────────┐ Sinxronlash ┌─────────────────┐ Almashtirish ┌──────────────┐
│ 1proxy API │ ────────────▶ │ proxy_registry │ ────────────▶ │ Provayder API │
│ (tashqi) │ 500 tagacha │ source=oneproxy │ sifat boʻyicha│ │
└─────────────┘ proksi └─────────────────┘ └──────────────┘
- Sinxronlash — OmniRoute tekshirilgan proksilarni 1proxy API orqali oladi
- Saqlash — Proksilar ayni
proxy_registryjadvalidasource = 'oneproxy'qiymati bilan saqlanadi - Filtrlash — Protokol, mamlakat va sifat bali boʻyicha filtrlang
- Almashtirish — Sifat, tasodifiy yoki ketma-ket strategiyalar yordamida eng yaxshi proksini tanlang
- Avtomatik pasaytirish — Ishlamagan proksilarning sifat bali kamaytiriladi; chegara qiymatidan past boʻlsa → nofaol deb belgilanadi
Proksilarni sinxronlash
Boshqaruv paneli orqali:
- Sozlamalar → 1proxy ichki oynasiga oʻting
- "Hozir sinxronlash" tugmasini bosing
- Statistikani koʻring: proksilarning umumiy soni, faol proksilar soni, oʻrtacha sifat va mamlakatlar boʻyicha taqsimot
API orqali:
# Sinxronlashni ishga tushirish
curl -X POST http://localhost:20128/api/settings/oneproxy \
-H "Content-Type: application/json" \
-d '{}'
# Javob:
# { "success": true, "added": 127, "updated": 45, "failed": 2, "total": 172 }
Proksilarni filtrlash
# Protokol boʻyicha filtrlash
curl "http://localhost:20128/api/settings/oneproxy?protocol=socks5"
# Mamlakat boʻyicha filtrlash
curl "http://localhost:20128/api/settings/oneproxy?countryCode=US"
# Minimal sifat bali boʻyicha filtrlash
curl "http://localhost:20128/api/settings/oneproxy?minQuality=80"
# Filtrlarni birlashtirish
curl "http://localhost:20128/api/settings/oneproxy?protocol=http&countryCode=DE&minQuality=70"
Proksi sifat ballari
Har bir 1proxy proksisi quyidagi metadata bilan taqdim etiladi:
| Maydon | Tavsif |
|---|---|
qualityScore |
1proxy tekshiruvi asosidagi 0-100 oraligʻidagi baho |
latencyMs |
Oʻlchangan tarmoq kechikishi |
anonymity |
transparent, anonymous yoki elite |
googleAccess |
Proksi Google xizmatlariga kira olishi |
countryCode |
Ikki harfli ISO mamlakat kodi |
lastValidated |
Oxirgi tekshiruv vaqt belgisi |
Sifat ballari dinamik ravishda oʻzgartiriladi:
- Bajarilmagan soʻrovlar ballni 10 punktga kamaytiradi
- Ball ≤10 gacha tushsa → proksi
inactivedeb belgilanadi - Nofaol proksilar almashtirish jarayonidan chiqarib tashlanadi
Almashtirish strategiyalari
# Sifat boʻyicha almashtirish (eng yaxshi proksi birinchi) — standart
curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \
-H "Content-Type: application/json" \
-d '{"strategy": "quality"}'
# Tasodifiy almashtirish
curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \
-d '{"strategy": "random"}'
# Ketma-ket (eng oldin tekshirilgan proksi birinchi)
curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \
-d '{"strategy": "sequential"}'
Avtomatik uzgich
1proxy sinxronlashida ichki avtomatik uzgich mavjud:
- Ketma-ket 5 ta sinxronlash xatosidan keyin keyingi sinxronlash urinishlari bloklanadi
resetOneproxyCircuitBreaker()yordamida qayta oʻrnating yoki serverni qayta ishga tushiring- Sinxronlash holati
GET /api/settings/oneproxy?action=statusmanzilida mavjud
1proxy proksilarini tozalash
# Bitta 1proxy proksisini oʻchirish
curl -X DELETE "http://localhost:20128/api/settings/oneproxy?id=proxy-uuid"
# BARCHA 1proxy proksilarini tozalash (qoʻlda qoʻshilgan proksilarga tegilmaydi)
curl -X DELETE "http://localhost:20128/api/settings/oneproxy?clearAll=1"
Aniqlashdan himoyalanish va yashirinlik
OmniRoute trafikni shunchaki proksi orqali yoʻnaltiribgina qolmay, uni haqiqiy trafikdek koʻrsatadi:
TLS raqamli izini soxtalashtirish
Brauzerga oʻxshash TLS raqamli izlarini yaratish uchun wreq-jsdan foydalanadi va brauzerga tegishli boʻlmagan TLS ulanishlarini belgilaydigan botlarni aniqlash tizimlarini chetlab oʻtadi.
CLI raqamli iziga moslash
CLI raqamli izi almashtirgichi (Sozlamalar → Xavfsizlik) HTTP sarlavhalari va JSON tanasi maydonlarini mahalliy CLI ikkilik fayllarining (Claude Code, Codex va boshqalar) aniq signaturasiga mos ravishda qayta tartiblaydi. Bu proksi bilan birgalikda ishlaydi:
Sizning IP manzilingiz (bloklangan) → Proksi IP manzili (AQSH) → Provayder API
+ TLS soxtalashtirish
+ CLI raqamli izi
Shu tariqa bir vaqtning oʻzida ham IP manzilni yashirish, ham soʻrovning haqiqiyligi taʼminlanadi.
Proksi IP manzilini saqlash
Boshqaruv panelidagi rang bilan kodlangan nishonlar qaysi proksi darajasi faol ekanini koʻrsatadi:
| Nishon | Daraja | Maʼnosi |
|---|---|---|
| 🟢 | Global | Barcha trafik ushbu proksi orqali oʻtadi |
| 🟡 | Provayder | Faqat ushbu provayder trafiki proksilanadi |
| 🔵 | Ulanish | Ushbu aniq kalit/hisob shu proksidan foydalanadi |
Nishon tekshirish uchun aniqlangan proksi IP manzilini ham koʻrsatadi.
Yuqori oqim proksi rejimlari
CLIProxyAPI andozasidan foydalanadigan provayderlar uchun OmniRoute yuqori oqim proksisining uchta rejimini qoʻllab-quvvatlaydi:
| Rejim | Tavsif |
|---|---|
native |
OmniRoute proksi yoʻnaltirishni bevosita boshqaradi (standart) |
cliproxyapi |
Tashqi CLIProxyAPI nusxasiga topshiradi |
fallback |
Avval mahalliy usulni sinaydi, soʻng CLIProxyAPIga oʻtadi |
Har bir provayder uchun sozlang:
curl -X PUT "http://localhost:20128/api/upstream-proxy/openai" \
-H "Content-Type: application/json" \
-d '{"mode": "native", "enabled": true}'
Boshqaruv paneli interfeysi
Sozlamalar → Proksi ichki oynasi
- Global proksi konfiguratsiyasi (barcha trafik uchun bir marta sozlanadi)
- Har bir provayder uchun proksi almashtirishlari
- Har bir ulanish uchun proksi biriktirishlari
- Sozlangan proksi orqali ulanish sinovi
- Faol proksi darajasini koʻrsatuvchi rang bilan kodlangan nishonlar
Sozlamalar → 1proxy ichki oynasi
- Bepul proksilarni olish uchun Hozir sinxronlash tugmasi
- Statistika kartalari: Jami, Faol, Oʻrtacha sifat, Oxirgi sinxronlash
- Filtrlar: Protokol, Mamlakat kodi, Minimal sifat
- Xost, protokol, mamlakat, sifat bahosi, kechikish, anonimlik va Googleʼga kirish imkoniyati koʻrsatilgan proksi jadvali
- Muvaffaqiyat/muvaffaqiyatsizliklarni kuzatish va ketma-ket muvaffaqiyatsizliklar soni koʻrsatilgan sinxronlash holati paneli
- Barcha 1proxy yozuvlarini olib tashlash uchun Barchasini tozalash
API maʼlumotnomasi
Proksi sozlamalari API
| Metod | Yakuniy nuqta | Tavsif |
|---|---|---|
GET |
/api/settings/proxy |
Toʻliq proksi konfiguratsiyasini olish |
GET |
/api/settings/proxy?level=global |
Global proksini olish |
GET |
/api/settings/proxy?level=provider&id=openai |
Provayder proksisini olish |
GET |
/api/settings/proxy?resolve=connectionId |
Amaldagi proksini aniqlash |
PUT |
/api/settings/proxy |
Proksi konfiguratsiyasini yangilash |
DELETE |
/api/settings/proxy?level=provider&id=openai |
Darajadagi proksini olib tashlash |
Proksi reyestri API
| Metod | Yakuniy nuqta | Tavsif |
|---|---|---|
GET |
/api/v1/management/proxies |
Barcha proksilarni roʻyxatlash |
GET |
/api/v1/management/proxies?id=uuid |
Proksini ID boʻyicha olish |
GET |
/api/v1/management/proxies?id=uuid&where_used=1 |
Proksi biriktirishlarini olish |
POST |
/api/v1/management/proxies |
Proksi yaratish |
PATCH |
/api/v1/management/proxies |
Proksini yangilash |
DELETE |
/api/v1/management/proxies?id=uuid |
Proksini oʻchirish |
DELETE |
/api/v1/management/proxies?id=uuid&force=1 |
Majburan oʻchirish |
POST |
/api/v1/management/proxies/bulk-assign |
Ommaviy biriktirish |
GET |
/api/v1/management/proxies/assignments |
Biriktirishlarni roʻyxatlash |
GET |
/api/v1/management/proxies/health |
Proksi holati statistikasi |
Tunnellar API
Chiquvchi trafikni proksi orqali yoʻnaltirish oʻrniga OmniRoute nusxangizni ommaviy internetga (Cloudflare/ngrok/Tailscale) ochish uchun TUNNELS_GUIDE.md sahifasiga qarang. Tunnel REST API /api/tunnels/{cloudflared,ngrok,tailscale}/* ostida joylashgan va yuqorida hujjatlashtirilgan chiquvchi proksi zanjiridan mustaqil.
1proxy API
| Metod | Yakuniy nuqta | Tavsif |
|---|---|---|
GET |
/api/settings/oneproxy |
1proxy proksilarini roʻyxatlash |
GET |
/api/settings/oneproxy?action=stats |
Statistika va sinxronlash holatini olish |
GET |
/api/settings/oneproxy?action=status |
Faqat sinxronlash holatini olish |
POST |
/api/settings/oneproxy |
Sinxronlashni ishga tushirish |
POST |
/api/settings/oneproxy/rotate |
Keyingi proksiga oʻtish |
DELETE |
/api/settings/oneproxy?id=uuid |
Bittasini oʻchirish |
DELETE |
/api/settings/oneproxy?clearAll=1 |
Barchasini tozalash |
Yuqori oqim proksi API
| Metod | Yakuniy nuqta | Tavsif |
|---|---|---|
GET |
/api/upstream-proxy/:providerId |
Yuqori oqim proksi konfiguratsiyasini olish |
PUT |
/api/upstream-proxy/:providerId |
Yuqori oqim proksi rejimini sozlash |
DELETE |
/api/upstream-proxy/:providerId |
Yuqori oqim proksi konfiguratsiyasini olib tashlash |
Muhit oʻzgaruvchilari
| Oʻzgaruvchi | Standart qiymat | Tavsif |
|---|---|---|
ENABLE_SOCKS5_PROXY |
true |
SOCKS5 proksi qoʻllab-quvvatlashini yoqish (.env.exampleda standart qiymat true) |
Muammolarni bartaraf etish
"SOCKS5 proksi oʻchirilgan"
.env faylingizda ENABLE_SOCKS5_PROXY=true qilib belgilang va qayta ishga tushiring.
Proksi orqali "socket hang up" xatolari
Faol boʻlmagan ulanishlarni uzib qoʻyadigan arzon proksilarda bu odatiy holat. OmniRoute buni allaqachon quyidagicha boshqaradi:
- Proksi ulanishlarida keep-alive funksiyasini oʻchirish (
keepAliveTimeout: 1) - Pipelining funksiyasini oʻchirish (
pipelining: 0) - Takroriy ulanish kelishuvlarini oldini olish uchun dispatcherlarni keshlash
Agar muammo davom etsa, boshqa proksini sinab koʻring yoki 1proxy rotatsiya funksiyasidan foydalaning.
OAuth paytida "unsupported_country_region_territory"
OAuth jarayonini boshlashdan oldin proksi sozlanganligiga ishonch hosil qiling. OmniRoute OAuth token almashinuvini sozlangan proksi orqali yoʻnaltiradi. Avval global yoki provayder darajasidagi proksini belgilang, soʻng ulaning.
Proksi ishlatilmayapti
Aniqlash tartibini tekshiring:
GET /api/settings/proxy?resolve=your-connection-idorqali tekshiring- Proksi
statusqiymatiactive(inactiveemas) ekanini tekshiring - Proksi tayinlash qamrovi ulanishingizga mos kelishiga ishonch hosil qiling
1proxy sinxronlashuvi bajarilmadi
Sinxronlash holatini tekshiring:
curl "http://localhost:20128/api/settings/oneproxy?action=status"
Agar consecutiveFailures >= 5 boʻlsa, avtomatik uzgich ishga tushgan. Uni qayta tiklash uchun serverni qayta ishga tushiring yoki qoʻlda tiklanishini kuting.
Maʼlumotlar bazasi sxemasi
proxy_registry jadvali
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' yoki 'oneproxy'
quality_score INTEGER, -- 0-100 (faqat 1proxy)
latency_ms INTEGER, -- millisekundlar (faqat 1proxy)
anonymity TEXT, -- shaffof/anonim/yuqori darajali
google_access INTEGER DEFAULT 0, -- Googlega kira oladimi? (1proxy)
last_validated TEXT, -- ISO vaqt belgisi (1proxy)
country_code TEXT, -- ISO ikki harfli kod (1proxy)
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
proxy_assignments jadvali
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, -- provayder IDsi, ulanish IDsi yoki kombinatsiya IDsi
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
UNIQUE(scope, scope_id)
);
Proksi holatini tekshirish (v3.8.16+)
OmniRouteʼning proksi tezkor xato aniqlash mexanizmi (src/lib/proxyHealth.ts) tezkor TCP ulanish tekshiruvi orqali ishlamayotgan proksilarni <2s ichida aniqlaydi, soʻng har bir soʻrov uchun qoʻshimcha xarajatlarning oldini olish maqsadida natijani keshlaydi.
Ishlash tartibi
Soʻrov ──▶ ProxyHealthCache.get(url)
│
├─ Keshda bor + yangi? ──▶ keshlangan holatni qaytarish
│
└─ Keshda yoʻq / eskirgan? ──▶ host:portga TCP orqali ulanish
(kutish vaqti: FAST_FAIL_TIMEOUT_MS)
──▶ HEALTH_CACHE_TTL_MS muddatiga keshlash
──▶ natijani qaytarish
Bu mexanizmsiz ishlamayotgan proksi har bir soʻrovni muvaffaqiyatsiz tugashidan oldin toʻliq PROXY_TIMEOUT_MS davomida (standart qiymat 30s) bloklab turadi.
Sozlanadigan muhit oʻzgaruvchilari
| Oʻzgaruvchi | Standart qiymat | Maqsad |
|---|---|---|
PROXY_FAST_FAIL_TIMEOUT_MS |
2000 |
Har bir holat tekshiruvi uchun TCP ulanishining kutish vaqti |
PROXY_HEALTH_CACHE_TTL_MS |
30000 |
Holat natijasi keshlanadigan vaqt |
Tavsiya etilgan qiymatlar:
| Ssenariy | Tezkor xato aniqlash kutish vaqti | Kesh TTL | Asos |
|---|---|---|---|
| Yuqori oʻtkazuvchanlikdagi API shlyuzi | 1500ms | 60000ms | Tezkor xatoni agressiv aniqlash, tekshiruvlarni kamaytirish uchun uzoqroq kesh |
| Geografik taqsimlangan tugunlar | 3000ms | 15000ms | Sekinroq tarmoqlarga koʻproq vaqt kerak; tezkor almashish uchun qisqaroq kesh |
| Ishlab chiqish / sinov | 1000ms | 10000ms | Mahalliy proksilarda tezkor iteratsiya |
| Yashirinlik / aniqlashdan himoyalanish | 2500ms | 45000ms | Tezlik cheklovlarini ishga tushirishi mumkin boʻlgan tez-tez tekshirishlardan saqlanish |
Proksi holatini koʻrish
import { getAllProxyHealthStatuses, invalidateProxyHealth } from "omniroute/proxyHealth";
const statuses = getAllProxyHealthStatuses();
for (const s of statuses) {
console.log(`${s.proxyUrl} → healthy=${s.healthy}, stale=${s.stale}`);
}
// Muayyan proksini majburiy qayta tekshirish
invalidateProxyHealth("http://user:pass@203.0.113.7:8080");
Kesh yozuvi HEALTH_CACHE_TTL_MS muddatidan oshib ketganda stale bayrogʻi true boʻladi va keyingi soʻrov yangi tekshiruvni ishga tushiradi.
Proksi turi boʻyicha standart qiymatlar
Holat tekshiruvi URL sxemasiga asoslangan oqilona standart qiymatlardan foydalanadi:
| Sxema | Standart port |
|---|---|
http:// |
8080 |
https:// |
443 |
socks5:// / socks5h:// |
1080 |
URL ichidagi maxsus portlar (http://host:9999) har doim sxemaning standart qiymatidan ustun turadi.
Proksi tahlili va kuzatuvchanlik
OmniRoute operatorlarga marshrutlash naqshlari, kechikishdagi keskin oshishlar va takroriy nosozliklarni aniqlashda yordam berish uchun har bir proksi bo‘yicha foydalanish ma’lumotlarini kuzatadi.
Nimalar kuzatiladi
Sozlangan proksi orqali o‘tgan har bir so‘rov uchun OmniRoute quyidagilarni qayd etadi:
| Ko‘rsatkich | Tavsif |
|---|---|
proxy_url |
To‘liq proksi URL manzili (autentifikatsiya ma’lumotlari niqoblangan holda) |
provider |
Yuqori oqim provayderi ID si (openai, anthropic va boshqalar) |
latency_ms |
Proksi bilan ulanishni o‘rnatish vaqtini ham o‘z ichiga olgan jami borib-kelish vaqti |
connect_ms |
Faqat TCP ulanish vaqti |
status |
Yuqori oqimdan olingan HTTP holat kodi |
error |
So‘rov muvaffaqiyatsiz tugagan bo‘lsa, xato sinfi |
timestamp |
ISO 8601 UTC |
Ma’lumotlarga kirish
# Oxirgi proksi hodisalari
curl -H "Authorization: Bearer $OMNIROUTE_KEY" \
"http://localhost:20128/api/usage/proxy-logs?limit=100"
Haqiqiy endpoint — /api/usage/proxy-logs (src/app/api/usage/proxy-logs/route.ts ga qarang). Bu endpoint quyidagilarni qo‘llab-quvvatlaydi:
GET /api/usage/proxy-logs— proksi jurnallarini olishDELETE /api/usage/proxy-logs— barcha proksi jurnallarini tozalash
Zarur bo‘lsa, jamlangan statistikani SQL orqali bevosita proxy_logs jadvalidan so‘rash mumkin. Boshqaruv paneli interfeysi jamlangan ko‘rinishlarni taklif qilishi mumkin.
Keng tarqalgan usullar
Beqaror proksini aniqlash (muvaffaqiyat va muvaffaqiyatsizlik o‘rtasida almashinadi):
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;
Sekin proksilarni topish (p95 kechikishi > 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;
Rotatsiya strategiyasini tanlash daraxti
Bitta qamrovga bir nechta proksi biriktirilganda, OmniRoute har bir so‘rov uchun qaysi birini ishlatishni tanlash maqsadida rotatsiya strategiyasidan foydalanadi. Strategiya qamrov darajasida sozlanadi (global, har bir provayder, har bir hisob, har bir kombinatsiya bo‘yicha).
Mavjud strategiyalar
| Strategiya | Qachon ishlatish kerak | Murosa |
|---|---|---|
quality (standart) |
Sifati turlicha bo‘lgan proksilar bilan ishlab chiqarish muhiti | Yuqori baholangan proksilarni afzal ko‘radi; past baholanganlari ishlatilmay qolishi mumkin |
random |
Yuklamani taqsimlash, maxfiylik | Bir tekis taqsimlash; sifat signallarini hisobga olmaydi |
sequential |
Nosozliklarni tuzatish, deterministik sinov | Proksilarni tartib bilan navbatma-navbat ishlatadi; tushunish oson |
Qaror daraxti
Proksilaringiz uchun sifat ballari mavjudmi?
│
┌───────────┴───────────┐
│ │
HA YO‘Q
│ │
Barcha proksilar │
sifati taxminan │
tengmi? │
│ │
┌────┴────┐ │
│ │ │
HA YO‘Q Ishlating
│ │ `random`
│ │ (bir tekis
│ │ taqsimlash vaqt
│ │ o‘tishi bilan sifat
│ │ ma’lumotini to‘playdi)
│ │
│ `quality`dan foydalaning
│ (turli sifatlar
│ uchun eng yaxshisi)
│
`random`dan foydalaning
(yuklamani bir
tekis taqsimlang)
Oʻz proksilaringiz uchun nosozliklarni avtomatik istisno qilish
1proxy marketpleys puli nosoz proksilarni allaqachon avtomatik ravishda pasaytiradi (qarang:
Proksi sifati ballari). Reestrga oʻzingiz qoʻshgan
proksilar uchun fondagi holat tekshiruvi rejalashtiruvchisi
(src/lib/proxyHealth/scheduler.ts) hech narsani oʻchirmasdan, xuddi shunday
“ishlamayotgan aʼzoni zanjirdan avtomatik chiqarib tashlash” imkoniyatini taqdim etadi:
# .env — ketma-ket 3 ta muvaffaqiyatsiz tekshiruvdan keyin proksini vaqtincha oʻchiring,
# tekshiruvlarga yana javob bera boshlagach, uni avtomatik ravishda qayta yoqing.
PROXY_AUTO_DISABLE=true
PROXY_AUTO_REMOVE_AFTER=3
Bu koʻp proksili zanjirda quyidagicha ishlaydi:
- Rejalashtiruvchi har bir roʻyxatdan oʻtkazilgan proksini har
PROXY_HEALTH_INTERVAL_MSoraligʻida tekshiradi (standart: 10 daqiqa; minimum: 1 daqiqa). - Ketma-ket
PROXY_AUTO_REMOVE_AFTERta aniq muvaffaqiyatsizlikdan soʻng (haqiqiy ulanish xatosi — taym-aut yoki tekshiruv nishonining oʻzidagi 5xx hech qachon hisobga olinmaydi, qarang: Proksi holatini tekshirish), proksiningstatusqiymatideadetib belgilanadi. dead— pul/rotatsiya aniqlash mexanizmi ishlatadigan faol holatlar filtri chiqarib tashlaydigan holatlardan biri. Shu sababli qamrov rotatsiyasi (navbatma-navbat / tasodifiy / biriktirilgan / kechikish boʻyicha — qarang: Rotatsiya strategiyasini tanlash daraxti) darhol ushbu proksini yangi soʻrovlarga berishni toʻxtatadi. Puldagi boshqa proksilarga taʼsir qilinmaydi va butun pul hech qachon bildirmasdan toʻgʻridan-toʻgʻri ulanishga qaytmaydi — 4 darajali proksi tizimi dagi xatolikda-yopish himoyasiga qarang.- Rejalashtiruvchi
deadholatidagi proksilarni xuddi shu intervalda tekshirishda davom etadi. Keyingi muvaffaqiyatli tekshiruvstatusqiymatini yanaactiveholatiga oʻzgartiradi va proksi rotatsiyaga qaytadi — uni qoʻlda qayta qoʻshish talab qilinmaydi.
Bu ataylab ixtiyoriy va buzmaydigan tarzda ishlab chiqilgan: standart holatda
rejalashtiruvchi faqat muvaffaqiyatsizliklarni hisoblaydi va jurnalga yozadi
(decision.ts faylidagi C siyosatiga qarang), PROXY_AUTO_DISABLE esa hech qachon
qatorni oʻchirmaydi — buning uchun alohida, yanada keskinroq PROXY_AUTO_REMOVE
bayrogʻi mavjud. Agar ikkalasi ham true etib belgilansa, PROXY_AUTO_REMOVE
ustunlik qiladi (oʻchirilish arafasidagi proksini oraliqda vaqtincha oʻchirishdan
foyda yoʻq). Oʻzgaruvchilarning toʻliq roʻyxati uchun
Muhit konfiguratsiyasi maʼlumotnomasiga qarang.
📖 Tegishli hujjatlar:
- Foydalanuvchi qoʻllanmasi — Umumiy sozlash va konfiguratsiya
- API maʼlumotnomasi — Toʻliq API hujjatlari
- Muhit konfiguratsiyasi — Barcha muhit oʻzgaruvchilari