# 🌐 OmniRoute Proxy Guide (Gaeilge) 🌐 **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) · 🇮🇳 [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) · 🇮🇳 [mr](../../../mr/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) --- > **Téigh timpeall ar bhacainní geografacha, cosain d’aitheantas, agus treoraigh trácht IS trí sheachfhreastalaí ar bith — gan aon chastacht chumraíochta.** Cuimsíonn OmniRoute córas bainistíochta seachfhreastalaí lánfheidhmeach a ligeann duit trácht chuig soláthraithe IS réamhtheachtacha a threorú trí sheachfhreastalaithe HTTP, HTTPS, nó SOCKS5. Cibé acu atá tú i réigiún blocáilte, a bhfuil rothlú IP de dhíth ort, nó a dteastaíonn méarlorgú ceilte uait — clúdaíonn an treoir seo gach rud. --- ## Clár na nÁbhar - [Cén Fáth Seachfhreastalaithe a Úsáid?](#why-use-proxies) - [Forbhreathnú ar an Ailtireacht](#architecture-overview) - [Córas Seachfhreastalaí 4 Leibhéal](#4-level-proxy-system) - [Clárlann Seachfhreastalaithe (CRUD)](#proxy-registry-crud) - [Margadh Saor in Aisce 1proxy](#1proxy-free-proxy-marketplace) - [Rothlú Seachfhreastalaithe](#proxy-rotation) - [Frithbhraiteacht & Ceilt](#anti-detection--stealth) - [Móid Seachfhreastalaí Réamhtheachtaigh](#upstream-proxy-modes) - [Comhéadan an Deais](#dashboard-ui) - [Tagairt API](#api-reference) - [Athróga Timpeallachta](#environment-variables) - [Fabhtcheartú](#troubleshooting) --- ## Cén Fáth Seachfhreastalaithe a Úsáid? Cuireann go leor soláthraithe IS srian ar rochtain de réir réigiúin gheografaigh. Tagann forbróirí sa **Rúis, sa tSín, san Iaráin, i gCúba, sa Tuirc**, agus i dtíortha eile ar earráidí amhail: ``` unsupported_country_region_territory ``` Fiú lasmuigh de réigiúin bhlocáilte, bíonn seachfhreastalaithe úsáideach le haghaidh: | Cás Úsáide | Cur Síos | | ------------------------- | ------------------------------------------------------------------------ | | **Seachaint gheografach** | Faigh rochtain ar OpenAI, Anthropic, Codex, Copilot ó thíortha blocáilte | | **Rothlú IP** | Dáil iarratais ar IPanna iolracha chun teorannú ráta a sheachaint | | **Príobháideachas** | Folaigh do sheoladh IP iarbhír ar sholáthraithe réamhtheachtacha | | **Comhlíonadh** | Treoraigh trácht trí dhlínsí sonracha | | **Tástáil** | Insamhail iarratais ó réigiúin éagsúla | --- ## Forbhreathnú ar an Ailtireacht ``` ┌───────────────────────────────────────────────────────────────┐ │ Freastalaí OmniRoute │ │ │ │ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │ │ │ Clárlann │ │ Seoltóir │ │ Gabháil │ │ │ │ Seachfhreast│───▶│ Seachfhreast.│───▶│ (undici) │ │ │ │ (SQLite) │ │ (taisceáilte)│ │ │ │ │ └─────────────┘ └──────────────┘ └────────┬─────────┘ │ │ ▲ │ │ │ │ ▼ │ │ ┌──────┴──────┐ ┌──────────────────┐ │ │ │ Sioncronú │ │ API an │ │ │ │ 1proxy │ │ tSoláthraí │ │ │ │ (linn saor) │ │ Réamhtheachtaigh │ │ │ └─────────────┘ └──────────────────┘ │ └───────────────────────────────────────────────────────────────┘ ``` ### Príomh-Chomhpháirteanna | Comhpháirt | Comhad | Ról | | -------------------------------- | -------------------------------------------- | ----------------------------------------------------------------------- | | **Clárlann Seachfhreastalaithe** | `src/lib/db/proxies.ts` | CRUD d’iontrálacha seachfhreastalaí + sannacháin raoin | | **Seoltóir Seachfhreastalaí** | `open-sse/utils/proxyDispatcher.ts` | Cruthaíonn sé seoltóirí `undici` ProxyAgent/SOCKS le taisceadh | | **Gabháil Seachfhreastalaí** | `open-sse/utils/proxyFetch.ts` | Timfhilleann sé `fetch()` agus insteallann sé seoltóir seachfhreastalaí | | **Bealach Socruithe** | `src/app/api/settings/proxy/route.ts` | API cumraíochta seachfhreastalaí oidhreachta (GET/PUT/DELETE) | | **Bealach Bainistíochta** | `src/app/api/v1/management/proxies/route.ts` | API CRUD na clárlainne (GET/POST/PATCH/DELETE) | | **Bunachar Sonraí 1proxy** | `src/lib/db/oneproxy.ts` | Marthanacht mhargadh na seachfhreastalaithe saor in aisce | --- ## Córas Seachfhreastalaí 4 Leibhéal Tacaíonn OmniRoute le cumraíocht seachfhreastalaí ag **ceithre raon neamhspleácha**, a réitítear in ord tosaíochta: ``` Ord Réitigh Tosaíochta (is airde → is ísle): 1. 🔵 Seachfhreastalaí Cuntais/Ceangail → de réir eochair API / ceangal OAuth 2. 🟡 Seachfhreastalaí Soláthraí → de réir soláthraí (m.sh., trácht OpenAI ar fad) 3. 🟠 Seachfhreastalaí Teaglama → de réir cumraíocht teaglama/ródaithe 4. 🟢 Seachfhreastalaí Domhanda → gach trácht, gach soláthraí ``` ### Conas a Oibríonn an Réiteach Nuair a sheolann OmniRoute iarratas chuig soláthraí réamhtheachtach, glaonn sé `resolveProxyForConnectionFromRegistry()`, a sheiceálann gach leibhéal in ord: 1. **Leibhéal an chuntais** — An bhfuil seachfhreastalaí sannta don ID ceangail sonrach seo? 2. **Leibhéal an tsoláthraí** — An bhfuil seachfhreastalaí sannta don soláthraí seo (m.sh., `openai`)? 3. **Leibhéal domhanda** — An bhfuil seachfhreastalaí domhanda cumraithe? 4. **Gan seachfhreastalaí** — Ceangal díreach leis an soláthraí. Is é an chéad mheaitseáil a úsáidtear. Ciallaíonn sé seo gur féidir leat seachfhreastalaí domhanda a shocrú mar chúltaca, ach é a shárú do sholáthraithe nó do cheangail ar leith. ### Cad a Sheoltar Tríd an Seachfhreastalaí | Cineál Tráchta | Trí Sheachfhreastalaí? | Nótaí | | ----------------------- | ---------------------- | --------------------------------------------------------- | | Comhlánuithe comhrá | ✅ | Gach iarratas `/v1/chat/completions` | | Leabuithe | ✅ | `/v1/embeddings` | | Giniúint íomhánna | ✅ | `/v1/images/generations` | | Fuaim (TTS/STT) | ✅ | `/v1/audio/*` | | Malartú comhartha OAuth | ✅ | Réitíonn sé `unsupported_country_region_territory` | | Tástálacha ceangail | ✅ | Úsáideann an cnaipe "Tástáil Ceangal" an seachfhreastalaí | | Athnuachan comhartha | ✅ | Athnuachan OAuth sa chúlra | | Sioncrónú samhlacha | ✅ | Liostú agus aimsiú samhlacha | --- ## Clárlann Seachfhreastalaithe (CRUD) Is tábla SQLite (`proxy_registry`) í an chlárlann seachfhreastalaithe ina stóráiltear do chuid seachfhreastalaithe go léir. Tá na réimsí seo a leanas ag gach seachfhreastalaí: | Réimse | Cineál | Cur Síos | | ---------- | ---------- | ------------------------------------------------------------- | | `id` | UUID | Aitheantóir uathúil | | `name` | Teaghrán | Lipéad atá soléite ag daoine | | `type` | Teaghrán | Prótacal: `http`, `https`, `socks5` | | `host` | Teaghrán | Óstainm nó IP an tseachfhreastalaí | | `port` | Slánuimhir | Uimhir phoirt | | `username` | Teaghrán | Ainm úsáideora fíordheimhnithe (criptithe agus iad stóráilte) | | `password` | Teaghrán | Focal faire fíordheimhnithe (criptithe agus iad stóráilte) | | `region` | Teaghrán | Lipéad réigiúin gheografaigh | | `notes` | Teaghrán | Nótaí saorthéacs | | `status` | Teaghrán | `active` nó `inactive` | | `source` | Teaghrán | `manual` nó `oneproxy` | ### Seachfhreastalaí a Chruthú **Tríd an Deais:** 1. Téigh chuig **Socruithe → Seachfhreastalaí** 2. Cliceáil **Cuir Seachfhreastalaí Leis** 3. Líon isteach an cineál, an t-óstach, an port agus, más mian leat, na dintiúir fíordheimhnithe 4. Sábháil **Tríd an 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" }' ``` ### Seachfhreastalaí a Nuashonrú ```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 }' ``` > **Nóta:** Coinnítear na dintiúir mura seolann tú ionadaigh nach bhfuil folamh go sainráite. Má sheoltar teaghráin fholmha do `username`/`password`, coinneofar na luachanna atá stóráilte. ### Seachfhreastalaí a Scriosadh ```bash # Teipeann air má tá an seachfhreastalaí sannta d'aon raon curl -X DELETE "http://localhost:20128/api/v1/management/proxies?id=proxy-uuid" # Scriosadh éigeantach (baintear na sannacháin freisin) curl -X DELETE "http://localhost:20128/api/v1/management/proxies?id=proxy-uuid&force=1" ``` ### Seachfhreastalaithe a Liostú ```bash curl "http://localhost:20128/api/v1/management/proxies?limit=50&offset=0" ``` ### Seachfhreastalaithe a Shannadh do Raonta ```bash # Sann don raon domhanda 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}}' # Sann do sholáthraí ar leith 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}}' # Sann do cheangal/eochair ar leith 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}}' ``` ### An Seachfhreastalaí Éifeachtach a Réiteach Seiceáil cén seachfhreastalaí a d'úsáidfí do cheangal ar leith: ```bash curl "http://localhost:20128/api/settings/proxy?resolve=connection-uuid" ``` Filleann sé seo an seachfhreastalaí réitithe lena leibhéal (`account`, `provider`, nó `global`) agus lena fhoinse. ### Sannadh Bulc Sann seachfhreastalaí amháin d'ilsholáthraithe nó d'ilcheangail ag an am céanna: ```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" }' ``` ### Iompórtáil/Easpórtáil Cuirtear seachfhreastalaithe san áireamh sa chóras **Cúltaca/Athchóiriú**. Nuair a easpórtálann tú do chumraíocht OmniRoute: 1. Téigh chuig **Deais → Socruithe → Cúltaca** 2. Cliceáil **Easpórtáil** — cuirtear clárlann agus sannacháin na seachfhreastalaithe san áireamh 3. Chun athchóiriú a dhéanamh, cliceáil **Iompórtáil** agus uaslódáil an comhad cúltaca Tacaíonn an chlárlann seachfhreastalaithe freisin le **upsert de réir host+port** — má iompórtálann tú seachfhreastalaí atá ann cheana (an t-óstach agus an port céanna), nuashonraítear é in ionad dúblach a chruthú. ### Ascú Oidhreachta Má chumraigh tú seachfhreastalaithe i leagan níos sine (roimh an gclárlann), aistríonn OmniRoute iad go huathoibríoch: ``` Stór oidhreachta key_value → proxy_registry + proxy_assignments ``` Tarlaíonn sé seo uair amháin ar an gcéad tosú tar éis uasghrádaithe. Úsáid `migrateLegacyProxyConfigToRegistry({ force: true })` chun é a rith arís. --- ## Margadh Saor-Ionadaithe Saor in Aisce 1proxy > 🆕 **Arna chur leis ag [@oyi77](https://github.com/oyi77)** — PR [#1847](https://github.com/diegosouzapw/OmniRoute/pull/1847) (Saincheist [#1788](https://github.com/diegosouzapw/OmniRoute/issues/1788)) Comhtháthaíonn OmniRoute le hardán pobail **[1proxy](https://1proxy-api.aitradepulse.com)** chun rochtain a sholáthar ar **na céadta seachfhreastalaí saor in aisce atá bailíochtaithe** ó gach cearn den domhan. Tá sé seo foirfe d’úsáideoirí nach bhfuil a mbonneagar seachfhreastalaí féin acu. ### Conas a Oibríonn Sé ``` ┌─────────────┐ Sioncronú ┌─────────────────┐ Rothlú ┌────────────┐ │ API 1proxy │ ────────────▶ │ proxy_registry │ ────────────▶ │ Soláthraí │ │ (seachtrach)│ suas le 500 │ source=oneproxy │ de réir cáil. │ API │ └─────────────┘ seachfhreast. └─────────────────┘ └────────────┘ ``` 1. **Sioncronú** — Faigheann OmniRoute seachfhreastalaithe bailíochtaithe ó API 1proxy 2. **Stóráil** — Sábháiltear seachfhreastalaithe sa tábla céanna `proxy_registry` le `source = 'oneproxy'` 3. **Scagadh** — Scagtar de réir prótacail, tíre agus scór cáilíochta 4. **Rothlú** — Roghnaítear an seachfhreastalaí is fearr trí straitéis cháilíochta, randamach nó sheicheamhach a úsáid 5. **Uathdhíghrádú** — Laghdaítear scór cáilíochta seachfhreastalaithe a dteipeann orthu; faoi bhun na tairsí → marcáiltear mar neamhghníomhach iad ### Seachfhreastalaithe a Shioncronú **Tríd an Deais:** 1. Téigh chuig an táb **Socruithe → 1proxy** 2. Cliceáil **"Sioncronaigh Anois"** 3. Féach ar na staitisticí: líon iomlán na seachfhreastalaithe, líon gníomhach, meáncháilíocht agus miondealú de réir tíre **Tríd an API:** ```bash # Cuir tús leis an sioncronú curl -X POST http://localhost:20128/api/settings/oneproxy \ -H "Content-Type: application/json" \ -d '{}' # Freagra: # { "success": true, "added": 127, "updated": 45, "failed": 2, "total": 172 } ``` ### Seachfhreastalaithe a Scagadh ```bash # Scag de réir prótacail curl "http://localhost:20128/api/settings/oneproxy?protocol=socks5" # Scag de réir tíre curl "http://localhost:20128/api/settings/oneproxy?countryCode=US" # Scag de réir íosscóir cáilíochta curl "http://localhost:20128/api/settings/oneproxy?minQuality=80" # Comhcheangail scagairí curl "http://localhost:20128/api/settings/oneproxy?protocol=http&countryCode=DE&minQuality=70" ``` ### Scóir Cháilíochta Seachfhreastalaí Tagann meiteashonraí le gach seachfhreastalaí 1proxy: | Réimse | Cur Síos | | --------------- | -------------------------------------------------------------- | | `qualityScore` | Rátáil 0-100 ó bhailíochtú 1proxy | | `latencyMs` | Aga folaigh líonra tomhaiste | | `anonymity` | `transparent`, `anonymous`, nó `elite` | | `googleAccess` | An féidir leis an seachfhreastalaí seirbhísí Google a rochtain | | `countryCode` | Cód tíre ISO dhá litir | | `lastValidated` | Stampa ama an bhailíochtaithe is déanaí | Coigeartaítear scóir cháilíochta go dinimiciúil: - Laghdaíonn **iarratais ar theip orthu** an scór faoi 10 bpointe - **Titeann an scór go ≤10** → marcáiltear an seachfhreastalaí mar `inactive` - Eisiatar seachfhreastalaithe neamhghníomhacha ón rothlú ### Straitéisí Rothlaithe ```bash # Rothlaigh de réir cáilíochta (an seachfhreastalaí is fearr ar dtús) — réamhshocrú curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \ -H "Content-Type: application/json" \ -d '{"strategy": "quality"}' # Rothlú randamach curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \ -d '{"strategy": "random"}' # Seicheamhach (an ceann is faide ó bailíochtaíodh é ar dtús) curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \ -d '{"strategy": "sequential"}' ``` ### Scoradán Ciorcaid Tá scoradán ciorcaid ionsuite ag sioncronú 1proxy: - Tar éis **5 theip shioncronaithe as a chéile**, cuirtear bac ar iarrachtaí sioncronaithe breise - Athshocraigh le: `resetOneproxyCircuitBreaker()` nó atosaigh an freastalaí - Tá stádas an tsioncronaithe ar fáil ag `GET /api/settings/oneproxy?action=status` ### Seachfhreastalaithe 1proxy a Ghlanadh ```bash # Scrios seachfhreastalaí aonair 1proxy curl -X DELETE "http://localhost:20128/api/settings/oneproxy?id=proxy-uuid" # Glan GACH seachfhreastalaí 1proxy (ní dhéantar aon athrú ar sheachfhreastalaithe láimhe) curl -X DELETE "http://localhost:20128/api/settings/oneproxy?clearAll=1" ``` --- ## Frithbhraiteacht & Rúndacht Ní hamháin go seolann OmniRoute trácht trí sheachfhreastalaí — cuireann sé cuma dhlisteanach ar an trácht: ### Bréagú Méarloirg TLS Úsáideann sé `wreq-js` chun méarloirg TLS atá cosúil le méarloirg brabhsálaí a ghiniúint, rud a sheachnaíonn córais braite róbat a mharcálann croitheadh láimhe TLS nach dtagann ó bhrabhsálaí. ### Meaitseáil Méarloirg CLI Déanann an **Scorán Méarloirg CLI** (`Socruithe → Slándáil`) ceanntásca HTTP agus réimsí i gcorp JSON a athordú chun síniú beacht dénártha dúchasacha CLI (Claude Code, Codex, srl.) a mheaitseáil. Oibríonn sé seo **anuas ar** an seachfhreastalaí: ``` Do IP (blocáilte) → IP an tSeachfhreastalaí (SAM) → API an tSoláthraí + bréagú TLS + méarlorg CLI ``` Faigheann tú **folú IP** agus **barántúlacht iarratais** ag an am céanna. ### Caomhnú IP an tSeachfhreastalaí Taispeánann suaitheantais dathchódaithe sa deais cén leibhéal seachfhreastalaí atá gníomhach: | Suaitheantas | Leibhéal | Brí | | ------------ | --------- | --------------------------------------------------------------- | | 🟢 | Domhanda | Téann an trácht ar fad tríd an seachfhreastalaí seo | | 🟡 | Soláthraí | Ní sheoltar ach trácht an tsoláthraí seo trí sheachfhreastalaí | | 🔵 | Ceangal | Úsáideann an eochair/cuntas sonrach seo an seachfhreastalaí seo | Taispeánann an suaitheantas IP réitithe an tseachfhreastalaí freisin lena fhíorú. --- ## Móid Seachfhreastalaí Réamhtheachtach I gcás soláthraithe a úsáideann patrún CLIProxyAPI, tacaíonn OmniRoute le trí mhód seachfhreastalaí réamhtheachtacha: | Mód | Cur Síos | | ------------- | ------------------------------------------------------------------------------------------------------- | | `native` | Láimhseálann OmniRoute ródú seachfhreastalaí go díreach (réamhshocrú) | | `cliproxyapi` | Tarmligeann sé chuig ásc seachtrach CLIProxyAPI | | `fallback` | Baineann sé triail as an mód dúchasach ar dtús, agus téann sé ar ais chuig CLIProxyAPI má theipeann air | Cumraigh de réir soláthraí: ```bash curl -X PUT "http://localhost:20128/api/upstream-proxy/openai" \ -H "Content-Type: application/json" \ -d '{"mode": "native", "enabled": true}' ``` --- ## Comhéadan Úsáideora na Deaise ### Socruithe → Cluaisín Seachfhreastalaí - Cumraíocht **seachfhreastalaí dhomhanda** (socraigh uair amháin don trácht ar fad) - Sáruithe **seachfhreastalaí de réir soláthraí** - Sannacháin **seachfhreastalaí de réir ceangail** - **Tástáil ceangail** tríd an seachfhreastalaí cumraithe - **Suaitheantais dathchódaithe** a thaispeánann leibhéal gníomhach an tseachfhreastalaí ### Socruithe → Cluaisín 1proxy - Cnaipe **Sioncronaigh Anois** chun seachfhreastalaithe saor in aisce a fháil - **Cártaí staitisticí**: Iomlán, Gníomhach, Meáncháilíocht, Sioncronú Deireanach - **Scagairí**: Prótacal, Cód Tíre, Cáilíocht Íosta - **Tábla seachfhreastalaithe** ina bhfuil óstach, prótacal, tír, scór cáilíochta, aga folaigh, anaithnideacht agus rochtain ar Google - Painéal **stádais sioncronaithe** ina rianaítear rath/teip agus líon na dteipeanna comhleanúnacha - **Glan Uile** chun gach iontráil 1proxy a bhaint --- ## Tagairt API ### API Shocruithe an tSeachfhreastalaí | Modh | Críochphointe | Cur Síos | | -------- | ---------------------------------------------- | -------------------------------------------- | | `GET` | `/api/settings/proxy` | Faigh cumraíocht iomlán an tseachfhreastalaí | | `GET` | `/api/settings/proxy?level=global` | Faigh an seachfhreastalaí domhanda | | `GET` | `/api/settings/proxy?level=provider&id=openai` | Faigh seachfhreastalaí an tsoláthraí | | `GET` | `/api/settings/proxy?resolve=connectionId` | Réitigh an seachfhreastalaí éifeachtach | | `PUT` | `/api/settings/proxy` | Nuashonraigh cumraíocht an tseachfhreastalaí | | `DELETE` | `/api/settings/proxy?level=provider&id=openai` | Bain an seachfhreastalaí ag an leibhéal seo | ### API Chlárlann na Seachfhreastalaithe | Modh | Críochphointe | Cur Síos | | -------- | ------------------------------------------------- | ------------------------------------ | | `GET` | `/api/v1/management/proxies` | Liostaigh gach seachfhreastalaí | | `GET` | `/api/v1/management/proxies?id=uuid` | Faigh seachfhreastalaí de réir ID | | `GET` | `/api/v1/management/proxies?id=uuid&where_used=1` | Faigh sannacháin seachfhreastalaí | | `POST` | `/api/v1/management/proxies` | Cruthaigh seachfhreastalaí | | `PATCH` | `/api/v1/management/proxies` | Nuashonraigh seachfhreastalaí | | `DELETE` | `/api/v1/management/proxies?id=uuid` | Scrios seachfhreastalaí | | `DELETE` | `/api/v1/management/proxies?id=uuid&force=1` | Scrios le héigean | | `POST` | `/api/v1/management/proxies/bulk-assign` | Sann ar an mórchóir | | `GET` | `/api/v1/management/proxies/assignments` | Liostaigh sannacháin | | `GET` | `/api/v1/management/proxies/health` | Staitisticí sláinte seachfhreastalaí | ### API Tollán Chun d’ásc OmniRoute a nochtadh don idirlíon poiblí (Cloudflare/ngrok/Tailscale) in ionad trácht amach a ródú trí sheachfhreastalaí, féach [TUNNELS_GUIDE.md](./TUNNELS_GUIDE.md). Tá REST API na dtollán faoi `/api/tunnels/{cloudflared,ngrok,tailscale}/*` agus tá sé neamhspleách ar an slabhra seachfhreastalaí amach a bhfuil cur síos air thuas. ### API 1proxy | Modh | Críochphointe | Cur Síos | | -------- | -------------------------------------- | ---------------------------------------------- | | `GET` | `/api/settings/oneproxy` | Liostaigh seachfhreastalaithe 1proxy | | `GET` | `/api/settings/oneproxy?action=stats` | Faigh staitisticí + stádas sioncronaithe | | `GET` | `/api/settings/oneproxy?action=status` | Faigh stádas sioncronaithe amháin | | `POST` | `/api/settings/oneproxy` | Spreag sioncronú | | `POST` | `/api/settings/oneproxy/rotate` | Rothlaigh chuig an gcéad seachfhreastalaí eile | | `DELETE` | `/api/settings/oneproxy?id=uuid` | Scrios ceann amháin | | `DELETE` | `/api/settings/oneproxy?clearAll=1` | Glan gach ceann | ### API an tSeachfhreastalaí Réamhtheachtaigh | Modh | Críochphointe | Cur Síos | | -------- | --------------------------------- | ------------------------------------------------------ | | `GET` | `/api/upstream-proxy/:providerId` | Faigh cumraíocht an tseachfhreastalaí réamhtheachtaigh | | `PUT` | `/api/upstream-proxy/:providerId` | Socraigh mód an tseachfhreastalaí réamhtheachtaigh | | `DELETE` | `/api/upstream-proxy/:providerId` | Bain cumraíocht an tseachfhreastalaí réamhtheachtaigh | --- ## Athróga Timpeallachta | Athróg | Réamhshocrú | Cur Síos | | --------------------- | ----------- | -------------------------------------------------------------------------------------------------- | | `ENABLE_SOCKS5_PROXY` | `true` | Cumasaigh tacaíocht do sheachfhreastalaí SOCKS5 (`true` de réir réamhshocraithe in `.env.example`) | --- ## Fabhtcheartú ### "Tá seachfhreastalaí SOCKS5 díchumasaithe" Socraigh `ENABLE_SOCKS5_PROXY=true` i do chomhad `.env` agus atosaigh. ### Earráidí "socket hang up" tríd an seachfhreastalaí Is gnáthrud é seo le seachfhreastalaithe saora a dhúnann naisc dhíomhaoin. Láimhseálann OmniRoute é seo cheana féin trí: - Coinneáil beo a dhíchumasú ar naisc seachfhreastalaí (`keepAliveTimeout: 1`) - Píblíneáil a dhíchumasú (`pipelining: 0`) - Seoltóirí a thaisceadh chun croitheadh láimhe athfhillteach a sheachaint Má mhaireann an fhadhb, bain triail as seachfhreastalaí eile nó úsáid gné rothlaithe 1proxy. ### "unsupported_country_region_territory" le linn OAuth Cinntigh go bhfuil an seachfhreastalaí cumraithe **sula** dtosaíonn tú sreabhadh OAuth. Seolann OmniRoute malartú chomhartha OAuth tríd an seachfhreastalaí cumraithe. Socraigh seachfhreastalaí domhanda nó seachfhreastalaí ar leibhéal an tsoláthraí ar dtús, agus ansin ceangail. ### Níl an seachfhreastalaí á úsáid Seiceáil an t-ord réitigh: 1. Fíoraigh le `GET /api/settings/proxy?resolve=your-connection-id` 2. Seiceáil an bhfuil `status` an tseachfhreastalaí socraithe mar `active` (seachas `inactive`) 3. Cinntigh go bhfuil raon feidhme shannadh an tseachfhreastalaí ag teacht le do nasc ### Teip ar shioncronú 1proxy Seiceáil stádas an tsioncronaithe: ```bash curl "http://localhost:20128/api/settings/oneproxy?action=status" ``` Má tá `consecutiveFailures >= 5`, tá an scoradán ciorcaid tuisleach. Atosaigh an freastalaí chun é a athshocrú, nó fan le hathshocrú de láimh. --- ## Scéimre an Bhunachair Sonraí ### Tábla `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' nó 'oneproxy' quality_score INTEGER, -- 0-100 (1proxy amháin) latency_ms INTEGER, -- milleasoicindí (1proxy amháin) anonymity TEXT, -- trédhearcach/anaithnid/scothleibhéil google_access INTEGER DEFAULT 0, -- an féidir rochtain a fháil ar Google? (1proxy) last_validated TEXT, -- stampa ama ISO (1proxy) country_code TEXT, -- cód tíre 2 litir ISO (1proxy) created_at TEXT NOT NULL, updated_at TEXT NOT NULL ); ``` ### Tábla `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, -- aitheantas soláthraí, aitheantas naisc, nó aitheantas teaglama created_at TEXT NOT NULL, updated_at TEXT NOT NULL, UNIQUE(scope, scope_id) ); ``` --- ## Seiceáil Sláinte Seachfhreastalaí (v3.8.16+) Aimsíonn meicníocht **mear-theipe seachfhreastalaí** OmniRoute (`src/lib/proxyHealth.ts`) seachfhreastalaithe neamhbheo laistigh de <2s trí sheiceáil thapa naisc TCP a dhéanamh, agus ansin **taisceann sí an toradh** chun forchostas in aghaidh an iarratais a sheachaint. ### Conas a Oibríonn Sé ``` Iarratas ──▶ ProxyHealthCache.get(url) │ ├─ Aimsiú sa taisce + úr? ──▶ tabhair an stádas taiscthe ar ais │ └─ As láthair ón taisce / sean? ──▶ ceangail trí TCP le hóstach:port (teorainn ama: FAST_FAIL_TIMEOUT_MS) ──▶ taisc ar feadh HEALTH_CACHE_TTL_MS ──▶ tabhair an toradh ar ais ``` Murach é seo, chuirfeadh seachfhreastalaí neamhbheo bac ar gach iarratas ar feadh `PROXY_TIMEOUT_MS` iomlán (30s de réir réamhshocraithe) sula dteipfeadh air. ### Athróga Timpeallachta Inchoigeartaithe | Athróg | Réamhshocrú | Cuspóir | | ---------------------------- | ----------- | -------------------------------------------------- | | `PROXY_FAST_FAIL_TIMEOUT_MS` | `2000` | Teorainn ama naisc TCP in aghaidh seiceáil sláinte | | `PROXY_HEALTH_CACHE_TTL_MS` | `30000` | An fad a thaisctear toradh sláinte | **Luachanna molta:** | Cás | Teorainn ama mear-theipe | TTL taisce | Réasúnaíocht | | ------------------------ | ------------------------ | ---------- | ------------------------------------------------------------------------------------------------ | | Geata API ardtréchuir | 1500ms | 60000ms | Teip thapa ionsaitheach, taisce níos faide chun seiceálacha a laghdú | | Nóid gheo-dháilte | 3000ms | 15000ms | Teastaíonn níos mó ama ó líonraí níos moille; taisce níos giorra le haghaidh teipaistrithe thapa | | Forbairt / tástáil | 1000ms | 10000ms | Atriall tapa ar sheachfhreastalaithe áitiúla | | Ceilt / frithbhraiteacht | 2500ms | 45000ms | Seachain tóraíocht thapa a d’fhéadfadh teorainneacha ráta a ghníomhachtú | ### Sláinte Seachfhreastalaí a Iniúchadh ```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}`); } // Cuir iallach ar athsheiceáil seachfhreastalaí ar leith invalidateProxyHealth("http://user:pass@203.0.113.7:8080"); ``` Bíonn an bhratach `stale` socraithe mar `true` nuair a bhíonn iontráil na taisce níos sine ná `HEALTH_CACHE_TTL_MS` agus spreagfaidh an chéad iarratas eile seiceáil úr. ### Réamhshocruithe de Réir Cineál an tSeachfhreastalaí Úsáideann an tseiceáil sláinte réamhshocruithe ciallmhara bunaithe ar scéim an URL: | Scéim | Port réamhshocraithe | | -------------------------- | -------------------- | | `http://` | 8080 | | `https://` | 443 | | `socks5://` / `socks5h://` | 1080 | Bíonn tosaíocht i gcónaí ag poirt shaincheaptha san URL (`http://host:9999`) ar réamhshocrú na scéime. --- ## Anailísíocht & Infheictheacht Seachfhreastalaí Rianaíonn OmniRoute úsáid gach seachfhreastalaí chun cabhrú le hoibreoirí patrúin ródaithe, borrthaí foighne agus teipeanna athfhillteacha a dhiagnóisiú. ### Na Rudaí a Rianaítear I gcás gach iarratais a théann trí sheachfhreastalaí cumraithe, taifeadann OmniRoute: | Méadrach | Cur síos | | ------------ | ------------------------------------------------------------------------------- | | `proxy_url` | URL iomlán an tseachfhreastalaí (agus dintiúir fíordheimhnithe folaithe) | | `provider` | Aitheantas an tsoláthraí réamhtheachtach (openai, anthropic, etc.) | | `latency_ms` | Am iomlán an turais fhillte, croitheadh láimhe an tseachfhreastalaí san áireamh | | `connect_ms` | Am naisc TCP amháin | | `status` | Cód stádais HTTP ón tseirbhís réamhtheachtach | | `error` | Aicme earráide má theip ar an iarratas | | `timestamp` | ISO 8601 UTC | ### Rochtain ar na Sonraí ```bash # Teagmhais seachfhreastalaí le déanaí curl -H "Authorization: Bearer $OMNIROUTE_KEY" \ "http://localhost:20128/api/usage/proxy-logs?limit=100" ``` Is é `/api/usage/proxy-logs` an fíorchríochphointe (féach `src/app/api/usage/proxy-logs/route.ts`). Tacaíonn an críochphointe seo leis na nithe seo a leanas: - `GET /api/usage/proxy-logs` — aisghabh logaí seachfhreastalaí - `DELETE /api/usage/proxy-logs` — glan gach loga seachfhreastalaí Más gá, is féidir staitisticí comhiomlánaithe a fhiosrú go díreach ón tábla `proxy_logs` trí SQL. D’fhéadfadh an comhéadan úsáideora painéil amhairc chomhiomlánaithe a thairiscint. ### Patrúin Choitianta **Braith seachfhreastalaí luaineach** (malartaíonn sé idir rath agus teip): ```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; ``` **Aimsigh seachfhreastalaithe malla** (foighne 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; ``` --- ## Crann Cinntí don Straitéis Rothlaithe Nuair a shanntar níos mó ná seachfhreastalaí amháin do raon feidhme, úsáideann OmniRoute **straitéis rothlaithe** chun an ceann atá le húsáid do gach iarratas a roghnú. Cumraítear an straitéis ar leibhéal an raoin feidhme (domhanda, de réir soláthraí, de réir cuntais, de réir teaglaim). ### Straitéisí atá ar Fáil | Straitéis | Cathain is ceart í a úsáid | Comhréiteach | | ----------------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | | `quality` (réamhshocrú) | Táirgeadh le seachfhreastalaithe de cháilíocht mheasctha | Tugann sé tús áite do sheachfhreastalaithe ardrátáilte; d’fhéadfadh sé cinn ísealrátáilte a fhágáil gan trácht | | `random` | Dáileadh ualaigh, príobháideachas | Dáileadh cothrom; déanann sé neamhaird de chomharthaí cáilíochta | | `sequential` | Dífhabhtú, tástáil chinntitheach | Rothlaíonn sé trí na seachfhreastalaithe in ord; is furasta é a thuiscint | ### Crann Cinntí ``` An bhfuil scóir cháilíochta agat do do sheachfhreastalaithe? │ ┌───────────┴───────────┐ │ │ TÁ NÍL │ │ An bhfuil na │ seachfhreastalaithe uile │ mórán mar a chéile │ ó thaobh cáilíochta de? │ │ │ ┌────┴────┐ │ │ │ │ TÁ NÍL Úsáid │ │ `random` │ │ (cruthaíonn dáileadh │ │ cothrom sonraí │ │ cáilíochta le himeacht ama) │ │ │ Úsáid `quality` │ (is fearr do cháilíocht │ mheasctha) │ Úsáid `random` (dáil an t-ualach go cothrom) ``` ## Eisiamh Uathoibríoch Teipeanna do do Sheachfhreastalaithe Féin Díghrádaíonn linn mhargadh 1proxy seachfhreastalaithe ar theip orthu go huathoibríoch cheana féin (féach [Scóir Cháilíochta Seachfhreastalaí](#proxy-quality-scores)). I gcás seachfhreastalaithe a chuir **tusa** leis an gclárlann, soláthraíonn an sceidealóir sláinte cúlra (`src/lib/proxyHealth/scheduler.ts`) an t-iompar céanna chun “ball marbh a eisiamh ón slabhra go huathoibríoch”, gan aon rud a scriosadh: ```bash # .env — díchumasaigh seachfhreastalaí go bog tar éis 3 thóireadóir teipthe as a chéile, agus athchumasaigh é # go huathoibríoch a luaithe a thosaíonn sé ag freagairt do thóireadóirí arís. PROXY_AUTO_DISABLE=true PROXY_AUTO_REMOVE_AFTER=3 ``` Seo mar a oibríonn sé laistigh de shlabhra ilseachfhreastalaí: 1. Déanann an sceidealóir tóireadóir ar gach seachfhreastalaí cláraithe gach `PROXY_HEALTH_INTERVAL_MS` (10 nóiméad de réir réamhshocraithe; 1 nóiméad ar a laghad). 2. Tar éis `PROXY_AUTO_REMOVE_AFTER` teip **dhochloíte** as a chéile (fíortheip naisc — ní áirítear teorainn ama ná freagra 5xx ó sprioc an tóireadóra féin riamh, féach [Seiceáil Sláinte Seachfhreastalaí](#proxy-health-checking-v3816)), socraítear `status` an tseachfhreastalaí mar `dead`. 3. Tá `dead` ar cheann de na stádais a eisiann an scagaire stádais bheo a úsáideann réiteach linne/uainíochta, mar sin stopann uainíocht scóipe (babhtaí sealaíochta / randamach / greamaitheach / aga folaigh — féach [Crann Cinnteoireachta na Straitéise Uainíochta](#rotation-strategy-decision-tree)) láithreach den seachfhreastalaí sin a thabhairt d’iarratais nua. Ní dhéantar difear d’aon seachfhreastalaí eile sa linn, agus ní aistríonn an linn iomlán go nasc díreach go ciúin riamh — féach garda dúnta-ar-theip an [Chórais Seachfhreastalaí 4 Leibhéal](#4-level-proxy-system). 4. Leanann an sceidealóir de thóireadóirí a dhéanamh ar sheachfhreastalaithe `dead` ag an eatramh céanna. Athraíonn an chéad tóireadóir rathúil `status` ar ais go `active` agus téann sé isteach san uainíocht arís — ní gá é a athchur leis de láimh. Tá sé seo **roghnach agus neamh-millteach** d’aon ghnó: de réir réamhshocraithe, ní dhéanann an sceidealóir ach teipeanna a chomhaireamh agus a logáil (féach polasaí C in `decision.ts`), agus ní scriosann `PROXY_AUTO_DISABLE` ró riamh — sin é cuspóir na brataí ar leith, níos ionsaithí, `PROXY_AUTO_REMOVE`. Má shocraítear an dá cheann mar `true`, beidh forlámhas ag `PROXY_AUTO_REMOVE` (níl aon tairbhe le díchumasú bog eatramhach do sheachfhreastalaí atá ar tí a scriosta). Féach tagairt [Chumraíocht na Timpeallachta](../reference/ENVIRONMENT.md) le haghaidh liosta iomlán na n-athróg. --- > 📖 **Doiciméadacht ghaolmhar:** > > - [Treoir Úsáideora](../guides/USER_GUIDE.md) — Socrú agus cumraíocht ghinearálta > - [Tagairt API](../reference/API_REFERENCE.md) — Doiciméadacht iomlán API > - [Cumraíocht na Timpeallachta](../reference/ENVIRONMENT.md) — Gach athróg timpeallachta