mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-08-24 03:47:15 +00:00
bd6a6aba43
* feat(pia): add login-and-add WireGuard outbounds (#2) * fix(pia): keep PIA outbounds identifiable after the editor strips hostname The outbound editor drops piaHostname, so last-segment matching failed for hyphenated servers. Identify rows by the computed tag, re-encrypt stored tokens onto the active key, skip unusable catalog rows, and always release the catalog refresh latch.
175 lines
12 KiB
Plaintext
175 lines
12 KiB
Plaintext
---
|
|
title: خروجیها و مسیریابی
|
|
description: مدیریت ترافیک خروجی در 3x-ui — خروجیهای WARP، NordVPN، WireGuard PIA، اشتراکهای خروجی (مجموعه سرورها)، قواعد مسیریابی و متعادلکنندههای بار.
|
|
icon: Route
|
|
---
|
|
|
|
ورودیها کلاینتها را میپذیرند؛ **خروجیها** تعیین میکنند ترافیک آنها در ادامه به کجا برود.
|
|
3x-ui میتواند ترافیک را از طریق Cloudflare WARP، NordVPN، Private Internet Access
|
|
(خروجی WireGuard) یا مجموعههای خروجی دلخواه
|
|
واردشده از یک اشتراک مسیریابی کند و با قواعد مسیریابی و متعادلکنندهها میان آنها
|
|
انتخاب نماید.
|
|
|
|
## ویرایش خروجیها و مسیریابی
|
|
|
|
خروجیها، قواعد مسیریابی، متعادلکنندهها، DNS و ثبت رویداد همگی در **پیکربندی Xray**
|
|
قرار دارند (همان قالب پیکربندی که زیر Xray Settings ویرایش میکنید). رابط کاربری جداگانهای
|
|
برای هر قاعده وجود ندارد — شما JSON را ویرایش میکنید و پنل Xray را بارگذاری مجدد میکند. پنل
|
|
همچنین یک **آزمون اتصالپذیری خروجی** و یک **آزمون مسیر** ارائه میدهد (از هسته در حال اجرا
|
|
بپرسید که برای یک مقصد مشخص از کدام خروجی استفاده خواهد شد).
|
|
|
|
## ساخت یک خروجی
|
|
|
|
هر خروجی یک شیء JSON است با حداکثر چهار بخش: یک **`tag`** (که قواعد مسیریابی و
|
|
متعادلکنندهها به آن ارجاع میدهند)، یک **`protocol`**، **`settings`** مخصوص پروتکل،
|
|
و — برای پروتکلهای proxy — **`streamSettings`** که باید با انتقال و امنیت ورودی راه دور
|
|
مطابقت داشته باشد. دو خروجی تقریباً همیشه حضور دارند:
|
|
|
|
- **`freedom`** ترافیک را مستقیماً به مقصدش میفرستد — خروجی پیشفرض.
|
|
بهصورت اختیاری میتوانید یک `domainStrategy` (مثلاً `UseIP`) تنظیم کنید تا نحوه تفکیک نامهای میزبان را کنترل کنید.
|
|
- **`blackhole`** ترافیک را دور میاندازد. مقصدهای ناخواسته (تبلیغات، تورنتها) را به اینجا هدایت کنید.
|
|
|
|
```json title="freedom + blackhole"
|
|
{
|
|
"outbounds": [
|
|
{ "tag": "direct", "protocol": "freedom", "settings": {} },
|
|
{ "tag": "block", "protocol": "blackhole", "settings": {} }
|
|
]
|
|
}
|
|
```
|
|
|
|
یک خروجی **proxy** (VLESS، VMess، Trojan، Shadowsocks) به سرور دیگری ارسال میکند —
|
|
که برای زنجیرهکردن یا فرستادن ترافیک منتخب به خارج مفید است. به شکلهای سیمی که 3x-ui
|
|
استفاده میکند توجه کنید: **VLESS شکل تخت است** (`address`/`port`/`id`/`flow`/
|
|
`encryption`)، **VMess از `settings.vnext[]` استفاده میکند**، و **Trojan/Shadowsocks از
|
|
`settings.servers[]` استفاده میکنند**. مقدار `streamSettings` باید با
|
|
[انتقال و امنیت](/docs/config/transports) مقصد همخوانی داشته باشد.
|
|
|
|
هر خروجی را در زیر سرهم کنید و JSON را در **Xray Settings → Outbounds** بچسبانید:
|
|
|
|
<OutboundGenerator />
|
|
|
|
## Cloudflare WARP
|
|
|
|
WARP به سرور شما امکان میدهد ترافیک خود را از طریق شبکه Cloudflare خارج کند. 3x-ui میتواند
|
|
یک حساب WARP برای شما ثبت کند و آن را به یک خروجی WireGuard با برچسب **`warp`** متصل نماید:
|
|
|
|
<Steps>
|
|
|
|
<Step>
|
|
### افزودن یک خروجی با برچسب `warp`
|
|
|
|
یک خروجی WireGuard با برچسب `warp` در پیکربندی Xray خود بسازید.
|
|
</Step>
|
|
|
|
<Step>
|
|
### ثبت WARP
|
|
|
|
از کنترلهای WARP در پنل، یک حساب ثبت کنید. 3x-ui کلیدها، نشانیها، بایتهای رزروشده و نقطه
|
|
انتهایی peer مربوط به خروجی را بهصورت خودکار پر میکند.
|
|
</Step>
|
|
|
|
<Step>
|
|
### (اختیاری) چرخش خودکار IP
|
|
|
|
یک بازه بهروزرسانی WARP (بر حسب **روز**) تنظیم کنید تا IP مربوط به WARP بهصورت دورهای چرخش
|
|
یابد. یک لایسنس رایگان نیز میتواند اعمال شود.
|
|
</Step>
|
|
|
|
</Steps>
|
|
|
|
ترافیک موردنظر خود (برای مثال دامنههای خاص) را با یک قاعده مسیریابی به خروجی `warp` هدایت
|
|
کنید.
|
|
|
|
## NordVPN
|
|
|
|
3x-ui میتواند اعتبارنامههای NordVPN (NordLynx/WireGuard) را از یک توکن دسترسی دریافت کند (یا
|
|
یک کلید خصوصی را مستقیماً بپذیرد) و کشورها/سرورها را فهرست کند تا بتوانید یک خروجی NordVPN
|
|
بسازید.
|
|
|
|
## خروجی WireGuard PIA
|
|
|
|
3x-ui میتواند با نام کاربری و رمز عبور PIA وارد شود، کشورها/منطقهها/سرورها را
|
|
از فهرست امضاشده نشان دهد و یک خروجی WireGuard بسازد. از
|
|
**Xray → خروجیها → بیشتر → PIA** وارد شوید، سرور را انتخاب کنید و خروجی را
|
|
اضافه کنید. میتوان چند سرور افزود (هر hostname یک خروجی). برچسب
|
|
`pia-<region>-<server>` است (مثلاً `pia-us-east-useast1`). افزودن یا **Reset**
|
|
در هر ردیف کلید را با `/addKey` ثبت میکند. یک hostname را نمیتوان دو بار
|
|
افزود. خروج فقط توکن ذخیرهشده را پاک میکند؛ حذف خروجی از فهرست خروجیها.
|
|
Reset یا حذف، peer مربوط به WireGuard را در حساب PIA باطل نمیکند.
|
|
|
|
گذرواژه ذخیره نمیشود. توکن API مربوط به PIA با همان تنظیم
|
|
`NODE_TOKEN_ENCRYPTION` گرهها ذخیره میشود. اگر کلید قدیمی
|
|
`XUI_NODE_TOKEN_KEY` را بدون ورود دوباره به PIA کنار بگذارید، Add/Reset
|
|
تا ورود مجدد شکست میخورد. `allowedIPs` فقط
|
|
`0.0.0.0/0` است.
|
|
|
|
## اشتراکهای خروجی (مجموعه سرورها)
|
|
|
|
یک **اشتراک خروجی** یک اشتراک share-link از راه دور را وارد میکند و سرورهای آن را بهعنوان
|
|
**خروجی** به پیکربندی در حال اجرای Xray تزریق میکند — بدون دستزدن به قالب ذخیرهشده شما. این
|
|
روش توصیهشده برای اشتراک در یک *مجموعه* از سرورهاست.
|
|
|
|
| فیلد | پیشفرض | معنا |
|
|
| ---------------- | ------- | -------------------------------------------------------------- |
|
|
| `url` | — | نشانی اشتراک از راه دور (محافظتشده در برابر SSRF). |
|
|
| `tagPrefix` | auto | پیشوند برچسبهای خروجی تولیدشده (مثلاً `hk-`)؛ خالی = `subN-`. |
|
|
| `updateInterval` | `600` | بازه تازهسازی بر حسب **ثانیه**. |
|
|
| `prepend` | `false` | این خروجیها را پیش از خروجیهای دستی شما قرار میدهد. |
|
|
| `priority` | `0` | ترتیب ادغام (مقدار کمتر، زودتر). |
|
|
|
|
خروجیهای واردشده **برچسبهای پایدار** میگیرند: همان سرور در طول تازهسازیها همان برچسب را
|
|
حفظ میکند، بنابراین انتخابگرهای مسیریابی/متعادلکننده مبتنی بر برچسب دقیق پایدار میمانند —
|
|
در حالی که انتخابگرهای پیشوندی/wildcard (مثلاً `hk-*`) با تغییر مجموعه، بهصورت خودکار سرورهای
|
|
جدید را در بر میگیرند. طرحهای پیوند پشتیبانیشده: `vmess`، `vless`، `trojan`، `ss`،
|
|
`hysteria2` (`hy2`) و `wireguard` (`wg`). پنل اشتراکهای فعال را روی یک زمانسنج تازه میکند و
|
|
هنگام تغییر چیزی، Xray را بارگذاری مجدد میکند.
|
|
|
|
## قواعد مسیریابی
|
|
|
|
**قواعد مسیریابی** تعیین میکنند هر اتصال از کدام خروجی (یا متعادلکننده) استفاده کند. هر
|
|
قاعده یک تطبیقدهنده از نوع `field` است: هر یک از `domain`، `ip`، `port`، `network`،
|
|
`protocol`، `inboundTag`، `sourceIP`، … را تنظیم کنید و آن را به یک **`outboundTag`** یا یک
|
|
**`balancerTag`** اشاره دهید. قواعد **از بالا به پایین — نخستین تطبیق برنده است** ارزیابی میشوند، بنابراین
|
|
قواعد خاص را بالای قواعد عمومی قرار دهید.
|
|
|
|
```json title="route ads to blackhole, private IPs direct"
|
|
{
|
|
"routing": {
|
|
"domainStrategy": "IPIfNonMatch",
|
|
"rules": [
|
|
{ "type": "field", "domain": ["geosite:category-ads-all"], "outboundTag": "block" },
|
|
{ "type": "field", "ip": ["geoip:private"], "outboundTag": "direct" }
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
## متعادلکنندهها
|
|
|
|
یک **متعادلکننده** خروجیها را با یک **انتخابگر** (پیشوندهای برچسب، از جمله مجموعههای
|
|
wildcard حاصل از اشتراکهای خروجی) گروهبندی میکند و ترافیک را با یک **استراتژی** میان آنها
|
|
توزیع یا در صورت خرابی منتقل میکند:
|
|
|
|
| استراتژی | انتخاب میکند… | به مانیتور نیاز دارد |
|
|
| ------------- | ----------------------------------------------- | ------------------------ |
|
|
| `random` | یک عضو تصادفی برای هر اتصال | خیر |
|
|
| `roundRobin` | اعضا بهصورت چرخشی | خیر |
|
|
| `leastPing` | عضو با کمترین تأخیر | **`observatory`** |
|
|
| `leastLoad` | پایدارترین عضو بر اساس بار نمونهبرداریشده | **`burstObservatory`** |
|
|
|
|
از یک قاعده با `balancerTag` به یک متعادلکننده ارجاع دهید. `leastPing` و `leastLoad`
|
|
به یک مانیتور سلامت نیاز دارند که Xray آن را در **سطح بالای** پیکربندی قرار میدهد
|
|
(`observatory` / `burstObservatory`، **نه** درون `routing`). پنل میتواند وضعیت
|
|
متعادلکننده را گزارش کند و برای آزمایش یک متعادلکننده را به یک خروجی مشخص **بازنویسی** کند.
|
|
|
|
بلوک مسیریابی — قواعد، متعادلکنندهها و observatory متناظر — را در اینجا بسازید:
|
|
|
|
<RoutingBuilder />
|
|
|
|
<Callout type="warn">
|
|
خروجیهایی که به سرویسهای خارجی دسترسی مییابند با محافظت SSRF واکشی میشوند — بهصورت
|
|
پیشفرض نشانیهای خصوصی/داخلی مسدود هستند مگر آنکه بهطور صریح آنها را بهازای هر منبع مجاز
|
|
کنید.
|
|
</Callout>
|