Skip to content

Commit

Permalink
feat: added core settings document
Browse files Browse the repository at this point in the history
  • Loading branch information
iamtheted authored Jul 23, 2024
1 parent a3b8e09 commit 521981a
Showing 1 changed file with 268 additions and 0 deletions.
268 changes: 268 additions & 0 deletions marzban/fa/docs/core-settings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,268 @@
---
title: تنظیمات Core
---

# تنظیمات Core

از آن جایی که پنل مرزبان بر پایه هسته `Xray` هست، در این داکیومنت سعی می‌کنیم موارد کاربردی `Xray` را که می‌توانید در قسمت `Core Settings` پنل مورد استفاده قرار بدید را توضیح بدیم تا با بخش‌های کاربردی آن آشنایی داشته باشید.

## DNS

- برای تعیین `DNS` در قسمت `Core Settings` مرزبان کافیه قسمت زیر را در ابتدای آن قرار دهید.

```json{5-10} [xray-config.json]
{
"log": {
"loglevel": "info"
},
"dns": {
"servers": [
"1.1.1.1"
],
"queryStrategy": "UseIPv4"
},
"inbounds": [
```

- در نمونه بالا ما از `DNS` کلودفلر استفاده کردیم، انواع `DNS` های مختلف و کاربرد آن‌ها به شرح زیر است.

| انواع `DNS` | سرویس دهنده | کاربرد |
| ---------------- | ---------------- | ------------------------------------------------ |
| `1.1.1.1` | `Cloudflare` | سرعت، حریم خصوصی، و امنیت |
| `1.1.1.3` | `Cloudflare` | مسدود کردن محتوای بزرگسالان و مناسب برای استفاده خانوادگی |
| `8.8.8.8` | `Google` | قابل اطمینان به علت خدمات جهانی گسترده گوگل |
| `8.8.4.4` | `Google` | پشتیبان `DNS` اول گوگل |
| `9.9.9.9` | `Quad9` | متمرکز بر امنیت و مسدود کردن دسترسی به دامنه‌های مخرب |
| `208.67.222.222` | `OpenDNS` | حفاظت در برابر فیشینگ، و تنظیمات قابل شخصی‌سازی |
| `208.67.222.123` | `OpenDNS` | مسدود کردن محتوای بزرگسالان و مناسب برای استفاده خانوادگی |


## Inbounds

بخش `Inbounds` در هسته `Xray` مشخص می‌کند که سرویس پروکسی چگونه اتصالات ورودی را دریافت کند. هر `Inbound` یک شنونده (listener) را تعریف می‌کند که اتصالات را روی پورت مشخصی دریافت کرده و پروتکل‌ها یا قوانین خاصی را برای مدیریت آن‌ها به کار می‌برد.

اینباندهایی که در `Core Settings` قرار می‌دهیم پروکسی‌های مارو در پنل مرزبان تعیین می‌کنند و کانکشن‌های ورودی ما مربوط به همین بخش است که لیست اینباندهای کاربردی در این داکیومنت [اینباندهای Xray](https://gozargah.github.io/marzban/fa/docs/xray-inbounds) قرار داده شده‌اند.

- در ادامه بخش‌های مختلف یک اینباند را با هم بررسی می‌کنیم.

::: details VLESS TCP REALITY
::: code-group
```json
{
"tag": "VLESS TCP REALITY",
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {},
"security": "reality",
"realitySettings": {
"show": false,
"dest": "google.com:443",
"xver": 0,
"serverNames": [
"example.com",
""
],
"privateKey": "oNDJxLaAiXojgAcdW5gzwuQB_gMYL0DXfRnqswUKvTE",
"publicKey": "oVRY8h7Njgw25j3CNhaJVMUys378tTvecrSRbrB3gyo"
"shortIds": [
"2ebd6e17dec6a5d9"
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
}
}
```
:::

::: tip tag
```json
"tag": "VLESS TCP REALITY"
```
برچسب (Tag) برای شناسایی این اینباند خاص استفاده می‌شود. این برچسب به شما کمک می‌کند تا در پیکربندی‌های پیچیده و در مواقعی که چندین اینباند مختلف دارید، راحت‌تر آنها را شناسایی کنید.
:::

::: tip listen
```json
"listen": "0.0.0.0"
```
آدرس IP که `Xray-Core` باید به آن گوش دهد. `0.0.0.0` به معنای این است که `Xray-Core` به تمامی آدرس‌های IP موجود بر روی سرور گوش می‌دهد.
:::

::: tip port
```json
"port": 443
```
پورت شبکه‌ای که `Xray-Core` باید بر روی آن گوش دهد. پورت `443` به طور معمول برای ترافیک `HTTPS` استفاده می‌شود و در اینجا به عنوان ورودی برای پروتکل `VLESS` تنظیم شده است.
:::

::: tip protocol
```json
"protocol": "vless"
```
پروتکل مورد استفاده برای اینباند در اینجا، پروتکل `vless` است که یکی از پروتکل‌های مدرن و امن برای انتقال داده‌ها است.
:::

::: tip settings
```json
"settings": {
"clients": [],
"decryption": "none"
}
```
این بخش تنظیمات خاص پروتکل `vless` هست.

قسمت `clients` لیستی از کاربران مجاز برای اتصال

قسمت `decryption` روش رمزگشایی
:::

::: tip streamSettings
```json
"streamSettings": {
"network": "tcp",
"tcpSettings": {},
"security": "reality",
"realitySettings": {
"show": false,
"dest": "google.com:443",
"xver": 0,
"serverNames": [
"example.com",
""
],
"privateKey": "oNDJxLaAiXojgAcdW5gzwuQB_gMYL0DXfRnqswUKvTE",
"publicKey": "oVRY8h7Njgw25j3CNhaJVMUys378tTvecrSRbrB3gyo",
"shortIds": [
"2ebd6e17dec6a5d9"
]
}
}

```
تنظیمات مربوط به استریم و پروتکل‌های شبکه

بخش `network` نوع شبکه‌ای که برای انتقال داده‌ها استفاده می‌شود. در اینجا `tcp` انتخاب شده است.

بخش `tcpSettings` تنظیمات خاص `TCP` در اینجا خالی است که به معنای استفاده از تنظیمات پیش‌فرض است.

بخش `security` نوع امنیتی که برای این اتصال استفاده می‌شود که `Reality` به معنای استفاده از تکنولوژی `Reality` برای افزایش امنیت است.

بخش `realitySettings` تنظیمات خاص برای تکنولوژی `Reality` است.

بخش `show` مشخص می‌کند که آیا اطلاعات مربوط به این اتصال باید نمایش داده شود یا خیر `false` به معنای عدم نمایش است.

بخش `dest` مقصد نهایی که برای شبیه‌سازی یا پنهان‌سازی استفاده می‌شود که در اینجا `google.com:443` تنظیم شده است.

بخش `xver` نسخه پروتکل که 0 به معنای نسخه ابتدایی است.

بخش `serverNames` لیستی از نام‌های سرور که باید دامنه مورد نطرتون قرار داده شود

بخش `privateKey` کلید خصوصی برای رمزنگاری و تأمین امنیت که یک کلید طولانی و تصادفی است.

بخش `publicKey` کلید عمومی برای رمزنگاری اطلاعات استفاده می‌شود که این کلید به صورت عمومی در دسترس است و می‌تواند برای رمزنگاری داده‌ها استفاده شود.

بخش `shortIds` شناسه‌های کوتاه برای شناسایی منحصر به فرد که شامل یک شناسه تصادفی است.

در خصوص بخش `publickey` در نظر داشته باشین که بودن آن در اینباند لازم نیست و فقط با گذاشتن `privatekey` مرزبان خودش `publickey` را در پروکسی شما ایجاد خواهد کرد و صرفا برای توضیح بخش‌‌های مختلف این اینباند آن را قرار دادیم.
:::

::: tip sniffing
```json
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
}
```
تنظیمات مربوط به شناسایی ترافیک (sniffing)

بخش `enabled` فعال یا غیرفعال بودن شناسایی ترافیک `true` به معنای فعال بودن است.

بخش `destOverride` پروتکل‌هایی که در شناسایی ترافیک نادیده گرفته می‌شوند شامل `http`، `tls`، `quic`.

در بخش `destOverride` نادیده گرفتن پروتکل‌ها به این معناست که `Xray-Core` به جای تحلیل عمیق و شبیه‌سازی ترافیک این پروتکل‌ها، مستقیماً آن‌ها را پردازش می‌کند. این عمل می‌تواند به بهبود کارایی و سادگی در مدیریت ترافیک کمک کند و در عین حال نیاز به پردازش پیچیده‌تر برای برخی پروتکل‌ها را کاهش دهد تا منبع سیستم کمتر مصرف شود.
:::


## Outbounds

بخش‌های `Outbounds` و `Routing` به‌طور نزدیک به هم متصل هستند تا نحوه مدیریت و هدایت ترافیک را تعریف کنند. بخش `Routing` با استفاده از `Rules` یا همان قوانین، تعیین می‌کند که انواع مختلف ترافیک چگونه باید مدیریت شود، در حالی که بخش `Outbounds` مقصدها یا پروکسی‌های واقعی که ترافیک به آن‌ها هدایت می‌شود را مشخص می‌کند.

این رویکرد یکپارچه به شما امکان مدیریت ترافیک به‌صورت انعطاف‌پذیر و پویا را می‌دهد و کنترل دقیق بر نحوه و محل هدایت ترافیک را فراهم می‌آورد. بخش `Outbounds` مقاصد یا پروکسی‌های موجود را تعریف می‌کند که شامل جزئیات پروتکل و پیکربندی آن‌ها است، هر `Outbound` با یک برچسب منحصر به فرد شناسایی می‌شود.

<br>

::: tip freedom
پروتکل `freedom` یا همان پروتکل آزادی برای دور زدن سانسور یا محدودیت‌های مسیریابی در محیط‌های شبکه خاص طراحی شده است، ابزار مفیدی در Xray-core است که با اجازه دادن به جریان آزاد ترافیک بدون مداخله لایه‌های میانی شبکه به اطمینان از دسترسی بدون محدودیت به اینترنت کمک می‌کند.
:::

```json
{
"protocol": "freedom",
"settings": {},
"tag": "DIRECT"
},
```
<br>

::: tip blackhole
پروتکل `blackhole` در واقع به‌عنوان یک "سیاه‌چاله" برای پکت‌ها عمل می‌کند که به‌طور مؤثر ترافیک را بدون پردازش یا پاسخ حذف می‌کند، که می‌توانید برای مقاصد خاص از آن استفاده کنید.
:::

```json
{
"protocol": "blackhole",
"settings": {},
"tag": "BLOCK"
},
```
<br>

::: tip IPv4
به عنوان مثال با قرار دادن `Outbound` زیر می‌‌توانید استفاده از `IPv4` را در اولیت قرار بدین تا از ارور `403` در پلتفرم‌های مختلف جلوگیری کنید. احتمالا پروتکل `freedom` از قبل در اوتباند شما قرار دارد، در این صورت فقط قسمت `settings` را به آن اضافه کنید.
:::

```json
"outbounds": [
{
"protocol": "freedom",
"settings": {
"domainStrategy": "ForceIPv4"
},
"tag": "direct"
},
```

## Routing & Rules

همان طور که قبلا گفته شد، در هسته `Xray`، بخش `Routing` یا همان مسیریابی و قوانین شامل تنظیمات مختلفی است که تعیین می‌کند چگونه ترافیک ورودی باید مدیریت شود و به کدام مقصد ارسال شود.

- اگر به نمونه زیر دقت کنید، با استفاده از `Routing` دامنه‌های دلخواه را به اوتباند با تگ `BLOCK` فرستادیم که این اوتباند پروتکل `blackhole` داره و در نهایت درخواست‌ها به این سایت‌ها به مقصد نخواهند رسید.

```json
{
"domain": [
"www.speedtest.net",
"fast.com"
],
"outboundTag": "BLOCK",
"type": "field"
},
```

0 comments on commit 521981a

Please sign in to comment.