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