brainstate

dreamboxone/zirgozar · source

Snapshot 0 · 2026-11-04T12:47:28Z · Shell · AGPL-3.0

Content fingerprintd5daed27d75b768ffea153aebd01287ac864e086179937a62aa8e7d922adce92

GitHub description at capture

VPN center on openwrt (Xray/Singbox/Aether/Amneziawg/SSR/Shadowsocks/socks/http/L2TP/Hystreia1,2/Openvpn/Wireguard/SSTP/PPTP/SSH//AnyTLS/Openconnect/tailscale/snell/+(json. openclash, conf, bpf,ovpn)

README at capture

<div dir="rtl">

<p align="center">
  <img alt="Zirgozar" src="package/luci-app-zirgozar/root/www/luci-static/resources/zirgozar/logo.png" width="200">
</p>

<h3 align="center">فیلترشکن سراسری برای روتر OpenWrt</h3>

<p align="center">
  <a href="https://github.com/dreamboxone/zirgozar/releases/latest"><img alt="release" src="https://img.shields.io/github/v/release/dreamboxone/zirgozar?style=for-the-badge&color=0b3d91&label=release&cacheSeconds=300"></a>
  <a href="https://github.com/dreamboxone/zirgozar/releases"><img alt="downloads" src=".github/badges/downloads.svg"></a>
  <img alt="OpenWrt" src="https://img.shields.io/badge/OpenWrt-23.05%20%7C%2024.10%20%7C%2025.12-00B5E2?style=for-the-badge&logo=openwrt&logoColor=white">
  <img alt="Xray" src="https://img.shields.io/badge/core-Xray-7c3aed?style=for-the-badge">
  <a href="LICENSE"><img alt="license" src="https://img.shields.io/badge/license-AGPL--3.0-16a34a?style=for-the-badge"></a>
  <a href="https://t.me/routekernel1"><img alt="Telegram" src="https://img.shields.io/badge/Telegram-routekernel1-26A5E4?style=for-the-badge&logo=telegram&logoColor=white"></a>
</p>

<p align="center">
  <a href="https://github.com/dreamboxone/zirgozar/releases/latest">⬇️ <b>دانلود آخرین نسخه</b></a> ·
  <a href="README.md">🇮🇷 <b>فارسی</b></a> ·
  <a href="README.en.md">🇬🇧 <b>English</b></a> ·
  <a href="README.zh.md"><b>简体中文</b></a> ·
  <a href="README.ru.md"><b>Русский</b></a> ·
  <a href="https://t.me/routekernel1">💬 <b>پشتیبانی در تلگرام</b></a>
</p>

## ✨ ویژگی‌ها

- **چهار زبان رابط:** فارسی، انگلیسی، چینی ساده (简体中文) و روسی (Русский)، با انتخاب زبان از بالای صفحه.

- **هماهنگی با ظاهر LuCI:** پشتیبانی از Argon، Material، Material3 و Aurora همراه با چیدمان موبایل. در زیرگذر «پیروی از تم LuCI» را انتخاب کنید؛ ظاهر مستقل روشن و تیره هم در دسترس است.

- 🌐 **همه دستگاه‌های شبکه** — موبایل، لپ‌تاپ، تلویزیون، کنسول — بدون نصب هیچ برنامه‌ای از فیلترشکن رد می‌شوند
- ⚡ **انتخاب خودکار سریع‌ترین کانفیگ** از بین فهرست، و رفتن سراغ کانفیگ بعدی وقتی یکی قطع شود
- 🔗 **اشتراک‌ها** با زمان‌بندی جداگانه؛ فهرست رایگان پیش‌فرض هر ربع ساعت تازه می‌شود
- **مدیریت نودهای اشتراک:** تب جدا برای هر اشتراک و کانفیگ های دستی، همراه با تب همه کانفیگ ها؛ ویرایش و حذف تکی نودها و کپی لینک بدون افزودن خودکار کانفیگ.
- **تغییر فوری وضعیت اشتراک:** فعال و غیرفعال کردن اشتراک ذخیره شده به ذخیره و اعمال نیاز ندارد.
- 🇮🇷 **عبور مستقیم ترافیک ایران** — سایت‌های ایرانی بدون فیلترشکن و بدون مصرف حجم کانفیگ
  با nftables و Geoview، مقصدهای IPv4 ایران پیش از ورود به هسته مستقیم می‌روند. در حالت dnsmasq، دامنه‌های ایران از DNS مستقیم UDP تنظیم‌شده، مستقل از هسته پاسخ می‌گیرند؛ تا وقتی سرویس فعال است DNS خارجی به مسیر مستقیم برنمی‌گردد. با dnsmasq-full و پشتیبانی nftset، IP پاسخ دامنه‌های ایرانی، حتی با میزبانی خارجی، هم وارد استثنای فایروال می‌شود. این نگاشت‌ها هنگام تعویض هسته حفظ و با توقف سرویس پاک می‌شوند. قوانین شانت و دستگاه سفارشی اولویت خود را دارند. برای تفکیک صرفا داخل هسته، `route_ir_pre` را روی `0` بگذارید.
- 🧭 **قانون شانت**: هر سایت یا سرویس از کانفیگ دلخواه، مستقیم یا مسدود
- ☁️ **وارپ کلودفلر** با warp-plus: اکانت رایگان خودکار، اسکن آدرس سالم، وارپ در وارپ و سایفون پشت وارپ
- 📊 **آمار مصرف** امروز، هفته و ماه
- 🔄 **به‌روزرسانی با یک دکمه**، از خود صفحه برنامه
- 💾 **ذخیره بدون قطع اتصال** — تغییری که به تونل مربوط نیست تونل را دوباره راه‌اندازی نمی‌کند
- 🧩 هسته [Xray](https://github.com/XTLS/Xray-core)

---

## 💾 ۱. قبل از نصب: روتر شما جا دارد؟

| | حداقل | راحت |
|---|---|---|
| **فضای خالی نصب پایه** | حدود ۱۲۰ مگابایت | دست کم ۱۶۰ مگابایت |
| **رم** | ۱۲۸ مگابایت | ۲۵۶ مگابایت به بالا |
| **پردازنده** | هر معماری‌ای که Xray برایش بیلد دارد | دو هسته به بالا |

**بسته‌بندی.** رابط LuCI و خود زیرگذر همیشه در یک بسته اصلی `zirgozar` منتشر می‌شوند و با هم نصب و به‌روزرسانی می‌شوند. بسته `luci-app-zirgozar` فقط برای سازگاری با به‌روزرسان‌های قدیمی است؛ نصب جداگانه رابط لازم نیست.

**فضای نصب.** بسته اصلی اکنون هر دو هسته Xray و sing-box را همراه دارد.
روی روتر مرجع `arm_cortex-a7_neon-vfpv4`، اندازه نصب شده بسته اصلی حدود
۱۰۵ مگابایت و رابط وب کمتر از ۱ مگابایت است. برای نصب پایه حدود **۱۲۰ مگابایت فضای خالی**
در نظر بگیرید؛ **۱۶۰ مگابایت یا بیشتر** برای وابستگی ها و حاشیه نصب مناسب تر است.
وجود Xray در یک بسته دیگر باعث حذف نسخه همراه زیرگذر از بسته نمی شود.
اندازه فایل دانلودی فشرده با فضای نصب شده برابر نیست. این اعداد برای معماری
مرجع هستند و با نسخه هسته ها، معماری، فایل سیستم و وابستگی های موجود تغییر می کنند.

| حالت نصب | فضای تقریبی روی روتر مرجع | فضای پیشنهادی |
|---|---|---|
| برنامه و رابط با Xray و sing-box همراه | حدود ۱۰۶ مگابایت، بدون وابستگی های اضافی | دست کم ۱۶۰ مگابایت فضای خالی پیش از نصب |
| همه هسته ها و ابزارهای فهرست هسته ها، همراه داده کامل مسیریابی | حدود ۴۰۰ مگابایت، بدون کش به روزرسانی و فایل های موقت | دست کم ۱ گیگابایت فضای قابل استفاده |

اندازه حالت کامل با نصب Xray، Xray پترنی ها، sing-box، sing-box-lx، Geoview،
warp-plus، Vwarp، Aether و فایل های همراه آن، Mihomo، shadowsocks-rust،
OpenVPN و HAProxy اندازه گیری شده است. کش فعلی به روزرسانی حدود ۳۸ مگابایت دیگر
مصرف می کند. داده کامل مسیریابی حدود ۲۴ مگابایت و جفت lite حدود ۲ مگابایت است.
این اندازه گیری سقف ثابت نیست: اشتراک ها، تاریخچه مصرف، نسخه های بعدی، کش و
بسته های اختیاری پروتکل ها فضا را بیشتر می کنند. دانلود و باز کردن آرشیو هنگام
نصب و ارتقا هم فضای موقت می خواهد؛ برای نصب کامل حافظه USB یا extroot مناسب است.

برای دیدن فضای آزاد و مصرف فعلی:

```sh
df -h /overlay /tmp
du -sh /usr/libexec/zirgozar /etc/zirgozar /www/luci-static/resources/zirgozar
```

> روتر با فلش اسمی ۳۲ یا ۶۴ مگابایت برای بسته فعلی جا ندارد. حتی فلش اسمی
> ۱۲۸ مگابایت به معنی ۱۲۰ مگابایت فضای خالی نیست؛ فضای آزاد واقعی را بررسی کنید.
> انتقال فقط پوشه دانلود هسته ها به USB جای نصب اولیه دو هسته همراه را آزاد نمی کند؛
> برای نصب روی روتر کم فضا ابتدا extroot یا فضای نصب کافی فراهم کنید.

**رم.** هسته در حال اجرا بین ۴۰ تا ۸۰ مگابایت می‌گیرد. روی روتر ۱۲۸ مگابایتی کار
می‌کند، ولی اگر اشتراک صد کانفیگی دارید، در صفحه **کانفیگ‌ها** گزینه
**بررسی همزمان کانفیگ** را از ۳۰ بیاورید روی ۱۰. آن عدد یعنی چند هندشیک هم‌زمان
زده شود، و روی رم کم همان چیزی است که روتر را تحت فشار می‌گذارد — نه خود تونل.

**پردازنده.** سرعت را رمزنگاری TLS تعیین می‌کند، نه تعداد هسته‌های پردازنده. روی
روتر مرجع — چهار هسته Cortex-A7 با ۷۱۷ مگاهرتز — اندازه گرفته شده: **۱.۶ مگابایت
بر ثانیه** از داخل تونل، و انتخاب کانفیگ از بین ۹۸ کانفیگ **۸.۸ ثانیه**. روی
پردازنده ضعیف‌تر هم همین کار را می‌کند، فقط کندتر.

---

## 📦 ۲. نصب

هر ریلیز هر دو فرمت پکیج را دارد، چون OpenWrt در ۲۵.۱۲ پکیج‌منیجرش را عوض کرد.
بسته‌ای را بردارید که به روتر شما می‌خورد:

| OpenWrt شما | پکیج‌منیجر | فایلی که لازم دارید |
|---|---|---|
| ۲۵.۱۲ و بالاتر | `apk` | `zirgozar-<نسخه>.<معماری>.apk` |
| ۲۴.۱۰ و ۲۳.۰۵ | `opkg` | `zirgozar_<نسخه>_<معماری>.ipk` |

معماری روتر شما در `/etc/openwrt_release` جلوی `DISTRIB_ARCH` نوشته شده.

بسته برای ۲۹ معماری از خانواده‌های ARM، ARM64، MIPS، x86، RISC-V و LoongArch
ساخته می‌شود؛ از جمله `arm_cortex-a7_neon-vfpv4`، `aarch64_cortex-a53`،
`mipsel_24kc` و `x86_64`. بسته اصلی باید دقیقا با معماری روتر مطابقت داشته باشد.

### راه ساده: از خود LuCI

در LuCI بروید به **<bdi dir="ltr">System → Software</bdi>** و **Upload Package…** را بزنید. فایل
`zirgozar` را آپلود و نصب کنید، سپس یک بار
**Ctrl+F5** بزنید تا صفحه جدید ظاهر شود.

### نصب مستقیم از GitHub با SSH

دستور متناسب با نسخه OpenWrt را در SSH روتر اجرا کنید. هر دستور آخرین ریلیز منتشر شده
و معماری روتر را خودکار تشخیص می دهد و فقط بسته اصلی `zirgozar` را دانلود و نصب می کند.
رابط LuCI داخل همان بسته است و نصب جداگانه لازم ندارد. دریافت شماره نسخه به `jsonfilter` موجود در OpenWrt نیاز دارد.

#### OpenWrt ۲۵.۱۲ و جدیدتر: APK

<div dir="ltr">

```sh
(
  set -eu
  . /etc/openwrt_release
  tag="$(wget -qO- https://api.github.com/repos/dreamboxone/zirgozar/releases/latest | jsonfilter -e '@.tag_name')"
  case "$tag" in v[0-9]*) ;; *) echo 'Could not determine the latest release.' >&2; exit 1 ;; esac
  version="${tag#v}"
  base="https://github.com/dreamboxone/zirgozar/releases/download/$tag"
  install_dir="/tmp/zirgozar-install-$version"
  mkdir -p "$install_dir"
  main="zirgozar-$version.$DISTRIB_ARCH.apk"
  wget -O "$install_dir/$main" "$base/$main"
  apk update
  apk add --allow-untrusted --upgrade "$install_dir/$main"
)
```

</div>

#### OpenWrt ۲۴.۱۰ و ۲۳.۰۵: IPK

<div dir="ltr">

```sh
(
  set -eu
  . /etc/openwrt_release
  tag="$(wget -qO- https://api.github.com/repos/dreamboxone/zirgozar/releases/latest | jsonfilter -e '@.tag_name')"
  case "$tag" in v[0-9]*) ;; *) echo 'Could not determine the latest release.' >&2; exit 1 ;; esac
  version="${tag#v}"
  base="https://github.com/dreamboxone/zirgozar/releases/download/$tag"
  install_dir="/tmp/zirgozar-install-$version"
  mkdir -p "$install_dir"
  main="zirgozar_${version}_${DISTRIB_ARCH}.ipk"
  wget -O "$install_dir/$main" "$base/$main"
  opkg update
  opkg install "$install_dir/$main"
)
```

</div>

پس از نصب، صفحه زیرگذر را با **Ctrl+F5** تازه کنید.

### نصب از فایل های داخل `/tmp`

فایل `zirgozar` مناسب معماری روتر را از صفحه ریلیز دانلود کنید.
با [MobaXterm](https://mobaxterm.mobatek.net/download.html) به روتر متصل شوید
و از بخش انتقال فایل، آن را به پوشه `/tmp` روتر منتقل کنید.

برای OpenWrt قدیمی، فایل `.ipk` را به همین روش منتقل کنید.
سپس با SSH وارد روتر شوید و دستور مدیر بسته مناسب را اجرا کنید.
`/tmp` روی RAM است؛ پیش از انتقال فضای `df -h /tmp` را بررسی کنید.
فایل ها پس از راه اندازی دوباره روتر حذف می شوند. نصب همچنان به فضای خالی
کافی روی `/overlay` نیاز دارد و وابستگی های گم شده از اینترنت دریافت می شوند.

پس از انتقال فایل‌ها با MobaXterm به `/tmp`، نصب را در ترمینال روتر انجام دهید.
فقط یک فایل `zirgozar` مناسب روتر در `/tmp` بگذارید. دستور زیر فایل متناسب با معماری روتر را خودکار انتخاب می‌کند:

<div dir="ltr">

```sh
(
  set -eu
  . /etc/openwrt_release
  if command -v apk >/dev/null 2>&1; then
    set -- /tmp/zirgozar-*."$DISTRIB_ARCH".apk
    [ "$#" -eq 1 ] && [ -f "$1" ] || {
      echo 'Keep exactly one matching zirgozar package in /tmp.' >&2; exit 1;
    }
    apk update
    apk add --allow-untrusted --upgrade "$1"
  elif command -v opkg >/dev/null 2>&1; then
    set -- /tmp/zirgozar_*_"$DISTRIB_ARCH".ipk
    [ "$#" -eq 1 ] && [ -f "$1" ] || {
      echo 'Keep exactly one matching zirgozar package in /tmp.' >&2; exit 1;
    }
    opkg update
    opkg install "$1"
  else
    echo 'apk or opkg was not found.' >&2; exit 1
  fi
)
```

</div>

> [!IMPORTANT]
> **موقع نصب، روتر باید اینترنت داشته باشد.** چند چیزی که زیرگذر لازم دارد در ایمیج استاندارد OpenWrt نیست —
> `kmod-nft-tproxy`، `curl`، `ip-full` — و پکیج‌منیجر همان موقع نصب آن‌ها را
> می‌گیرد. پس این کار را روی یک اتصال سالم انجام دهید، **قبل** از اینکه به تونل
> احتیاج پیدا کنید.

**پیش‌نیاز DNS:** بسته اکنون `dnsmasq-full` می‌خواهد. بخش «پیش‌نیازهای روتر» برای نصب‌های فعلی، نسخه معمولی را با حفظ تنظیمات DNS و DHCP جایگزین می‌کند. در apk جایگزینی در یک تراکنش انجام می‌شود؛ در opkg ابتدا بسته‌ها و نسخه بازگشت دانلود می‌شوند و بعد نسخه معمولی حذف می‌شود. اگر نصب جایگزین شکست بخورد، نسخه معمولی بازگردانده می‌شود.

برای نصب تازه با opkg، اگر مدیر بسته به وجود `dnsmasq` معمولی ایراد گرفت، پیش از نصب زیرگذر این جایگزینی را یک بار انجام دهید؛ حذف ساده DNS پیش از دانلود بسته‌ها می‌تواند دانلود را قطع کند:

```sh
(
  set -e
  d=/tmp/zirgozar-dnsmasq
  mkdir -p "$d"
  cp -p /etc/config/dhcp "$d/dhcp.keep"
  opkg update
  opkg --cache "$d" install --download-only dnsmasq-full
  (cd "$d" && opkg download dnsmasq)
  opkg --force-depends remove dnsmasq
  if ! opkg --cache "$d" install dnsmasq-full; then
    opkg install "$d"/dnsmasq_*.ipk
    cp -p "$d/dhcp.keep" /etc/config/dhcp
    /etc/init.d/dnsmasq restart
    exit 1
  fi
  cp -p "$d/dhcp.keep" /etc/config/dhcp
  /etc/init.d/dnsmasq restart
)
```

اگر این مرحله خراب شد یا فایل را دستی نصب کردید، صفحه **به‌روزرسانی** را باز کنید
و بخش **پیش‌نیازهای روتر** را ببینید. آنجا سه سوال از خود
سیستم پرسیده می‌شود — می‌تواند ترافیک را به تونل بفرستد؟ policy routing بلد است؟
HTTPS می‌گیرد؟ — و هرچه کم باشد با یک دکمه نصب می‌شود. هیچ‌وقت به `xray-core`
دست نمی‌زند، پس برنامه‌های دیگر روتر دست‌نخورده می‌مانند.

**نصب پیش‌نیازها و خطای مخزن‌ها.** بررسی این بخش فقط وضعیت را گزارش می‌کند؛ نصب و جایگزینی DNS با اجرای عملیات **نصب** انجام می‌شود. پیش‌نیازها با توجه به کانفیگ‌های ذخیره‌شده انتخاب می‌شوند: L2TP، PPTP، SSTP، IKEv2 و OpenVPN ممکن است به بسته‌ها یا ماژول‌های جداگانه روتر نیاز داشته باشند.

در روترهای APK، اگر فقط بخشی از مخزن‌ها در دسترس نباشند و فهرست‌های سالم دریافت شده باشند، نصب بسته‌های قابل‌دریافت ادامه پیدا می‌کند. فهرست مانده، خطای امضا یا گواهی پذیرفته نمی‌شود؛ مدیر بسته نیز وابستگی‌ها و سازگاری بسته‌ها را بررسی می‌کند. بسته‌ای که واقعا در مخزن موجود نیست، همچنان نصب نمی‌شود و خطایش در گزارش‌ها می‌ماند. این رفتار در نصب OpenVPN، HAProxy برای توزیع بار، ابزار xz برای shadowsocks-rust و آماده‌سازی DNS هنگام به‌روزرسانی برنامه هم اعمال می‌شود.

**خطای مخزن کرنل.** پیام‌هایی مانند `unexpected end of file` یا خطای HTTP به‌تنهایی ناسازگاری فریمور را ثابت نمی‌کنند؛ ابتدا آدرس مخزن و دسترسی به آن را بررسی کنید. ماژول‌های کرنل باید با فریمور و شناسه دقیق کرنل روتر سازگار باشند. اگر سازنده فریمور آن‌ها را ارایه نکند، مخزن همان سازنده یا فریمور سازگار با ماژول‌های موردنیاز لازم است. برای بررسی مشکل:

```sh
cat /etc/openwrt_release
uname -r
tail -n 60 /var/run/zirgozar/deps-install.log
```

> [!TIP]
> بعد از نصب هیچ چیزی خودش اجرا نمی‌شود. تا **کلید اصلی** را روشن نکنید تونل خاموش است.

---

## 🚀 ۳. اولین اتصال

۱. در LuCI بروید به **<bdi dir="ltr">Services → Zirgozar</bdi>**. صفحه اول **تنظیمات پایه** است.
۲. صفحه که باز شد، روتر همان لحظه شروع می‌کند به اندازه‌گیری کانفیگ‌ها؛ کارت
   وضعیت نشان می‌دهد تا کجا رسیده.
۳. در زبانه **اصلی** گزینه **کلید اصلی** را روشن کنید و **ذخیره و اعمال** را
   بزنید.

همین. اگر فهرستی برای انتخاب نیست — اشتراک پیش‌فرض خوانده نمی‌شود و کانفیگی از
خودتان ندارید — بروید به **کانفیگ‌ها**، دکمه **وارد کردن لینک اشتراک** را
بزنید، یکی از کانفیگ‌های خودتان را بگذارید و برگردید.

> [!WARNING]
> **اگر PassWall2 روی همین روتر روشن است، اول خاموشش کنید.** دو پروکسی شفاف سر یک
> بسته دعوا می‌کنند و بازنده اتصال شماست. زیرگذر اگر ببیند PassWall2 دارد ترافیک
را منحرف می‌کند، در کارت وضعیت به شما می‌گوید.

---

## 🧭 ۴. صفحه‌ها، و همه گزینه‌های آن‌ها

زبانه‌های بالای صفحه: **تنظیمات پایه،
کانفیگ‌ها، اشتراک‌ها، تنظیمات دیگر، به‌روزرسانی، مدیریت قوانین، نمای
Geo، سمت سرور، کنترل دسترسی، گزارش‌ها**.

زبان صفحه ها (فارسی، انگلیسی، چینی ساده یا روسی) از فهرست زبان بالای صفحه انتخاب می شود و در
`lang` نگه داشته می‌شود.

هر گزینه یک خط در فایل `/etc/config/zirgozar` هم هست، که یک فایل معمولی UCI
است؛ نام داخل علامت `` ` `` نام آن گزینه در فایل است. هر کاری که صفحه‌ها می‌کنند
با ویرایش فایل هم می‌شود کرد، و برعکس.

توضیح گزینه ها با کلیک روی علامت «؟» کنار عنوان باز می شود و با کلیک بیرون کادر یا کلید Escape بسته می شود.

دو چیز در همه صفحه‌ها یکسان است:

- **تا «ذخیره و اعمال» پایین صفحه را نزنید چیزی عوض نمی‌شود.** دکمه‌هایی که
  فورا کار می‌کنند — به‌روزرسانی دستی، حذف، استفاده و مانند آن‌ها — نتیجه را کنار
  همان دکمه می‌گویند، هیچ‌وقت بالای صفحه.
- **پیام‌ها کنار چیزی می‌آیند که درباره آن هستند.** هشدار قرمز است و تا دکمه بعدی
  می‌ماند؛ بقیه پیام‌ها بعد از چند ثانیه محو می‌شوند.

### ⚙️ ۴.۱ تنظیمات پایه

بالای صفحه، کارت های وضعیت، هسته، بررسی اتصال و مصرف قرار دارند. کارت مصرف آپلود، دانلود و مجموع را برای امروز، هفت روز و سی روز اخیر نشان می دهد؛ دوره انتخاب شده در همان مرورگر ذخیره می شود. نسخه برنامه در بنر و مدت فعالیت روتر زیر فهرست زبان دیده می شود.

کارت های بررسی اتصال:

| کاشی | چه نشان می‌دهد |
|---|---|
| **هسته** | نام هسته، نسخه آن زیر عنوان، و وضعیت در حال اجرا یا متوقف؛ وضعیت با رنگ و سایه نشان داده می شود |
| **اتصال اینستاگرام / ردیت / ایکس** | با زدن هر کدام یک درخواست از همان راهی که ترافیک روتر می‌رود فرستاده می‌شود و زمانش نشان داده می‌شود — زیر یک ثانیه سبز، زیر دو ثانیه نارنجی، بیشتر قرمز، یا *N/A* در صورت شکست بررسی |

کارت **وضعیت**: تونل وصل است یا نه، از کدام کانفیگ استفاده می‌کند،
پروتکلش، تاخیرش، و مسیریابی چطور تنظیم شده. آدرس IP سرور **تار** نشان داده
می‌شود تا در عکس یا فیلم از صفحه دیده نشود؛ با نگه داشتن نشانگر یا لمس، آدرس قابل مشاهده است. کنار آن، پرچم و نام کشوری است که تونل از آن بیرون می‌رود — کشوری که سایت‌ها شما را از آن می‌بینند؛ با هر کانفیگ تازه و هر ربع ساعت یک بار از داخل خود تونل پرسیده می‌شود. تاخیر کانفیگی که دستی انتخاب شده
هم با یک هندشیک به پورتش اندازه گرفته و نشان داده می‌شود. وقتی کانفیگ‌ها در حال
اندازه‌گیری‌اند نوار پیشرفت دیده می‌شود؛ **انتخاب دوباره** انتخاب فعلی را کنار
می‌گذارد و از نو اندازه می‌گیرد. پیامی که روتر لازم دارد شما کاری برایش بکنید اینجا می‌آید، با
یک علامت × برای بستنش. هر بار که تونل از نو روشن می‌شود، پیام قبلی پاک می‌شود؛ اگر مشکل هنوز باشد، همان شروع دوباره می‌گویدش.

فرم پایین پنج زبانه دارد: اصلی، قانون شانت، DNS، گزارش و نگهداری.

#### اصلی

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **کلید اصلی** | `enabled` | خاموش | روشن یا خاموش کردن تونل. برای اعمال «ذخیره و اعمال» را بزنید؛ بعد از راه‌اندازی دوباره روتر هم همین‌طور می‌ماند |
| **هسته فعال** | `core_engine` | خودکار | *خودکار* (مقدار `xray`): Xray، و برای کانفیگی که Xray نمی‌شناسد (AmneziaWG، hysteria2، tuic) sing-box به‌تنهایی؛ کانفیگ OpenVPN همیشه با خود OpenVPN اجرا می‌شود؛ یا `sing-box` یا `sing-box-lx` برای همه کانفیگ‌ها. همان پیکربندی به sing-box داده می‌شود، ترجمه‌شده: همان ورودی‌ها، قوانین، DNS و جداسازی ایران؛ نودهای hysteria2 و tuic مستقیم وصل می‌شوند و برنامه کمکی لازم نیست. منتقل نمی‌شوند: mux، noise، FakeDNS، mKCP و ورودی آدرس‌های مسموم؛ آمار مصرف با نمونه‌برداری شمرده می‌شود و کمی کمتر درمی‌آید. sing-box رسمی xhttp ندارد؛ [sing-box-lx](https://github.com/Leadaxe/sing-box-lx) دارد و از همین صفحه، در فهرست «هسته‌ها»، با یک دکمه نصب می‌شود (مسیرش «مسیر Sing-Box-LX» است). اگر sing-box انتخاب‌شده نباشد یا نتواند تونل را اجرا کند، Xray کار را می‌گیرد و صفحه می‌گوید |
| **انتخاب کانفیگ** | `node` | خودکار (سریع‌ترین) | خودکار، کانفیگ‌ها را اندازه می‌گیرد و سریع‌ترین را استفاده می‌کند. کانفیگی که اینجا انتخاب شود - دستی یا از اشتراک - همان‌طور استفاده می‌شود و اندازه گرفته نمی‌شود. کانفیگ اشتراک با مشخصاتش نگه داشته می‌شود و هر بار که فهرست دوباره خوانده شود دوباره پیدا می‌شود: همان کانفیگ؛ بعد پروتکل و آدرس و پورت؛ آدرس و پورت؛ آدرس؛ نام. اگر هیچ‌کدام نماند، اولین کانفیگ آن اشتراک انتخاب و در گزارش نوشته می‌شود |
| **پیش‌پروکسی** | `preproxy_enabled` | خاموش | هر کانفیگی که تونل انتخاب کند، اول از داخل یکی از کانفیگ‌های شما وصل می‌شود. برای کانفیگ‌هایی که از اینجا مستقیم در دسترس نیستند، یا برای پنهان کردن اینکه از کدام کانفیگ‌ها استفاده می‌شود. وقتی روشن است هندشیک مرحله اول انجام نمی‌شود، چون به هیچ کانفیگی مستقیم وصل نمی‌شویم |
| **کانفیگ پیش‌پروکسی** | `preproxy_node` | — | کانفیگی که اول وصل می‌شود. فقط کانفیگ‌های دستی صفحه فهرست کانفیگ‌ها |
| **پروکسی خود روتر** | `localhost_proxy` | روشن | ترافیک خود روتر هم از تونل می‌رود — دانلودهایش، ساعتش، مدیر پکیجش، و در نتیجه داده‌های مسیریابی و هسته‌ها از گیت‌هاب. وقتی کانفیگی در حال اندازه‌گیری است یا اشتراکی خوانده می‌شود مستقیم می‌رود، تا روتر همیشه بتواند تونل خودش را ترمیم کند. به‌طور پیش‌فرض روشن است |
| **پروکسی دستگاه‌های شبکه** | `client_proxy` | روشن | دستگاه‌های شبکه LAN از تونل می‌روند. اگر خاموش شود نمی‌روند، ولی دستگاه‌هایی که در کنترل دسترسی آمده‌اند همچنان می‌روند |
| **کلید قطع اضطراری (Kill switch)** | `kill_switch` | خاموش | خاموش: هر وقت تونل ترافیک را عبور نمی‌دهد — متوقف، ناموفق، در حال راه‌اندازی دوباره، یا بعد از ری‌استارت هنوز بالا نیامده — شبکه مستقیم و بدون تونل کار می‌کند («قطع تونل بهتر از قطع اینترنت»). روشن: یک قانون دایمی جدا از تونل (جدول `zirgozar_ks` در nftables، یا زنجیره‌ی `ZGZ_KS` در iptables) ترافیک دستگاه‌های شبکه را به بیرون از اپلینک می‌بندد و با توقف یا خرابی تونل برداشته نمی‌شود؛ سرویس جداگانه‌ای هم پیش از بالا آمدن شبکه آن را می‌گذارد، پس فاصله‌ی ری‌استارت و بوت را هم می‌پوشاند. دستگاه‌ها فقط به شبکه‌ی محلی می‌رسند، به‌جز: آدرس‌های «مستقیم» صفحه‌ی قوانین ترافیک، دستگاه‌های «بدون تونل» در کنترل دسترسی، پورت‌هایی که در تنظیمات هدایت مستقیم‌اند، پاسخ به اتصال‌هایی که از بیرون آمده‌اند، و — اگر «تفکیک ایران» روشن باشد — مقصدهای ایرانی (فهرستشان با Geoview از `geoip.dat` بیرون کشیده می‌شود؛ بدون آن، مقصدهای ایرانی هم بسته می‌مانند). پینگ هم که تونل حمل نمی‌کند بسته است. نتیجه: بدون تونل اینترنت خارجی ندارید، ولی هیچ‌وقت بدون اطلاع خودتان مستقیم بیرون نمی‌روید. برای برگشت به اینترنت مستقیم این گزینه را خاموش و ذخیره کنید. DNS روتر مثل قبل رفتار می‌کند: با توقف تونل به DNS اپراتور برمی‌گردد |
| **پورت نود Socks** | `node_socks_port` | 1070 | یک سرور SOCKS روی روتر که از همان راه تونل بیرون می‌رود. خالی یعنی هیچ |
| **نود SOCKS محلی روتر** | `node_socks_bind_local` | روشن | آن سرور SOCKS فقط به خود روتر جواب می‌دهد |
| **کلید اصلی SOCKS** | `socks_enabled` | خاموش | پورت‌های SOCKS بیشتر، هر کدام از داخل کانفیگ خودش — جدول **تنظیمات SOCKS** زیر آن |
| **بازگشت به حالت پیش‌فرض** | `factory_reset` | خاموش | تیک بزنید و ذخیره کنید: تونل خاموش می‌شود، همه کانفیگ‌ها و اشتراک‌ها پاک می‌شوند و همه تنظیمات به حالت زمان نصب برمی‌گردند (نسخه دست‌نخورده آن‌ها در `/usr/share/zirgozar` است). داده‌های مسیریابی، هسته‌های دانلودشده و تاریخچه مصرف حفظ می‌شوند. موقع تیک زدن تایید خواسته می‌شود و برگشت‌پذیر نیست |

**تنظیمات SOCKS** (هر ردیف یک بخش `config socks`):

| ستون | در فایل | کار آن |
|---|---|---|
| **فعال** | `enabled` | روشن یا خاموش بودن این پورت |
| **کانفیگ SOCKS** | `node` | کانفیگی که این پورت از آن بیرون می‌رود؛ خالی یعنی همان کانفیگی که تونل استفاده می‌کند |
| **پورت SOCKS** | `port` | شماره پورت. ردیف تازه، پورت آزاد بعدی از 1090 را پیشنهاد می‌کند |

#### قانون شانت

مسیریابی با قانون. هم خود قانون‌ها — هر کدام درباره کدام ترافیک است — و
هم اینکه هر کدام کجا برود، همین‌جا در یک جدول هستند.

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **استراتژی دامنه** | `domainStrategy` | خودکار | *AsIs*: فقط نام دامنه برای مسیریابی استفاده می‌شود. *IPIfNonMatch*: اگر هیچ قانونی با نام جور نشود، نام به آدرس تبدیل می‌شود و قانون‌ها دوباره امتحان می‌شوند. *IPOnDemand*: به محض رسیدن به یک قانون آدرسی، نام به آدرس تبدیل می‌شود. خودکار: اگر قانونی یا جداسازی ایران آدرس داشته باشد IPIfNonMatch، وگرنه AsIs |
| **روش تطبیق دامنه** | `domainMatcher` | hybrid | موتور تطبیق Xray: *hybrid* سریع‌تر است، *linear* حافظه کمتری می‌گیرد |
| **کلید اصلی FakeDNS** | `shunt_fakedns` | خاموش | اجازه می‌دهد قانون‌های جدول پایین از FakeDNS استفاده کنند: برای دامنه‌هایشان آدرس ساختگی برگردانده می‌شود و کانفیگ آدرس واقعی را در سمت سرور پیدا می‌کند — برای سرویس‌های پخش ویدیو که با DNS باز می‌شوند، یا برای صرفه‌جویی در یک درخواست. خود روتر فقط وقتی «پروکسی خود روتر» روشن باشد می‌تواند این دامنه‌ها را باز کند |
| **گروه قانون شانت** | `shunt_group` | پیش‌فرض | فقط قانون‌های این گروه استفاده می‌شوند. برای نمایش آن‌ها در جدول، ذخیره و اعمال کنید |
| **پیش‌فرض** | `default_node` | کانفیگی که تونل استفاده می‌کند | ترافیکی که با هیچ قانونی جور نشود به اینجا می‌رود |
| **پیش‌فرض FakeDNS** | `default_fakedns` | خاموش | برای همه ترافیک تونل آدرس ساختگی برگردانده می‌شود — همان FakeDNS زبانه DNS، و مثل آن فقط با «مستقیم داخل تونل» |
| **پیش‌پراکسی پیش‌فرض** | `default_preproxy` | هیچ | وقتی ردیف پیش‌فرض به یک کانفیگ دستی می‌رود، آن کانفیگ اول از داخل این یکی وصل می‌شود |

جدول، برای هر قانون گروه انتخاب‌شده یک ردیف دارد (هر ردیف یک بخش
`config shunt_rules`). **افزودن** قانون تازه می‌سازد، **ویرایش** جزییاتش را باز می‌کند،
**حذف** پاکش می‌کند، و با دستگیره آبی می‌شود ترتیبشان را عوض کرد — قانون‌ها به همین
ترتیب اجرا می‌شوند. ستون‌های جدول:

| ستون | در فایل | کار آن |
|---|---|---|
| **قانون** | `remarks` | نام قانون |
| **نام کانفیگ** | `node` | *خاموش (استفاده نشود)*: قانون نادیده گرفته می‌شود. *مثل ردیف پیش‌فرض*: هر جا پیش‌فرض برود. *کانفیگی که تونل استفاده می‌کند*، *اتصال مستقیم*، *مسدود*، یا یکی از کانفیگ‌های شما |
| **FakeDNS** | `fakedns` | برای دامنه‌های این قانون، وقتی کلید اصلی بالا روشن است، آدرس ساختگی برگردانده می‌شود. برای قانونی که مستقیم یا مسدود است کاری نمی‌کند |
| **پیش‌پروکسی** | `preproxy` | وقتی قانون به یکی از کانفیگ‌های شما می‌رود، آن کانفیگ اول از داخل این یکی وصل می‌شود. فقط یک لایه: کانفیگی که زنجیره خودش را دارد همان را نگه می‌دارد |

در پنجره ویرایش هر قانون، با این فیلدها:

| فیلد | در فایل | کار آن |
|---|---|---|
| **گروه قانون شانت** | `group` | گروه آن؛ این زبانه هر بار یک گروه را استفاده می‌کند. قانون تازه در گروه انتخاب‌شده ساخته می‌شود |
| **پروتکل** | `protocol` | http، tls، quic، bittorrent — فقط همین‌ها را شامل می‌شود |
| **ورودی** | `inbound` | پروکسی شفاف، Socks، یا — اگر هیچ‌کدام انتخاب نشود — هر دو |
| **شبکه** | `network` | TCP، UDP یا هر دو |
| **مبدا** | `source` | آدرس یک دستگاه، یک محدوده، یا `geoip:private` |
| **پورت** | `port` | مثل `443`، `80,443` یا `1000-2000` |
| **دامنه** | `domain_list` | در هر خط یکی: `domain:` یک نام و همه زیردامنه‌هایش، `full:` فقط همان نام، `regexp:`، `keyword:` یا یک کلمه ساده یعنی هر جای نام، `geosite:` یک فهرست از داده‌های مسیریابی. خطی که با `#` شروع شود توضیح است |
| **IP** | `ip_list` | در هر خط یکی: یک آدرس، یک محدوده، یا `geoip:` و کد یک کشور |

قانون‌های شانت روی ترافیک خود تونل اعمال می‌شوند — پروکسی شفاف و پورت‌های SOCKS
بدون کانفیگ جداگانه. بعد از مسدودسازی‌ها، شبکه محلی و دامنه‌های مستقیم، و قبل از
جداسازی ایران اعمال می‌شوند، تا قانونی که درباره یک سایت ایرانی است زیر جداسازی
ایران نماند. دستگاهی که در کنترل دسترسی کانفیگ جداگانه دارد همان را نگه می‌دارد.

#### DNS

زبانه DNS: یک **DNS مستقیم** برای هر چیزی که بدون تونل بیرون می‌رود، و
یک **DNS راه دور** برای هر چیزی که از تونل می‌رود.

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **روش پیدا کردن دامنه‌ها** | `dns_mode` | از راه dnsmasq | یک resolver اختصاصی با DNS تونل اجرا می‌شود؛ DNSهای بالادستی قبلی روتر وارد آن نمی‌شوند. نام‌های محلی و DHCP حفظ می‌شوند و تغییر نام‌های DHCP تا پنج ثانیه بعد دیده می‌شود. حالت مستقیم نام‌های محلی را پشتیبانی نمی‌کند؛ حالت خاموش DNS را تغییر نمی‌دهد |
| **پروتکل DNS مستقیم** | `direct_dns_protocol` | خودکار | DNS مستقیم به هر چیزی که بدون تونل بیرون می‌رود جواب می‌دهد، و به نام خود کانفیگ‌ها — که هیچ‌وقت نمی‌شود از داخل همان تونلی پیدایشان کرد که راه ورود به آن هستند. خودکار از DNS بالادستی خود روتر استفاده می‌کند، و اگر نبود از DNS اینترنت‌دهنده |
| **DNS مستقیم** | `direct_dns` | — | با UDP یا TCP در بالا: آدرس DNS، به شکل `1.2.3.4` یا `1.2.3.4:53`. DNSهای عمومی ایرانی پیشنهاد می‌شوند؛ انتخاب یکی یعنی آن DNS همه نام‌هایی را که مستقیم می‌روند می‌بیند |
| **روش درخواست DNS مستقیم** | `direct_dns_query_strategy` | UseIPv4 | از DNS مستقیم آدرس کدام نسخه IP خواسته شود |
| **پروتکل DNS راه دور** | `remote_dns_protocol` | TCP | TCP، UDP، DoH یا DoT؛ همچنین DoQ و DoH3 با هسته sing-box. پیش‌فرض TCP است، چون خیلی از کانفیگ‌های رایگان اصلا UDP را جابه‌جا نمی‌کنند و درخواستی که با UDP از داخل آن‌ها فرستاده شود گم می‌شود |
| **DNS راه دور** | `remote_dns` | 8.8.8.8 | آدرس DNS برای TCP یا UDP. کلادفلر، گوگل، Quad9 و OpenDNS پیشنهاد می‌شوند . پیش‌فرض گوگل است نه کلادفلر: کانفیگ‌هایی که روی Cloudflare Workers ساخته شده‌اند (مثل فهرست patterniha) به 1.1.1.1 نمی‌رسند و از داخل آن‌ها هیچ نامی پیدا نمی‌شد. روتری که از قبل روی 1.1.1.1 پیش‌فرض بود یک بار به 8.8.8.8 منتقل می‌شود |
| **DoH برای DNS راه دور** | `remote_dns_doh` | `https://8.8.8.8/dns-query` | برای DoH: یک آدرس، مثل آدرسی که سرویس DNS (مثلا NextDNS یا uBlockDNS) می‌دهد. اگر آدرس نام دارد، یک IP اولیه معتبر بعد از ویرگول الزامی است؛ بدون آن پیکربندی با خطا متوقف می‌شود و DNS مستقیم برای پیدا کردن سرور استفاده نمی‌شود |
| **سرور DoT / DoQ** | `remote_dns_tls`، `remote_dns_tls_port`، `remote_dns_tls_server_name` | 1.1.1.1، 853، cloudflare-dns.com | IP، پورت و نام گواهی؛ بررسی TLS همیشه فعال است. DoT در هر دو هسته و DoQ در sing-box پشتیبانی می‌شود |
| **سیاست DNS رمزگذاری‌شده دستگاه‌ها** | `encrypted_dns_policy` | proxy | `proxy`: پورت ۸۵۳ و DoH شناخته‌شده از تونل؛ `strict`: حفاظت از ۵۳۵۳ و پورت‌های افزوده در `dns_guard_ports`، بستن مسیر خارج از رهگیری و حفظ انتخاب تفکیک ایران برای سایت‌های عادی؛ `rules`: پیروی از قواعد ترافیک. با قطع اضطراری روشن، محافظ سخت‌گیرانه هنگام توقف سرویس باقی می‌ماند. DoH ناشناخته و پورت‌های ثبت‌نشده تضمین نمی‌شوند |
| **EDNS Client Subnet برای DNS راه دور** | `remote_dns_client_ip` | — | به سرور DNS می‌گوید دستگاه کجاست، تا CDN نزدیک‌ترین سرورش را جواب بدهد. آدرس خصوصی نمی‌شود، و سرور باید RFC 7871 را پشتیبانی کند |
| **مسیر DNS راه دور** | `remote_dns_detour` | از تونل | DNS راه دور از تونل پرسیده شود یا مستقیم |
| **FakeDNS** | `remote_fakedns` | خاموش | با آدرس ساختگی جواب می‌دهد و پیدا کردن آدرس واقعی را به آن سر تونل می‌سپارد، که برای هر سایت تازه یک درخواست صرفه‌جویی می‌کند. فقط با «مستقیم داخل تونل»: وقتی dnsmasq جلوی کار است، جواب درخواست‌های خود روتر هم ساختگی می‌شد |
| **روش درخواست DNS راه دور** | `remote_dns_query_strategy` | UseIPv4 | از DNS راه دور آدرس کدام نسخه IP خواسته شود |
| **جایگزینی دامنه** | `dns_hosts` | — | در هر خط یکی: یک نام، یک فاصله، و آدرسی که باید برگرداند |
| **تغییر مسیر DNS** | `dns_hijack` | روشن | بعضی دستگاه‌ها روتر را نادیده می‌گیرند و خودشان از 8.8.8.8 یا 1.1.1.1 می‌پرسند. آن پرسش‌ها بدون تونل بیرون می‌روند، پس جوابش هر چیزی است که فیلترچی بخواهد، و دستگاه بدون اینکه ظاهرا چیزی خراب باشد به همان وصل می‌شود. این گزینه آن پرسش‌ها را به روتر برمی‌گرداند |

#### گزارش

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **گزارش کانفیگ فعال باشد** | `log_node` | روشن | چیزهایی که خود هسته می‌گوید، که در صفحه گزارش‌ها کنار گزارش خود برنامه نشان داده می‌شود |
| **سطح گزارش** | `loglevel` | warning | debug، info، warning یا error. debug خروجی بسیار زیادی دارد |

زیر آن‌ها **ترافیک عبوری از تونل**: امروز، هفته اخیر و این ماه به شکل دایره — جمع
در وسط، دانلود و آپلود زیر آن — و دو هفته اخیر به شکل ستون، به‌علاوه مقداری که این
ماه مستقیم بیرون رفته. اعداد هر پنج دقیقه از هسته خوانده و در حافظه جمع می‌شوند؛
اینکه هر چند وقت روی فلش نوشته شوند در تنظیمات دیگر تعیین می‌شود.

#### نگهداری

دکمه **پشتیبان** تنظیمات کلاینت و سرور، کانفیگ ها، اشتراک ها، قوانین شانت،
اکانت های WARP و Aether و داده مسیریابی را در فایل پشتیبان قرار می دهد.
خود هسته ها و تاریخچه مصرف در این فایل نیستند. **بازگردانی** فایل را باز می گرداند؛
تفاوت نسخه ها می تواند باعث ناسازگاری تنظیمات شود.

### 📋 ۴.۲ کانفیگ‌ها

Node List: از کدام کانفیگ‌ها استفاده شود و چطور اندازه‌گیری شوند،
کانفیگ‌هایی که دستی اضافه می‌کنید، و همه کانفیگ‌هایی که روتر دارد.

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **کانفیگ‌های مورد استفاده** | `sources` | فقط کانفیگ‌های دستی | *فقط کانفیگ‌های دستی*، *همه کانفیگ‌ها*، یا *فقط اشتراک‌ها*. این تعیین می‌کند چه کسی اندازه‌گیری شود، نه چه کسی برنده شود: سریع‌ترین استفاده می‌شود، از هر جا که آمده باشد. کانفیگ دستی به فهرست اضافه می‌شود و جای آن را نمی‌گیرد |
| **بررسی خودکار تاخیر** | `auto_detection_time` | TCP Ping | با باز شدن صفحه، هر کانفیگ دستی با این روش اندازه‌گیری می‌شود و نتیجه در ستون خودش می‌آید: *بستن*، *پینگ* یا *TCP Ping* |
| **نمایش آدرس و پورت سرور** | `show_node_info` | خاموش | آدرس و پورت هر کانفیگ را زیر نامش در فهرست پایین صفحه نشان می‌دهد |
| **آدرس تست URL** | `test_url` | `http://www.gstatic.com/generate_204` | آدرسی که یک درخواست واقعی از داخل کانفیگ به آن فرستاده می‌شود — هنگام اندازه‌گیری کانفیگ‌ها و وقتی ستون تست URL زده می‌شود |

**انتخاب کانفیگ** — مخصوص همین برنامه: وقتی کانفیگ در
تنظیمات پایه روی خودکار است، سریع‌ترین کانفیگ چطور پیدا شود (بخش ۵).

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **مرحله اول** | `prefilter` | هندشیک TCP | اینکه کانفیگی ارزش اندازه‌گیری کامل دارد یا نه چطور تعیین شود: هندشیک TCP به پورت واقعی‌اش، پینگ، یا هر دو. پینگ آن‌قدر اشتباه می‌کند که مهم باشد: کانفیگ پشت CDN در هر حالی از لبه جواب می‌دهد، و خیلی از کانفیگ‌های سالم اصلا ICMP را جواب نمی‌دهند |
| **به‌قدر کافی خوب (م‌ثانیه)** | `good_ms` | 1000 | اولین کانفیگی که اندازه‌اش از این کمتر دربیاید همان استفاده می‌شود. عدد کمتر یعنی کانفیگ بهتر و انتظار بیشتر |
| **اندازه‌گیری همزمان کانفیگ** | `batch_size` | 10 | در هر نوبت چند کانفیگ به‌طور کامل اندازه‌گیری شوند |
| **حداکثر تعداد دسته** | `max_batches` | 5 | وقتی هیچ‌کدام به‌قدر کافی سریع نیستند، تا کجای فهرست ادامه داده شود |
| **بررسی همزمان کانفیگ** | `sift_parallel` | 30 | در مرحله اول چند هندشیک هم‌زمان اجرا شود. **روی روتر کم‌رم این عدد را کم کنید** |

**ورود دستی کانفیگ‌ها** — هر ردیف یک بخش `config node`. بالای جدول، این دکمه‌ها:

| دکمه | کار آن |
|---|---|
| **افزودن** | یک کانفیگ تازه در صفحه‌ی خودش، فیلد به فیلد: همه‌ی پروتکل‌ها، از جمله وارپ، وایرگارد و OpenVPN |
| **وارد کردن لینک اشتراک** | لینک‌ها را هر کدام در یک خط بچسبانید؛ هر لینک یک کانفیگ جدا می‌شود، با نامی که خود لینک دارد |
| **افزودن فایل** | یک کانفیگ از لینک یا یک فایل کامل: `.conf` وایرگارد، `.ovpn` اوپن‌وی‌پی‌ان، `.json` ایکس‌ری، `.yaml` یا `.yml` کلش |
| **انتخاب همه / لغو انتخاب همه** | تیک همه ردیف‌ها را می‌زند یا برمی‌دارد |
| **حذف کانفیگ‌های انتخاب‌شده** | کانفیگ‌های تیک‌خورده را حذف می‌کند — هیچ‌وقت کانفیگی را که تونل همین الان از آن استفاده می‌کند |
| **تغییر گروه** | کانفیگ‌های تیک‌خورده را در یک گروه می‌گذارد |
| **حذف همه کانفیگ‌ها** | همه کانفیگ‌های دستی را حذف می‌کند |

هر تنظیمی که به کانفیگ حذف‌شده اشاره می‌کرد — کانفیگ تنظیمات پایه، پیش‌پروکسی، یک
پورت SOCKS، یک قانون کنترل دسترسی، یک قانون شانت — همراه آن پاک می‌شود، به‌جای اینکه
به هیچ اشاره کند.

| ستون / فیلد | در فایل | کار آن |
|---|---|---|
| **نام** | `name` | نامی که شما برایش می‌گذارید. اگر خالی بماند، نام بعد از `#` در خود لینک استفاده می‌شود، حتی اگر فارسی باشد |
| **نوع** | — | لینک از چه نوعی است: vless، vmess، trojan، shadowsocks، socks، hysteria2، tuic، wireguard، warp |
| **نام گروه** | `group` | برای مرتب کردن خودتان؛ خالی یعنی گروه پیش‌فرض |
| **پینگ / TCPing / تست URL** | — | سه سوال متفاوت: رفت و برگشت ICMP تا آدرس (درباره سرور پشت آن چیزی نمی‌گوید)؛ هندشیک به پورتی که تونل استفاده می‌کند؛ یک درخواست کامل از داخل کانفیگ — تنها تستی که ثابت می‌کند کانفیگ کار می‌کند. این درخواست را، مثل سنجش رتبه‌بندی خودکار، هسته فعال می‌برد: اگر در **هسته فعال** sing-box یا sing-box-lx انتخاب شده باشد همان sing-box، تا کانفیگ همان‌طور سنجیده شود که تونل اجرایش می‌کند؛ و Xray هرجا تونل هم به Xray برمی‌گشت - sing-box نصب نیست یا کانفیگ را نمی‌شناسد. هر خانه تا زده نشود «تست» نوشته دارد. `✕` یعنی جوابی نیامد، `—` یعنی این تست روی آن کانفیگ ممکن نیست |
| **فعال** | `enabled` | روشن یا خاموش بودن این کانفیگ |
| **لینک اشتراک‌گذاری** (پنجره ویرایش) | `link` | یک لینک — vless، vmess، trojan، ss، socks، hysteria2، tuic، wireguard — یا چند لینک هر کدام در یک خط، یا کل یک فایل `.conf` وایرگارد. **انتخاب فایل…** محتوای فایل را داخل کادر می‌گذارد؛ چیزی آپلود نمی‌شود |
| **پروکسی زنجیره‌ای** (پنجره ویرایش) | `chain_proxy` | زنجیره: *کانفیگ پیش‌پروکسی* — این کانفیگ از داخل کانفیگ دیگری وصل می‌شود؛ *کانفیگ فرود* — ترافیک از این کانفیگ می‌گذرد و از کانفیگ دیگری بیرون می‌رود |
| **کانفیگ پیش‌پروکسی** | `preproxy_node` | کانفیگی که اول وصل می‌شود |
| **کانفیگ فرود** | `to_node` | کانفیگی که ترافیک در آخر از آن بیرون می‌رود |

کنار **ویرایش** و **حذف** در هر ردیف: **به بالا** آن را بالای فهرست می‌برد،
**استفاده** آن را کانفیگ تنظیمات پایه می‌کند و اگر تونل روشن است دوباره وصل
می‌شود، **کپی** یک نسخه از آن زیرش می‌سازد.

**صفحه ویرایش.** دکمه **ویرایش** هر کانفیگ، صفحه جدای «ویرایش
کانفیگ» را باز می‌کند. لینک‌های vless، vmess، trojan، shadowsocks، socks، http،
hysteria2 و tuic در این صفحه تکه‌تکه نشان داده می‌شوند: پروتکل، آدرس، پورت،
شناسه یا رمز، flow، امنیت (TLS یا REALITY با SNI، alpn، اثر انگشت، کلید عمومی،
Short Id و Spider X؛ `pqv` لینک، کلید ML-DSA-65 که سرور REALITY با آن
بررسی می‌شود، نگه داشته و به Xray داده می‌شود - sing-box چنین بررسی‌ای ندارد و
بدون آن وصل می‌شود)، و روش انتقال (RAW، WebSocket، gRPC، HTTP/2، HTTPUpgrade،
XHTTP با Extra، mKCP با Seed). با ذخیره، لینک از همین فیلدها دوباره ساخته
می‌شود و پارامترهایی که صفحه فیلدی برایشان ندارد دست نمی‌خورند. فایل‌های
وایرگارد و اوپن‌وی‌پی‌ان، یا چند لینک در یک کانفیگ، به شکل همان متن ویرایش
می‌شوند. بالای صفحه، چهار دکمه هست: **از لینک اشتراک‌گذاری**
لینک یا فایل تازه‌ای را جای کانفیگ می‌گذارد (بعد «ذخیره و اعمال» لازم است)،
**ساخت لینک اشتراک‌گذاری** لینکی را که فیلدها الان می‌سازند برای کپی نشان
می‌دهد، **ساخت QR کد** همان لینک را به شکل QR کد نشان می‌دهد (در خود مرورگر،
بدون اینترنت)، و **خروجی فایل کانفیگ** کانفیگ ذخیره‌شده را به شکل یک فایل
کامل کلاینت Xray دانلود می‌کند، با پورت SOCKS ۱۰۸۰ و HTTP ۱۰۸۱ روی
127.0.0.1. چیزهایی که در لینک جایی ندارند، پایین همین صفحه هستند و فقط روی
کانفیگ‌هایی که Xray می‌برد اثر دارند:

| فیلد | در فایل | کار آن |
|---|---|---|
| **اثر انگشت زنجیره TLS ‏(SHA256)** | `tls_pin` | فقط وقتی وصل می‌شود که اثر انگشت زنجیره گواهی سرور یکی باشد |
| **نام گواهی TLS ‏(CertName)** | `cert_name` | نام گواهی سرور با این سنجیده می‌شود |
| **گواهی TLS ‏(PEM)** | `tls_pem` | زنجیره سرور به‌جای گواهی‌های معمول با این گواهی سنجیده می‌شود |
| **ECH** | `ech` | پیکربندی ECH، یا دامنه و DNS منتشرکننده‌اش. لینکی که پارامتر `ech` دارد (مثل لینک‌های PattN) همان را با خودش می‌آورد؛ تنظیم این صفحه بر آن مقدم است |
| **مجموعه رمزها** | `cipher_suites` | فهرست cipher suiteهای مجاز، جدا با دونقطه. لینک‌هایی که [PattN](https://github.com/patterniha/PattN) می‌سازد این را در پارامتر `cs` دارند و از همان خوانده می‌شود؛ همراه اثر انگشت `unsafe`، شکل اولین بسته TLS را عوض می‌کند |
| **User-Agent** | `user_agent` | برای WebSocket، HTTPUpgrade، XHTTP و gRPC |
| **FinalMask** | `finalmask` | finalmask مخصوص این کانفیگ به شکل JSON؛ fragment و noise برگه Xray همچنان اضافه می‌شوند، مگر این‌جا خودش داشته باشد. لینکی که پارامتر `fm` دارد (مثل فرگمنت ویژه لینک‌های PattN) همان را با خودش می‌آورد |
| **TCP Fast Open** / **tcpMptcp** | `tcp_fast_open` / `tcp_mptcp` | سرور هم باید پشتیبانی کند |
| **DNS برای دامنه نود** | `dns_resolver` | اگر آدرس کانفیگ دامنه باشد، با این DNS (مثل `udp://1.1.1.1` یا `https://1.1.1.1/dns-query`) و مستقیم پیدا می‌شود |
| **Domain Strategy** | `domain_strategy` | پیش از اتصال، دامنه به IP تبدیل شود یا نه، و از کدام نسخه IP |
| **Happy Eyeballs** | `happy_eyeballs` | IPv4 و IPv6 هم‌زمان امتحان می‌شوند و سریع‌تر به کار می‌رود |

با هسته sing-box، ECH، cipher suiteها، گواهی PEM، TCP Fast Open، MPTCP و
Domain Strategy هم ترجمه می‌شوند؛ اثر انگشت زنجیره و CertName را sing-box ندارد
و نادیده گرفته می‌شوند.

**وایرگارد.** `PrivateKey`، `Address`، `MTU`، `Reserved`، `PublicKey`،
`PresharedKey`، `Endpoint` و `PersistentKeepalive` خوانده می‌شوند. `AllowedIPs` و
`DNS` عمدا نادیده گرفته می‌شوند: مسیریابی و پیدا کردن نام‌ها تنظیمات خود زیرگذر
هستند.

**اوپن‌وی‌پی‌ان.** کانفیگ OpenVPN را خود OpenVPN رسمی (`openvpn-openssl`) اجرا می‌کند و هیچ هسته‌ی دیگری نه. اگر روی روتر نباشد، «پیش‌نیازهای روتر» آن را نصب می‌کند، و تا نصب نشود کانفیگ اجرا نمی‌شود و صفحه همین را می‌گوید. پروفایل `.ovpn` همان‌طور که هست به OpenVPN داده می‌شود، پس هر دستوری که کلاینت رسمی می‌شناسد کار می‌کند: کلید ایستا (`<secret>`)، `pkcs12`، `socks-proxy` و `http-proxy`، `ping-restart` و `connect-retry`، `tun-mtu` و `mssfix` و `fragment`، و بقیه. فقط چیزهایی برداشته می‌شود که به‌جای اتصال روی خود روتر اثر می‌گذارند: اسکریپت‌ها و پگزارشین‌ها، درگاه مدیریت، مسیرها و DNS که پروفایل می‌خواهد نصب کند، و نام دستگاه. دستورهایی هم که OpenVPN 2.6 به‌خاطرشان کل پروفایل را رد می‌کند برداشته می‌شوند؛ پروفایل‌هایی که برای ویندوز یا سرور قدیمی ساخته شده‌اند معمولا دارندشان: `ip-win32`، `route-method`، `dhcp-renew` و بقیه‌ی دستورهای مخصوص ویندوز، `key-method`، `keysize`، `ncp-disable`؛ و `tls-remote` به `verify-x509-name` تبدیل می‌شود. به سروری که آن‌قدر قدیمی است که رمزنگاری را مذاکره نمی‌کند، همان رمزی که خط `cipher` پروفایل نام می‌برد پیشنهاد می‌شود و در صورت نیاز همان به کار می‌رود، همان‌طور که sing-box قبلا می‌کرد؛ BF-CBC و دیگر رمزهای قدیمی به `libopenssl-legacy` روی روتر نیاز دارند. نام سرورهای پروفایل مستقیم پرسیده می‌شود، هیچ‌وقت از داخل تونلی که OpenVPN تازه دارد بازش می‌کند. تصمیم اینکه چه چیزی از تونل برود با زیرگذر است، نه با پروفایل. OpenVPN دستگاه `zgzovpn` را می‌سازد و خروجی هسته برای این نود به همان دستگاه بسته می‌شود؛ پس تفکیک ایران، DNS و قوانین مثل هر نود دیگر کار می‌کنند، چه هسته‌ی فعال Xray باشد چه sing-box. نام کاربری و رمز، و رمز کلید خصوصی، اگر در پروفایل نباشند، در تنظیمات همان کانفیگ وارد می‌شوند. کانفیگ OpenVPN را هم می‌شود در «افزودن» فیلد به فیلد ساخت و هم با «افزودن فایل» از فایل خواند. پروفایل TAP (`dev tap`) پشتیبانی نمی‌شود. مثل hysteria2 دستی انتخاب می‌شود: رتبه‌بندی خودکار آن را نمی‌سنجد.

**L2TP / IPsec.** اکانت را از «افزودن» با انتخاب L2TP / IPsec وارد کنید: سرور IPv4 یا دامنه، پورت (معمولا 1701)، نام کاربری و رمز عبور. برای اکانت IPsec، گزینه «استفاده از IPsec» را روشن کنید و PSK فروشنده را وارد کنید. لینک ساده به شکل `l2tp://user:password@server:1701?ipsec=0#name` و لینک IPsec به شکل `l2tp+ipsec://user:password@server:1701?psk=key#name` است؛ نویسه‌های ویژه نام کاربری، رمز و PSK باید URL-encode شوند. MTU پیش فرض 1400 است. وابستگی‌ها از «نیازمندی‌های روتر» نصب می‌شوند. تونل دستگاه `zgzl2tp` را می‌سازد و هسته مسیریابی ترافیک را به آن می‌فرستد؛ تفکیک ایران و قوانین مسیر پیش فرض همچنان اجرا می‌شوند. پینگ آدرس سرور را می‌سنجد، TCPing زمان اتصال TCP از داخل تونل به مقصد تست و URL Test زمان درخواست کامل را گزارش می‌کند. L2TP ساده رمزگذاری ندارد. این نوع کانفیگ برای مسیر اصلی و عضویت در بالانسر پشتیبانی می‌شود؛ هر عضو رابط و جدول مسیر مستقل دارد. در زنجیره قابل استفاده نیست.

**PPTP و SSTP.** از «افزودن» PPTP یا SSTP را انتخاب کنید و سرور (IPv4 یا دامنه)، نام کاربری و رمز را وارد کنید. پورت را می‌شود خالی گذاشت: PPTP روی 1723 و SSTP روی 443. لینک‌ها به شکل `pptp://user:password@server:1723?mppe=1#name` و `sstp://user:password@server:443#name` هستند؛ نویسه‌های ویژه نام کاربری و رمز باید URL-encode شوند. MTU پیش‌فرض 1400 است. وابستگی‌ها از «نیازمندی‌های روتر» نصب می‌شوند: برای PPTP افزونه PPTP و MPPE، و برای SSTP بسته `sstp-client` و ماژول legacy کتابخانه OpenSSL. مثل L2TP، تونل دستگاه خودش را می‌سازد (`zgzpptp` یا `zgzsstp`) و هسته مسیریابی ترافیک را به آن می‌فرستد؛ تفکیک ایران و قوانین مسیر همچنان اجرا می‌شوند. SSTP داخل HTTPS کار می‌کند و از بیشتر فایروال‌ها رد می‌شود؛ گواهی سرور بررسی نمی‌شود. PPTP رمزگذاری ضعیفی دارد و رمزگذاری MPPE آن به‌طور پیش‌فرض روشن است. این دو هم فقط برای مسیر اصلی هستند و در زنجیره یا بالانسر استفاده نمی‌شوند.

**IKEv2.** از «افزودن» IKEv2 را انتخاب کنید و سرور (IPv4 یا دامنه) را وارد کنید. «روش ورود» یا نام کاربری و رمز است (EAP، که سرور با گواهی خودش را ثابت می‌کند) یا فقط کلید مشترک (PSK). پورت را می‌شود خالی گذاشت: 500. گواهی سرور باید از یک مرجع عمومی مثل Let’s Encrypt باشد؛ اگر فروشنده گواهی CA خودش را داده، آن را در «گواهی مرجع (CA)» بگذارید، و اگر نام داخل گواهی با آدرس سرور فرق دارد، در «شناسه سرور» بنویسید. لینک‌ها به شکل `ikev2://user:password@server:500?id=vpn.example.com#name` و `ikev2://server:500?psk=key#name` هستند؛ گواهی CA با `ca=` به شکل base64 می‌آید. MTU پیش‌فرض 1400 است. هنگام اتصال یا تست، وابستگی‌های گم‌شده همین پروتکل نصب می‌شوند: strongSwan با EAP و OpenSSL، و ماژول کرنل XFRM interface؛ «نیازمندی‌های روتر» هم همچنان قابل استفاده است. این بررسی در زمان بازکردن صفحه اجرا نمی‌شود. برای PureVPN روش ورود «نام کاربری و رمز» است و `pointtoserver.com` را در «شناسه سرور» قرار دهید؛ این مقدار PSK نیست. تونل دستگاه خودش را می‌سازد (`zgzikev2`) و هسته مسیریابی ترافیک را به آن می‌فرستد؛ تفکیک ایران و قوانین مسیر همچنان اجرا می‌شوند. اتصال‌های دیگر strongSwan روی روتر دست نمی‌خورند. این هم برای مسیر اصلی و عضویت در بالانسر پشتیبانی می‌شود؛ هر عضو رابط XFRM و جدول مسیر مستقل دارد. در زنجیره استفاده نمی‌شود.

**AmneziaWG.** فایل `.conf` وایرگارد که هر کدام از خط‌های AmneziaWG را داشته باشد - `Jc`، `Jmin`، `Jmax`، `S1` تا `S4`، `H1` تا `H4` (عدد یا بازه) و بسته‌های طعمه‌ی `I1` تا `I5` - یک نود AmneziaWG (نسخه ۲ یا ۳) است. Xray و sing-box رسمی آن را نمی‌فهمند و [sing-box-lx](https://github.com/Leadaxe/sing-box-lx) آن را می‌برد. وقتی این کانفیگ انتخاب شود، sing-box-lx به‌تنهایی کل تونل را اجرا می‌کند و Xray کنار می‌رود. اگر sing-box-lx نصب نباشد صفحه می‌گوید. مثل hysteria2 و OpenVPN دستی انتخاب می‌شود.

**اتر (Aether).** لینک‌های `aether://` از بخش کانفیگ‌ها وارد و ویرایش می‌شوند. در صفحه **به‌روزرسانی**، Aether را نصب کنید؛ آرشیو آن با چک‌سام بررسی می‌شود و برنامه‌های لازم برای سایفون و پل‌های تور هم نصب می‌شوند. نسخه‌های آماده برای ARMv7، ARM64 و x86_64 هستند. اکانت هر کانفیگ در `/etc/zirgozar/aether/<نام بخش>/identity.toml` نگهداری می‌شود. `wg-over-masque` همان Gool جدید است؛ `gool` حالت قدیمی وایرگارد در وایرگارد است. برای MASQUE و Gool جدید می‌توانید انتقال `h2` یا `h3` را انتخاب کنید. نمونه:

```text
aether://?protocol=wg-over-masque&scan=balanced&ip=v4&transport=h2&outer=162.159.198.204%3A443#aether
```

فایل JSON دارای `aetherCommand` برای MASQUE را هم می‌توانید از **افزودن فایل** وارد کنید. قالب دارای SOCKS محلی و upstream محلی با خروجی ساده `freedom`، به نود Aether تبدیل می‌شود؛ SNI، endpoint، انتقال h2/h3 و اثرانگشت `semi-python` حفظ می‌شوند. فرمان خام اجرا نمی‌شود و گزینه‌های ناشناخته یا زنجیره پشتیبانی‌نشده رد می‌شوند. DNS و قوانین مسیریابی فایل جایگزین سیاست زیرگذر نمی‌شوند؛ تفکیک ایران تابع کلید خودش است.

فیلد **نود خروجی** در ویرایش کانفیگ اتر، مسیر `کانفیگ انتخاب‌شده → WARP / Psiphon / Tor` را تنظیم می‌کند؛ پیش‌فرض مستقیم است. نود انتخاب‌شده باید از پروتکل‌هایی باشد که هسته می‌تواند به‌عنوان یک خروجی مستقل اجرا کند؛ کانفیگ‌های ترکیبی، اتر و پل‌های خارجی در این فهرست نیستند. در حالت `only` فقط تور یا سایفون اجرا می‌شود؛ `chain` آن را از وارپ عبور می‌دهد و `reverse` وارپ را از آن عبور می‌دهد. حالت معکوس به MASQUE روی HTTP/2 نیاز دارد. نود خروجی حذف‌شده یا نامعتبر اتصال را متوقف می‌کند. مثل OpenVPN، اتر به‌صورت دستی انتخاب می‌شود و در رتبه‌بندی خودکار قرار نمی‌گیرد.

**وارپ (WARP).** با دکمه **افزودن** و پروتکل «وارپ» ساخته می‌شود: نام، حالت، کشور خروجی برای سایفون، لایسنس WARP+ اگر دارید، و بقیه‌ی تنظیماتش. این کانفیگ سرور خودش را ندارد؛ [warp-plus](https://github.com/bepass-org/warp-plus) خودش یک اکانت رایگان کلودفلر می‌سازد، آدرسی از وارپ را پیدا می‌کند که از اینجا جواب بدهد، و تونل را به شکل یک پورت SOCKS روی خود روتر به Xray (یا sing-box) می‌دهد؛ پس قانون شانت، DNS، کنترل دسترسی و آمار مصرف مثل هر کانفیگ دیگری کار می‌کنند. warp-plus را از صفحه **به‌روزرسانی** نصب کنید. در فایل، کانفیگ یک لینک `warp://` است — `warp://[لایسنس@]اندپوینت-یا-auto?mode=…#نام`، همان شکلی که Hiddify می‌نویسد — و فیلدهای صفحه ویرایشش این‌ها هستند:

| فیلد | در لینک | کار آن |
|---|---|---|
| **حالت** | `mode` | *وارپ*: خروجی خود کلودفلر. *وارپ در وارپ*: یک وارپ دوم پشت اولی، برای IP خروجی دیگری. *سایفون پشت وارپ*: خروجی از کشوری که انتخاب می‌کنید |
| **کشور خروجی** | `country` | فقط برای سایفون: یکی از ۳۱ کشوری که warp-plus دارد |
| **اندپوینت** | پیش از `?` | آدرس و پورت وارپ، مثل `162.159.192.1:2408`. خالی یعنی warp-plus خودش انتخاب کند |
| **اسکن آدرس** | `scan` | آدرس‌های وارپ را امتحان می‌کند و یکی را که جواب بدهد برمی‌دارد. بیشترشان در ایران بسته‌اند؛ روشن بماند. فقط وقتی اندپوینت خالی است |
| **اسکن: کندترین جواب** | `rtt` | آدرس‌هایی که دیرتر از این (م‌ثانیه) جواب بدهند کنار گذاشته می‌شوند. پیش‌فرض ۱۰۰۰ |
| **نسخه IP** | `ipv` | هر دو، فقط IPv4 یا فقط IPv6 |
| **لایسنس WARP+** | پیش از `@` | اختیاری؛ اکانت را WARP+ می‌کند. هر لایسنس روی پنج دستگاه کار می‌کند |
| **DNS داخل وارپ** | `dns` | پیش‌فرض `1.1.1.1` |
| **Reserved** | `reserved` | سه عدد؛ خالی یعنی مقدار خود اکانت |

**اکانت وارپ** زیر همان فیلدها نشان می‌دهد اکانت ساخته شده یا نه، رایگان است یا WARP+، و حجم باقی‌مانده WARP+. هر کانفیگ وارپ اکانت خودش را در `/etc/zirgozar/warp/<نام بخش>` دارد، پس با ریبوت اکانت تازه ساخته نمی‌شود. warp-plus اولین بار که وصل می‌شود خودش اکانت می‌سازد، به شرط اینکه آدرس ثبت‌نام کلودفلر از اینجا باز شود — که در ایران اغلب باز نمی‌شود. دکمه **ثبت‌نام** اکانت را همین الان می‌سازد، از هر راهی که ترافیک خود روتر می‌رود: اگر کانفیگ دیگری وصل است و **پروکسی خود روتر** روشن است، از داخل همان کانفیگ. **اکانت تازه** اکانت فعلی را دور می‌اندازد و یکی دیگر می‌سازد.

وصل شدن وارپ ممکن است تا یک دقیقه طول بکشد (اسکن، و در سایفون پیدا کردن سرور)، و سرویس تا دو دقیقه صبر می‌کند. مثل OpenVPN دستی انتخاب می‌شود: رتبه‌بندی خودکار آن را نمی‌سنجد. **تست URL** کنار آن یک warp-plus جدا برای همان تست اجرا می‌کند و تا یک دقیقه طول می‌کشد؛ پینگ و TCPing برایش معنی ندارند.

وارپ ساده، وقتی اکانت دارد، جاهای دیگری هم به کار می‌آید که Xray باید خودش کانفیگ را نگه دارد: به‌عنوان **کانفیگ پیش‌پروکسی** یا **کانفیگ فرود** (مثلا vless و بعد خروج از وارپ، برای سایتی که IP دیتاسنتر را نمی‌پذیرد)، در یک **قانون شانت**، در **کنترل دسترسی**، برای یک **پورت SOCKS** و برای خروجی **سمت سرور**. آنجا همان اکانت به شکل خروجی وایرگارد خود Xray ساخته می‌شود، با اندپوینت کانفیگ یا `162.159.192.1:2408`. وارپ در وارپ و سایفون کار خود warp-plus هستند و فقط به‌عنوان کانفیگ اصلی تونل اجرا می‌شوند. کانفیگ وارپی که همین الان کانفیگ تونل است، در قانون شانت و کنترل دسترسی همان راه تونل را می‌رود، نه یک اتصال دوم با همان اکانت.

**اجرا با warp-plus.** صفحه ویرایش یک کانفیگ وایرگارد معمولی (نه AmneziaWG) تیکی به همین نام دارد. warp-plus قبل از هر هندشیک چند بسته بی‌معنی می‌فرستد و همین وایرگارد را از فیلتری که آن را می‌شناسد و می‌بندد رد می‌کند. با این تیک کانفیگ مثل وارپ اجرا می‌شود؛ به‌عنوان پیش‌پروکسی یا کانفیگ فرود همچنان Xray آن را می‌برد.

**وارپ با MASQUE.** حالت چهارم کانفیگ وارپ: به‌جای وایرگارد، وارپ از MASQUE (HTTP/3 روی پورت ۴۴۳) وصل می‌شود؛ برای اینترنتی که وایرگارد وارپ را می‌بندد. این حالت را [Vwarp](https://github.com/voidr3aper-anon/Vwarp) اجرا می‌کند که از صفحه **به‌روزرسانی** نصب می‌شود. اندپوینت خالی یعنی `162.159.198.1:443`؛ یک آدرس تنها هم کافی است و پورت ۴۴۳ فرض می‌شود. اکانت MASQUE را خود Vwarp می‌سازد و دکمه **ثبت‌نام** همان را از داخل تونل فعلی می‌سازد. در لینک: `mode=masque`.

**پوشش (noize).** فیلد تازه کانفیگ وارپ: بسته‌های بی‌معنی و پرکننده دور اولین بسته‌های وایرگارد یا MASQUE، تا فیلتر آن‌ها را نشناسد — *خاموش*، `minimal`، `light`، `medium`، `heavy`، `stealth`، `gfw` یا `firewall`. هرچه سنگین‌تر، از فیلترهای بیشتری رد می‌شود و دیرتر وصل می‌شود. هر مقداری جز خاموش کانفیگ را به Vwarp می‌سپارد؛ MASQUE بدون اینکه چیزی گفته شود `medium` است. در لینک: `noize=…`.

**همه کانفیگ‌ها** — فهرست پایین صفحه: همه کانفیگ‌هایی که روتر می‌شناسد، اندازه‌گیری‌شده‌ها اول.
**TCPing** برای همه پر می‌شود؛ **تست URL** فقط برای آن‌هایی که جواب داده‌اند و فقط
تا وقتی یکی به‌قدر کافی سریع پیدا شود، پس بیشتر آن ستون عمدا خالی است. **بررسی همه** هندشیک را برای کل فهرست اجرا می‌کند بی‌آنکه تونلی را که
ترافیک می‌برد به هم بزند؛ **استفاده** کنار هر ردیف از همان کانفیگ وصل می‌شود.

**XDRIVE برای VLESS.** روش انتقال را XDRIVE انتخاب کنید و شی `xdriveSettings` را در **تنظیمات XDRIVE به شکل JSON** قرار دهید. گزینه `service` یکی از `google-drive`، `template`، `local` یا `s3` است؛ `remoteFolder` و اطلاعات سرویس در `secrets` را هم تنظیم کنید. گزینه‌های تو‌در‌توی `template`، از جمله `hrefPath` و `hrefMethod`، و تنظیمات `xmux` حفظ می‌شوند. برای HTTP/3، امنیت را TLS و ALPN را فقط `h3` بگذارید. به Xray نسخه 26.10.22 یا جدیدتر نیاز دارد؛ S3 به نسخه رسمی 26.10.29 یا جدیدتر نیاز دارد.

**فضای ذخیره‌سازی سازگار با S3.** نمونه تنظیمات زیر در فرم کلاینت و سمت سرور پذیرفته می‌شود و در لینک اشتراک و ورود JSON حفظ می‌شود:

```json
{
  "service": "s3",
  "remoteFolder": "xdrive/session",
  "secrets": ["ACCESS_KEY_ID", "SECRET_ACCESS_KEY"],
  "s3": {
    "endpoint": "https://storage.example.com",
    "region": "us-east-1",
    "bucket": "tunnel",
    "pathStyle": true
  }
}
```

برای اعتبارنامه موقت، `SessionToken` عضو سوم آرایه `secrets` است. `remoteFolder` پیشوند نسبی داخل bucket است. مقدار پیش‌فرض `pathStyle` برابر true است؛ حالت false به endpoint دامنه‌ای و نام bucket سازگار با DNS نیاز دارد. کلاینت و سرور باید به همان فضای ذخیره‌سازی و پیشوند دسترسی داشته باشند.

**Google Drive در Xray 26.10.29.** هسته جدید نشست را با حلقه اسلات‌ها منتقل می‌کند؛ تنظیم جدیدی در زیرگذر لازم ندارد. برای این روش، هسته کلاینت و سرور هر دو باید سازگار باشند. سرویس‌های `local` و `template` همچنان از انتقال قطعه‌ای استفاده می‌کنند.

XDRIVE به رمزنگاری VLESS نیاز دارد و با `flow` کار نمی‌کند. جفت کلید متناظر را با `xray vlessenc` بسازید: `decryption` در سرور و `encryption` در کلاینت قرار می‌گیرد. Mux موردنیاز کلاینت خودکار فعال می‌شود؛ `xmux` جداگانه اتصال‌ها به فضای ذخیره‌سازی را کنترل می‌کند. واردکردن JSON هسته و لینک VLESS ساخته‌شده در زیرگذر، تنظیمات انتقال را حفظ می‌کند. انتخاب خودکار برای XDRIVE مرحله تست TCP را رد می‌کند و مسیر واقعی پروکسی را می‌سنجد.

### 🔗 ۴.۳ اشتراک‌ها

Node Subscribe. زیر جدول اشتراک‌ها، تنظیمات مشترک همه آنها:

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **روش فیلتر کلمات داخل کانفیگ** | `filter_keyword_mode` | فهرست حذف | کانفیگ‌ها بر اساس کلمات نامشان نگه داشته یا حذف می‌شوند؛ کلمه در هر جای نام باشد، دقیقا همان‌طور که نوشته شده، پیدا می‌شود. *بستن*، *فهرست حذف*، *فهرست نگه‌داشتن*، *فهرست حذف، با اولویت فهرست نگه‌داشتن*، *فهرست نگه‌داشتن، با اولویت فهرست حذف* |
| **فهرست حذف** | `filter_discard_list` | — | کلماتی که کانفیگ را حذف می‌کنند |
| **فهرست نگه‌داشتن** | `filter_keep_list` | — | کلماتی که کانفیگ را نگه می‌دارند |
| **حداکثر تعداد کانفیگ‌ها** | `max_nodes` | 300 | از مجموع همه اشتراک‌ها. فهرست طولانی‌تر، زمان بیشتری برای اندازه‌گیری و حافظه بیشتری لازم دارد |
| **به‌روزرسانی دستی همه اشتراک‌ها** | — | — | همه اشتراک‌ها را همین حالا می‌خواند |
| **حذف همه کانفیگ‌های اشتراک** | — | — | کانفیگ‌هایی را که همه اشتراک‌ها آورده‌اند کنار می‌گذارد؛ دفعه بعد که خوانده شوند برمی‌گردند |

بعد جدول، هر ردیف یک بخش `config subscription`: **نام**، **اطلاعات اشتراک** (تعداد
کانفیگ، حجم باقی‌مانده و تاریخ انقضا — اگر سرویس‌دهنده اعلام کند — و آخرین بار که
خوانده شد یا چرا خوانده نشد)، **آدرس اشتراک**، **فعال**، و در هر ردیف **حذف
کانفیگ‌های این اشتراک** و **به‌روزرسانی دستی**.

پذیرفته می‌شود: فهرست ساده لینک‌ها، یک بلوک base64، یا کل یک فایل کانفیگ — Xray،
sing-box (از جمله نسخه [sing-box-lx](https://github.com/Leadaxe/sing-box-lx) و
`xhttp` آن)، JSON یا `.yaml` کلش، `.yaml` هیستریا۲، فایل `.conf` وایرگارد.
AmneziaWG عمدا کنار گذاشته شده: Xray آن را بلد نیست.

پنجره ویرایش هر اشتراک:

| زبانه | گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|---|
| اصلی | **نام** | `name` | — | نام آن؛ دو اشتراک نمی‌توانند یک نام داشته باشند |
| اصلی | **آدرس اشتراک** | `url` | — | آدرس آن، با `http://` یا `https://` |
| اصلی | **یا یک فایل** | `content` | — | به‌جای آدرس: یک فایل کانفیگ. **انتخاب فایل…** آن را پر می‌کند؛ آدرس را خالی بگذارید |
| اصلی | **فعال** | `enabled` | روشن | روشن یا خاموش بودن این اشتراک |
| اصلی | **روش دسترسی به آدرس اشتراک** | `access_mode` | خودکار | *خودکار*: وقتی پروکسی خود روتر روشن است، مثل بقیه ترافیک روتر؛ در غیر این صورت اگر تونل برقرار باشد از تونل، و اگر نباشد مستقیم. *اتصال مستقیم*، یا *پروکسی* — از پورت SOCKS خود تونل |
| اصلی | **User-Agent** | `user_agent` | v2rayN/9.99 | درخواست خودش را چه معرفی کند. بعضی سرویس‌دهنده‌ها به برنامه ناشناس به‌جای فهرست یک صفحه می‌دهند |
| روش فیلتر کلمات داخل کانفیگ | **روش فیلتر کلمات داخل کانفیگ** | `filter_keyword_mode` | با تنظیمات سراسری | فیلتر جداگانه همین اشتراک، یا فیلتر سراسری بالا |
| روش فیلتر کلمات داخل کانفیگ | **فهرست حذف / فهرست نگه‌داشتن** | `filter_discard_list` / `filter_keep_list` | — | کلمات مخصوص همین اشتراک |
| به‌روزرسانی خودکار | **به‌روزرسانی یک‌بار هنگام راه‌اندازی** | `boot_update` | خاموش | بعد از هر بار روشن شدن روتر یک بار خوانده می‌شود |
| به‌روزرسانی خودکار | **حالت به‌روزرسانی خودکار** | `update_week_mode` | غیرفعال | *غیرفعال*: فقط با زدن دکمه‌اش، یا یک بار اگر هرگز خوانده نشده باشد. *هر ۱۵ دقیقه* — همان‌طور که فهرست پیش‌فرض خوانده می‌شود. *حالت تکرار*: هر چند ساعت یک بار. *هر روز*، یا یک روز از هفته |
| به‌روزرسانی خودکار | **زمان به‌روزرسانی** | `update_time_mode` | 0:00 | ساعت، برای هر روز یا یک روز از هفته |
| به‌روزرسانی خودکار | **فاصله به‌روزرسانی (ساعت)** | `update_interval_mode` | 2 | تعداد ساعت، برای حالت تکرار |
| پروکسی زنجیره‌ای | **پروکسی زنجیره‌ای** | `chain_proxy` | خاموش | برای همه کانفیگ‌های این اشتراک: *کانفیگ پیش‌پروکسی* یا *کانفیگ فرود*. فقط کانفیگ‌های Xray؛ کانفیگ hysteria2 یا tuic در زنجیره فرود کنار گذاشته می‌شود |
| پروکسی زنجیره‌ای | **کانفیگ پیش‌پروکسی** | `preproxy_node` | — | هر کانفیگ این اشتراک از داخل این یکی وصل می‌شود |
| پروکسی زنجیره‌ای | **کانفیگ فرود** | `to_node` | — | ترافیک از یک کانفیگ این اشتراک می‌گذرد و از این یکی بیرون می‌رود |

چیزی که هر اشتراک آورده روی فلش هم نگه داشته می‌شود — فقط وقتی تغییر کرده باشد
نوشته می‌شود — پس فهرستی که هفته‌ای یک بار خوانده می‌شود با راه‌اندازی دوباره روتر از
بین نمی‌رود.

اگر دریافت کلید ECH با DNS معمولی مسدود شده، در ویرایش نود گزینه **دریافت کلید ECH از مسیر TLS (echOutbound)** را روشن کنید. این تنظیم از `h2c://1.1.1.1/dns-query` و یک خروجی TLS به `1.1.1.1:443` با SNI مایکروسافت، اثرانگشت Chrome و بررسی گواهی و ALPN با `fromMitM` استفاده می‌کند. برای تعیین دامنه کلید، در فیلد ECH مثلا `cloudflare-ech.com+h2c://1.1.1.1/dns-query` بنویسید؛ بدون دامنه صریح، SNI نود استفاده می‌شود. این گزینه DNS دریافت کلید را به Cloudflare تغییر می‌دهد و به Xray جدید با پشتیبانی `echSockopt` و `fromMitM` نیاز دارد؛ در sing-box قابل اجرا نیست. پیش‌فرض خاموش است و با روشن شدن، در تست URL و فایل خروجی کانفیگ هم اعمال می‌شود.

### 🧰 ۴.۴ تنظیمات دیگر

Other Settings، بخش به بخش.

**رنگ چراغ روتر (LED color)** در انتهای فرم تنظیمات دیگر قرار دارد و به‌صورت پیش‌فرض خاموش است و کنترل چراغ را به OpenWrt می‌سپارد. روی روتر دارای سه کانال RGB قابل تنظیم، فعال‌کردن آن هر ۱۵ ثانیه تست URL اتصال جاری را بررسی می‌کند: کمتر از ۲۰۰ میلی‌ثانیه سبز، ۲۰۰ تا کمتر از ۳۰۰ زرد، ۳۰۰ تا کمتر از ۵۰۰ نارنجی، ۵۰۰ میلی ثانیه و بالاتر قرمز؛ قطع اتصال یا تست ناموفق خاموش. سه مرز قابل ویرایش هستند و هر رنگ، در صورت پشتیبانی سخت‌افزار، حالت ثابت یا چشمک‌زن دارد. با غیرفعال‌کردن، تنظیمات چراغ OpenWrt بازگردانده می‌شود.

خانه منتظر پردازش اشتراک‌ها نمی‌ماند؛ انتخابگرهای نود پس از آماده‌شدن داده‌ها تکمیل می‌شوند. تب انتخابی مصرف ترافیک در همین مرورگر به خاطر سپرده می‌شود.

**تنظیمات تاخیر**

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **بررسی و ترمیم خودکار** | `start_daemon` | روشن | بررسی مستقل سلامت تونل؛ دو درخواست ناموفق پیاپی باعث ترمیم می‌شود. به‌روزرسانی اشتراک‌ها زمان‌بندی جدا دارد |
| **فاصله بررسی سلامت** | `health_interval` | ۳ دقیقه | قابل انتخاب: ۱، ۲، ۳، ۵، ۱۰، ۱۵ یا ۳۰ دقیقه |
| **تعویض کانفیگ با کندی مداوم** | `health_switch_slow` | روشن | فقط در حالت انتخاب خودکار: دو بررسی کند پیاپی و یک تایید دوباره، سپس تست جایگزین‌ها. جایگزین باید در تست دوباره موفق و دست‌کم ۱٫۵ برابر سریع‌تر باشد. بین بررسی جایگزین‌ها حداقل ۱۰ دقیقه فاصله است |
| **حداقل تاخیر برای تشخیص کندی** | `health_slow_ms` | ۱۵۰۰ م‌ثانیه | درخواست باید هم از این مقدار و هم از دو برابر بهترین زمان ثبت‌شده کانفیگ فعلی بیشتر باشد. این سنجش زمان یک درخواست است، نه سرعت دانلود |
| **تاخیر در شروع** | `start_delay` | 1 | چند ثانیه بعد از روشن شدن روتر صبر کند و بعد شروع کند |
| **توقف خودکار** / **زمان توقف** | `stop_week_mode` / `stop_time_mode` | غیرفعال / 0:00 | تونل را هر روز یا یک روز از هفته در این ساعت متوقف می‌کند |
| **شروع خودکار** / **زمان شروع** | `start_week_mode` / `start_time_mode` | غیرفعال / 0:00 | به همین شکل روشنش می‌کند |
| **راه‌اندازی مجدد خودکار** / **زمان راه‌اندازی مجدد** | `restart_week_mode` / `restart_time_mode` | غیرفعال / 0:00 | به همین شکل دوباره راه‌اندازی‌اش می‌کند — یا با *حالت تکرار* هر چند ساعت یک بار |
| **فاصله راه‌اندازی مجدد (ساعت)** | `restart_interval_mode` | 2 | تعداد ساعت، برای حالت تکرار |

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

**تنظیمات انتقال**

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **عدم فوروارد این پورت‌های TCP** | `tcp_no_redir_ports` | استفاده نشود | پورت‌های TCP که هرگز از تونل نمی‌روند — با بالاترین اولویت |
| **عدم فوروارد این پورت‌های UDP** | `udp_no_redir_ports` | استفاده نشود | همین برای UDP |
| **فوروارد این پورت‌های TCP** | `tcp_redir_ports` | همه | پورت‌های TCP که از تونل می‌روند: همه، پرکاربرد، یا فقط وب (80 و 443) |
| **فوروارد این پورت‌های UDP** | `udp_redir_ports` | همه | همین برای UDP |
| **ابزار فایروال** | `firewall_backend` | خودکار | nftables یا iptables. خودکار درست است، مگر اینکه روتر هر دو را داشته باشد و اشتباهی انتخاب شود |
| **روش پروکسی TCP** | `tcp_proxy_way` | REDIRECT | TPROXY ترافیک TCP و UDP را روی یک پورت می‌برد. REDIRECT ترافیک TCP را به پورت جداگانه‌ای می‌فرستد، برای کرنلی که TPROXY آن با TCP مشکل دارد؛ UDP همیشه TPROXY است |
| **پاسخ به پینگ (ICMP)** | `accept_icmp` | خاموش | تونل ICMP را جابه‌جا نمی‌کند، پس پینگ به آدرسی که از تونل می‌رود هیچ‌وقت برنمی‌گردد. با روشن کردن این، خود روتر جواب می‌دهد |
| **IPv6** | `ipv6` | تا وقتی وصل است رد شود | تقریبا هیچ کانفیگ رایگانی IPv6 ندارد، و دستگاهی که IPv6 را ترجیح می‌دهد بدون تونل بیرون می‌رود و ظاهرش هم سالم است. رد کردن IPv6 باعث می‌شود دستگاه به IPv4 برگردد، که تونل می‌شود |
| **اینترفیس‌هایی که تونل شوند** | `lan_zone` | همه | از خود روتر خوانده می‌شود. اگر خالی بماند همه اینترفیس‌های LAN تونل می‌شوند؛ اگر یکی را انتخاب کنید فقط ترافیک همان اینترفیس برداشته می‌شود |

**تنظیمات Xray**

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **فرگمنت** | `fragment` | خاموش | تکه‌تکه کردن TCP، که در بعضی موارد سیستم فیلترینگ را فریب می‌دهد، مثلا برای رد شدن از لیست سیاه SNI |
| **بسته‌های فرگمنت** | `fragment_packets` | tlshello | *tlshello* پیام client hello در TLS را تکه می‌کند؛ *1-3* و مانند آن در لایه TCP، یعنی چند نوشتن اول دستگاه |
| **طول فرگمنت** | `fragment_lengths` | 3-5,6-8,10-20 | طول هر تکه، به بایت |
| **تاخیر فرگمنت** | `fragment_delays` | 10-20 | فاصله بین تکه‌ها، به م‌ثانیه |
| **حداکثر تکه** | `fragment_maxSplit` | 3-6 | حداکثر تعداد تکه‌ها |
| **نویز** | `noise` | خاموش | نویز UDP، که در بعضی شرایط از محدودیت‌های UDP رد می‌شود. Xray آن را روی کانفیگ‌های mKCP و xhttp روی HTTP/3 می‌فرستد. بسته‌ها در جدول پایین‌اند |
| **Mux** | `mux` | خاموش | چند اتصال داخل یک اتصال. روی کانفیگ VLESS با flow، xhttp و وایرگارد استفاده نمی‌شود، چون آنجا کار نمی‌کند |
| **تعداد هم‌زمان Mux** | `mux_concurrency` | 8 | تعداد اتصال در هر Mux |
| **تعداد هم‌زمان XUDP** | `xudp_concurrency` | 16 | همین برای UDP |
| **جایگزینی آدرس مقصد اتصال** | `sniffing_override_dest` | خاموش | آدرس مقصد با دامنه‌ای که از خود اتصال خوانده شده جایگزین می‌شود. اگر خاموش باشد آن دامنه فقط برای مسیریابی استفاده می‌شود |
| **دامنه‌های مستثنا** | `excluded_domains` | اپل، شیایومی، ویچت | اگر دامنه خوانده‌شده از ترافیک در این فهرست باشد، آدرس مقصد جایگزین نمی‌شود — برای سرویس‌هایی که با جایگزینی آدرس خراب می‌شوند |
| **اندازه بافر** | `buffer_size` | — | اندازه بافر هر اتصال، به کیلوبایت. خالی یعنی مقدار خود Xray |

**بسته‌های نویز Xray** — هر ردیف یک بخش `config xray_noise_packets`:

| ستون | در فایل | کار آن |
|---|---|---|
| **فعال** | `enabled` | روشن یا خاموش بودن این بسته |
| **نوع** | `type` | rand (طول تصادفی)، str، hex، base64 یا array |
| **بسته \| طول تصادفی** | `packet` | خود بسته، یا برای rand طول یا بازه آن، مثل `10-20` |
| **تاخیر (م‌ثانیه)** | `delay` | فاصله بعد از آن، یا یک بازه |

**توزیع بار**

HAProxy را از بخش هسته ها نصب کنید. در تنظیمات دیگر، توزیع بار را فعال کنید و
سرورها، پورت محلی، روش توزیع و فاصله بررسی سلامت را تنظیم کنید. کانفیگ اصلی را
به `127.0.0.1` و پورت همان گروه وصل کنید. سرور بدون پاسخ از توزیع کنار گذاشته
می شود. پنل وضعیت اختیاری با پورت، نام کاربری و رمز قابل تنظیم است.

**تاریخچه مصرف**

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **ترافیک: ذخیره هر (دقیقه)** | `stats_flush_minutes` | 5 | جمع در جریان هر چند دقیقه روی فلش نوشته شود. هر چه هنوز نوشته نشده باشد با قطع برق روتر از دست می‌رود؛ پنج با فاصله خواندن شمارنده‌ها یکی است |
| **حذف تاریخچه مصرف** | — | — | مصرف ثبت‌شده را پاک می‌کند و شمارش از صفر شروع می‌شود |

**ساعت روتر** — دکمه **تنظیم ساعت روتر** ساعت روتر را به وقت ایران تنظیم می‌کند.
اگر ساعت روتر اشتباه باشد اتصال‌های امن و همچنین اتصال‌های تونل برقرار نمی‌شوند.

### ⬆️ ۴.۵ به‌روزرسانی

به‌روزرسانی برنامه می‌تواند قسمت‌های بدون تغییر بسته‌های دانلودشده قبلی را دوباره
استفاده کند. فقط قسمت‌های لازم دانلود می‌شوند؛ سپس بسته کامل با `SHA256SUMS`
بررسی و مثل قبل با `apk` یا `opkg` نصب می‌شود. اولین به‌روزرسانی برای ایجاد مبنا
بسته‌ها را کامل دریافت می‌کند. کش اختیاری در
`/usr/libexec/zirgozar/.update-cache` فقط یک بسته از هر جز، هرکدام حداکثر ۶۴
مبی‌بایت، نگه می‌دارد و دست‌کم ۸ مبی‌بایت فضای خالی باقی می‌گذارد. نبود کش،
ناسازگاری نسخه، تغییرات زیاد یا خطای دریافت قسمت‌ها، مسیر دانلود کامل را فعال
می‌کند. حذف کش فقط باعث می‌شود به‌روزرسانی بعدی کامل دانلود شود. این کار فقط
هنگام درخواست به‌روزرسانی اجرا می‌شود؛ باز کردن صفحه می تواند بررسی زمان بندی شده نسخه ها را در صورت قدیمی بودن کش اجرا کند؛ فایل بسته فقط با درخواست نصب یا به روزرسانی دانلود می شود.

| کارت | چه نشان می‌دهد |
|---|---|
| **به‌روزرسانی** | نسخه همین برنامه و اینکه نسخه تازه‌تری منتشر شده یا نه. دکمه **به‌روزرسانی به …** نسخه تازه را از گیت‌هاب دانلود می‌کند، با چک‌سام‌های همان انتشار بررسی می‌کند و با مدیر پکیج خود روتر (apk یا opkg) نصب می‌کند؛ تنظیمات حفظ می‌شوند، تونل اگر روشن بود دوباره روشن می‌شود و صفحه خودش دوباره بارگذاری می‌شود |
| **هسته‌ها** | نسخه نصب شده، وضعیت انتشار، مسیر فایل و دکمه های بررسی، نصب، نصب مجدد یا به روزرسانی و حذف. نسخه Xray با فهرست انتخاب نسخه نیز نصب می شود. فقط نسخه پایدار جدیدتر پیشنهاد خودکار ارتقا می گیرد؛ پیش انتشار از فهرست انتخاب می شود |
| **پیش‌نیازهای روتر** | در یک خط: همه چیز آماده است یا چند مورد کم است. **جزییات** سوال‌هایی از خود سیستم را باز می‌کند — پروکسی شفاف، policy routing، HTTPS، فایروال در حال استفاده، پکیج‌های کم — با دکمه **نصب**. اگر چیزی کم باشد جزییات خودشان باز می‌شوند |

**بررسی و نصب هسته ها.** دکمه **بررسی** هر ردیف فقط نسخه همان هسته را
بررسی می کند؛ **بررسی همه** در بالای بخش، همه هسته ها را بررسی می کند.
**به روز است** یعنی نسخه جدیدتری در منبع بررسی شده پیدا نشده است.
HAProxy و OpenVPN از فهرست بسته های مدیر بسته روتر بررسی می شوند.
اگر مخزن آن‌ها خطا بدهد، **بررسی همه** همچنان نسخه Xray و دیگر هسته‌های مستقل را بررسی می‌کند؛ خطای مخزن نمایش داده می‌شود و نسخه قدیمی به‌عنوان نتیجه تازه استفاده نمی‌شود. علامت سوال کنار عنوان **هسته‌ها** کاربرد هر هسته و ابزار کمکی را توضیح می‌دهد.
**نصب مجدد** در ردیف Xray همان نسخه نصب شده را دوباره دریافت می کند؛
**نصب این نسخه** نسخه انتخاب شده از فهرست را نصب می کند. سایر نصب کننده ها
نسخه منبع پروژه یا مخزن بسته روتر را می گیرند و انتخاب نسخه یکسان برای همه هسته ها
پیاده نشده است. پیام دانلود و درصد، سپس پیام نصب، فقط زیر همان ردیف نشان داده می شود.

هسته های بخش شامل sing-box-lx، Aether، Mihomo، shadowsocks-rust، OpenVPN و
HAProxy هم هستند. sing-box می تواند هسته اصلی کل تونل باشد، نه فقط ابزار کمکی
برای hysteria2 و tuic. نسخه پترنی ها بررسی محدودیت اتصال VLESS و Trojan بدون
امنیت انتقال به آدرس عمومی را غیرفعال کرده است؛ در Xray رسمی، VLESS دارای
رمزنگاری داخلی و مقصد خصوصی از این محدودیت استثنا هستند.

**مسیر برنامه‌ها**

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **پوشه دانلود هسته ها** | `core_dir` | `/usr/libexec/zirgozar` | روی روتری که حافظه‌اش کم است این را روی حافظه USB بگذارید. هسته‌ای که پکیج دیگری نصب کرده همان‌جا که هست استفاده می‌شود و جابه‌جا نمی‌شود |
| **مسیر Xray** | `core_xray` | — | خالی یعنی هر Xray روی این روتر که کانفیگ را بپذیرد، و اولویت با نسخه‌ای است که از قبل نصب بوده |
| **مسیر Sing-Box** | `core_singbox` | — | فایلی که sing-box در آن نصب، به‌روز و اجرا می‌شود. خالی یعنی نسخه خود این برنامه در پوشه بالا |
| **مسیر Geoview** | `core_geoview` | — | همین برای Geoview |
| **مسیر warp-plus** | `core_warpplus` | — | همین برای warp-plus |
| **مسیر Vwarp** | `core_vwarp` | — | همین برای Vwarp |

| **مسیر Sing-Box-LX** | `core_singbox_lx` | — | مسیر نصب و اجرای sing-box-lx |
| **مسیر Aether** | `core_aether` | — | مسیر Aether برای کانفیگ های مربوط به آن |
| **مسیر Mihomo** | `core_mihomo` | — | مسیر Mihomo برای کانفیگ های SSR |
| **مسیر shadowsocks-rust** | `core_sslocal` | — | مسیر sslocal برای کانفیگ Shadowsocks که این موتور را انتخاب کرده است |

برای اجرای هسته از حافظه RAM، مسیری که با `/tmp` شروع می‌شود بدهید، ذخیره و اعمال
کنید و دکمه نصب کنار آن هسته را بزنید؛ بعد از هر راه‌اندازی دوباره روتر باید دوباره
نصب شود.

### 🗺️ ۴.۶ مدیریت قوانین

Rule Manage: داده‌های مسیریابی و قانون‌های شانت — و بعد جداسازی ایران،
مسدودسازی‌ها، فهرست Rebind و دامنه‌های مستقیم که مخصوص همین برنامه‌اند.

**وضعیت قوانین**

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **آدرس به‌روزرسانی GeoIP** | `geoip_url` | Chocolate4U (IR) | اینکه `geoip.dat` از کجا بیاید. اول پروژه ایرانی و نسخه lite آن، بعد Loyalsoldier، MetaCubeX و runetfreedom |
| **آدرس به‌روزرسانی Geosite** | `geosite_url` | Chocolate4U (IR) | همین برای `geosite.dat` |
| **محل فایل‌های قوانین Geo** | `geo_dir` | `/etc/zirgozar/geo` | پوشه‌ای که دو فایل در آن نگه داشته می‌شوند. فایل‌های کامل حدود 17 و 8 مگابایت‌اند؛ روی روتری که حافظه کمی دارد اینجا را به حافظه USB ببرید یا فایل‌های lite را انتخاب کنید |
| **حالت به‌روزرسانی خودکار** | `geo_update_week_mode` | غیرفعال | فایل‌های تیک‌خورده هر روز، یک روز از هفته، یا هر چند ساعت یک بار دوباره دانلود می‌شوند و اگر تونل روشن باشد برای خواندن آن‌ها دوباره راه‌اندازی می‌شود |
| **زمان به‌روزرسانی** | `geo_update_time_mode` | 0:00 | ساعت |
| **فاصله به‌روزرسانی (ساعت)** | `geo_update_interval_mode` | 2 | تعداد ساعت، برای حالت تکرار |
| **GeoIP** / **Geosite** | `geoip_update` / `geosite_update` | روشن | کدام فایل‌ها با دکمه پایین و با به‌روزرسانی خودکار گرفته شوند |

**نسخه قوانین** اندازه هر فایل و آخرین به‌روزرسانی‌اش را نشان می‌دهد. **به‌روزرسانی
دستی** فایل‌های تیک‌خورده را همین حالا می‌گیرد.
دانلودی که جا نشود رد می‌شود، نه اینکه نیمه‌کاره نوشته شود، و فایلی که هسته نتواند
بخواند هرگز نصب نمی‌شود.

**قانون شانت Sing-Box/Xray**: قانون‌ها، برای هر گروه یک زبانه همراه تعدادش،
به ترتیبی که امتحان می‌شوند — هر کدام بالاتر، زودتر. یک نام دلخواه بنویسید — فارسی یا
انگلیسی — و **افزودن** را بزنید (نامی از حروف انگلیسی، عدد و `_` شناسه قانون هم می‌شود؛
برای نام‌های دیگر شناسه خودکار ساخته می‌شود)؛ قانون تازه در صفحه خودش با فیلدهای خودش باز
می‌شود: توضیح، گروه قانون شانت، پروتکل (http، tls، quic، bittorrent)، تگ ورودی (پروکسی
شفاف، SOCKS)، شبکه، مبدا، پورت، دامنه، IP و **invert**. کنار هر قانون **به بالا**،
کشیدن با دستگیره، **ویرایش** و **حذف** هست؛ ترتیب با «ذخیره و اعمال» ثبت می‌شود. اینکه
هر قانون ترافیک مطابق را به کجا بفرستد، کنار همان قانون در زبانه **قانون شانت** تنظیمات
پایه انتخاب می‌شود.

دو چیز فقط با sing-box کار می‌کند. **invert** کل قانون را برعکس می‌کند — دامنه‌ها و
آدرس‌هایش با هم؛ وقتی Xray تونل را می‌برد چنین قانونی کنار گذاشته می‌شود و گزارش هم
می‌گوید، چون اجرای برعکسش دقیقا ترافیک دیگر را به آنجا می‌فرستاد. خط `rule-set:local:`
یا `rule-set:remote:` (یا کوتاه‌شده `rs:`) را sing-box به کار می‌برد و Xray نادیده می‌گیرد.

**گزینه‌های مخصوص همین برنامه**

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **عبور مستقیم ترافیک ایران** | `route_ir` | خاموش | سایت‌ها و آدرس‌های ایرانی از تونل رد نمی‌شوند. به داده‌های مسیریابی بالا نیاز دارد — تا وقتی دانلود نشده کاری نمی‌کند، چون هسته‌ای که فایل geo از آن خواسته شود و نداشته باشد اصلا بالا نمی‌آید |
| **مسدود کردن تبلیغات** | `block_ads` | خاموش | برای همه دستگاه‌های شبکه. نام‌ها از فهرست `category-ads-all` داخل همان داده‌های مسیریابی می‌آیند |
| **مسدود کردن بیت‌تورنت** | `block_torrent` | خاموش | استفاده از بیت‌تورنت موجب انسداد سرور فیلترشکن و قطع دایمی کانفیگ شما می‌گردد |
| **رد کردن QUIC** | `block_quic` | خاموش | وقتی کانفیگ امکان عبور ترافیک UDP را ندارد، مرورگرها به اجبار از TCP استفاده می‌کنند. پیش‌فرض خاموش است، چون هر جا UDP کار کند QUIC سریع‌تر است |
| **سایت‌های دارای ضعف امنیتی Rebind Attack** | `rebind_domain` | بانک‌ها و سرویس‌های ایرانی | بعضی سایت‌ها با یک آدرس خصوصی جواب می‌دهند — از جمله بانک‌ها و سرویس‌های دولتی ایران. حفاظت روتر در برابر Rebind آن جواب‌ها را رد می‌کند و سایت باز نمی‌شود؛ هر نامی که اینجا باشد، همراه همه زیردامنه‌هایش، از این حفاظت معاف می‌شود |
| **لیست IPهای مستقیم** | `direct_ip` | — | آدرس‌هایی که مستقیم وصل می‌شوند و وارد هسته نمی‌شوند |
| **دامنه‌های مستقیم** | `direct_domain` | — | سایت‌هایی که همیشه مستقیم می‌روند. هر نام همه زیردامنه‌هایش را هم شامل می‌شود؛ `full:`، `regexp:` و `keyword:` همان‌طور که نوشته شوند پذیرفته می‌شوند |

### 🔍 ۴.۷ موقعیت‌یاب

Geo View، با ابزار Geoview (با دکمه همین صفحه یا در صفحه به‌روزرسانی
نصبش کنید).

| فیلد | کار آن |
|---|---|
| **جست‌وجوی دامنه یا IP** | یک نام یا آدرس در کدام فهرست‌های geoip یا geosite هست — و کدام قانون‌های شانت یکی از آن فهرست‌ها یا خود آن را دارند |
| **جست‌وجوی فهرست GeoIP یا Geosite** | یک فهرست چه چیزهایی دارد: `geosite:ir`، `geoip:ir`، `geosite:google`… پنج هزار خط اول نشان داده می‌شود |

### 🛡️ ۴.۸ کنترل دسترسی

Access control: دستگاه‌هایی که راه خروج جداگانه دارند.

| گزینه | در فایل | پیش‌فرض | کار آن |
|---|---|---|---|
| **کلید اصلی** | `acl_enable` | خاموش | روشن یا خاموش بودن قانون‌های پایین |

هر ردیف یک بخش `config acl_rule`:

| زبانه | فیلد | در فایل | کار آن |
|---|---|---|---|
| اصلی | **فعال** | `enabled` | روشن یا خاموش بودن این قانون |
| اصلی | **نام** | `remarks` | نام آن |
| اصلی | **اینترفیس مبدا** | `interface` | فقط دستگاه‌های این اینترفیس؛ پیش‌فرض همه |
| اصلی | **مبدا** | `sources` | دستگاه‌ها: آدرس MAC، یک IP، یک بازه (`192.168.1.50-192.168.1.60`)، یک شبکه، یا `ipset:` و نام یک مجموعه. دستگاه‌هایی که روتر می‌شناسد پیشنهاد می‌شوند |
| اصلی | **حالت** | `mode` | *بدون پروکسی*: هرگز از تونل نمی‌رود. *پروکسی* از یک کانفیگ مشخص. *پروکسی* از کانفیگی که تونل استفاده می‌کند |
| اصلی | **نام کانفیگ** | `node` | برای پروکسی از یک کانفیگ مشخص: یکی از کانفیگ‌های دستی شما. برای کانفیگ hysteria2 یا tuic نمی‌شود قانون جداگانه داشت؛ چنین قانونی از کانفیگی که تونل استفاده می‌کند می‌رود |
| پروکسی | **عدم فوروارد این پورت‌های TCP / UDP**، **فوروارد این پورت‌های TCP / UDP** | `tcp_no_redir_ports` … `udp_redir_ports` | همان تنظیمات انتقال، فقط برای همین دستگاه‌ها |

### 📜 ۴.۹ گزارش‌ها

Runtime Logs: گزارش خود برنامه — هر شروع و توقف قدم به قدم، کدام کانفیگ
انتخاب شد و چرا، چه چیزی شکست خورد — با دکمه **پاک کردن گزارش‌ها**، و زیر آن **گزارش
کانفیگ**، یعنی آنچه خود هسته گفته. هر دو هر چند ثانیه تازه می‌شوند. در حالت فارسی، پیام های شناخته شده برای نمایش ترجمه می شوند؛ فایل اصلی گزارش تغییر نمی کند و پیام ناشناخته به زبان اصلی می ماند.

---

### 🖥️ ۴.۱۰ سمت سرور

Server-Side: روتر خودش سرور پروکسی می‌شود و گوشی یا لپ‌تاپی که
بیرون از خانه است به آن وصل می‌شود — برای دسترسی به شبکه خانه، برای استفاده
از تونل روتر از هر جا، یا برای رله. سرویس و فایل تنظیمات خودش را دارد
(`/etc/init.d/zirgozar-server` و `/etc/config/zirgozar_server`)، پس ذخیره
یک سرور تونل را ری‌استارت نمی‌کند و سرورها مستقل از کلید اصلی کار می‌کنند.

| گزینه | در فایل | کار آن |
|---|---|---|
| **فعال** | `global.enable` | کلید همه سرورها |
| **پروتکل** | `protocol` | VLESS، VMess، Trojan، Shadowsocks، Socks و HTTP با Xray؛ Hysteria2 و TUIC با sing-box (که باید از «به‌روزرسانی» نصب شده باشد) |
| **پورت شنود** / **فقط روی خود روتر** | `port` / `bind_local` | پورت هر سرور تا وقتی اجرا می‌شود در فایروال باز می‌شود، مگر این‌که فقط روی خود روتر باشد |
| **شناسه / رمز** | `uuid` | برای هر کاربر یکی |
| **امنیت** | `security` | هیچ، TLS (با مسیر فایل گواهی و کلید روی روتر) یا REALITY. REALITY گواهی و دامنه نمی‌خواهد؛ دکمه **ساختن** جفت کلیدش را می‌سازد |
| **روش انتقال** | `transport` | RAW، WebSocket، gRPC، HTTPUpgrade، XHTTP، XDRIVE برای VLESS، mKCP |
| **تنظیمات XDRIVE** | `xdrive_settings`، `vless_decryption`، `vless_encryption` | تنظیمات فضای ذخیره‌سازی و جفت کلید متناظر VLESS؛ فقط encryption در لینک اشتراک قرار می‌گیرد |
| **IPهای مبدا مجاز و مسدود** | `filter_allowed`، `filter_blocked` | فیلتر ورودی Finalmask برای TCP و UDP با IP یا CIDR؛ فهرست مجاز پر، سایر مبداها را رد می‌کند و فهرست مسدود اولویت دارد. هر دو خالی باشند، فیلتر خاموش است. مخصوص سرورهای Xray، با نسخه 26.10.21 یا جدیدتر |
| **خروجی** | `outbound` | ترافیک کسی که وصل می‌شود از کجا بیرون برود: مستقیم، از داخل تونل زیرگذر، از یک سرور SOCKS، یا از یکی از کانفیگ‌های دستی |
| **اجازه دسترسی به شبکه محلی** | `accept_lan` | خاموش باشد، آدرس‌های خصوصی (شبکه خانه و خود روتر) بسته‌اند |
| **آدرس در لینک اشتراک** | `link_address` | آدرس عمومی یا دامنه روتر برای لینک؛ خالی یعنی همان آدرسی که صفحه با آن باز شده |

دکمه **لینک اشتراک‌گذاری** کنار هر سرور، لینک آماده و QR کد آن را نشان
می‌دهد تا در v2rayNG، NekoBox و مانند آن‌ها وارد شود. برای وصل شدن از بیرون،
روتر باید از اینترنت در دسترس باشد: IP عمومی، یا Port Forward روی مودم.

## 🎯 ۵. کانفیگ چطور انتخاب می‌شود

لازم نیست این را بدانید، ولی اگر کنجکاوید: انتخاب در **دو مرحله** انجام می‌شود، و
برای همین چند ثانیه طول می‌کشد نه نیم دقیقه.

۱. **یک هندشیک TCP به همه کانفیگ‌ها**، سی تا سی تا. روی یک فهرست معمولی حدود هشت
   ثانیه طول می‌کشد و یک سوم تا نصف آن‌ها را قبل از هر کار سنگینی کنار می‌گذارد.
   کانفیگی که هندشیک را کامل نکند هیچ چیزی را نمی‌تواند جابه‌جا کند.
۲. **باقی‌مانده‌ها، نزدیک‌ترین‌ها اول، ده تا ده تا** — این بار یک درخواست کامل وب از
   داخل هر کدام. به محض اینکه یکی زیر یک ثانیه برگردد همان انتخاب می‌شود و بقیه
   اصلا اجرا نمی‌شوند.

نتیجه‌ها نگه داشته می‌شوند، پس وقتی کانفیگ انتخاب‌شده بعدا از کار بیفتد، روتر سراغ
بعدی در فهرست می‌رود به‌جای اینکه از اول شروع کند.

> **چرا هندشیک و نه پینگ.** بیشتر این کانفیگ‌ها پشت کلادفلر هستند، جایی که پینگ را
> لبه CDN جواب می‌دهد — که درباره خود سرور چیزی نمی‌گوید. خیلی از سرورهای سالم هم
> اصلا به پینگ جواب نمی‌دهند. پس پینگ کانفیگ‌های خراب را نگه می‌دارد و سالم‌ها را
> دور می‌ریزد. اگر باز هم پینگ می‌خواهید، **مرحله اول** در صفحه فهرست کانفیگ‌هاست.

---

## 📝 ۶. فقط در فایل

این‌ها در هیچ صفحه‌ای نیستند، چون به‌ندرت عوض می‌شوند و اشتباه در آن‌ها بی‌صدا است.

| گزینه | پیش‌فرض | کار آن |
|---|---|---|
| `tproxy_port` `dns_port` `api_port` `bridge_port` `redir_port` | 1082، 1053، 10853، 10808، 1085 | پورت‌هایی که تونل، DNS، آمار، هسته کمکی و REDIRECT روی آن‌ها گوش می‌دهند |
| `sift_timeout` | ۲ ثانیه | مهلت هر هندشیک |
| `test_timeout` | ۶ ثانیه | مهلت هر درخواست کامل |
| `fresh_seconds` | ۳۶۰۰ ثانیه | اندازه‌گیری‌ای که از این جوان‌تر است دوباره انجام نمی‌شود |
| `https_probe` | یک فایل کوچک روی گیت‌هاب | چیزی که بررسی وابستگی‌ها می‌گیرد تا ثابت کند روتر به HTTPS دسترسی دارد |
| `rebind_seeded` | 1 | فهرست Rebind ایرانی یک بار اضافه شده و بی‌اطلاع شما دوباره اضافه نمی‌شود |
| `subs_scheduled` | 1 | یک بار تنظیم می‌شود، وقتی اشتراک‌ها زمان‌بندی جداگانه گرفتند |

کانفیگ‌های دستی و اشتراک‌ها نام ثابت خودشان را دارند (`n…`،
`s…`) و با جایشان در فایل شناخته نمی‌شوند: اگر یکی را اضافه، جابه‌جا یا حذف کنید،
هر تنظیمی که به دیگری اشاره می‌کند همچنان به همان درست اشاره می‌کند.

> ارتقا از ۱.۰: گزینه قدیمی `stats_flush_seconds` دیگر خوانده نمی‌شود — از
> `stats_flush_minutes` استفاده کنید. `ir_dns` به DNS مستقیم تبدیل شد و `autostart`
> به کلید اصلی. فهرست پیش‌فرض همچنان هر ربع ساعت خوانده می‌شود؛ هر اشتراک دیگری
> طبق زمان‌بندی خودش در صفحه اشتراک‌ها.

---

## 🛠️ ۷. اگر کار نکرد

**می‌گوید هنوز فهرست کانفیگی وجود ندارد.** هیچ اشتراکی خوانده نشده و کانفیگی از
خودتان ندارید. اشتراک را در صفحه اشتراک‌ها بررسی کنید یا — مطمین‌تر — یکی از
کانفیگ‌های خودتان را در صفحه کانفیگ‌ها اضافه کنید. روی اینترنت فیلترشده، آدرس
اشتراک معمولا تا تونل وصل نشود باز نمی‌شود، و تونل بدون کانفیگ وصل نمی‌شود؛ یک
کانفیگ از خودتان این دور را می‌شکند.

**می‌گوید کانفیگ‌ها جواب دادند ولی هیچ‌کدام درخواست را کامل نکرد.** کانفیگ‌ها هستند
و چیزی بین شما و آن‌ها ترافیک را متوقف می‌کند. **دوباره انتخاب کن** را بزنید، و اگر
باز همان را گفت، فهرست را عوض کنید.

**می‌گوید هیچ کانفیگی اصلا جواب نداد.** فهرست قدیمی شده، یا اینترنت شما جلوی همه را
گرفته. فهرست پیش‌فرض هر ربع ساعت دوباره خوانده می‌شود و روتر وقتی تونل باید روشن
باشد و نیست خودش را ترمیم می‌کند، پس گاهی جواب صبر کردن است.

**وصل می‌شود ولی یک سایت باز نمی‌شود.** اول ببینید کارت وضعیت واقعا **وصل** می‌گوید.
اگر می‌گوید:

- اگر PassWall2 هم روشن است، خاموشش کنید.
- در مدیریت قوانین **رد کردن QUIC** را روشن کنید. بعضی کانفیگ‌ها UDP را بد جابه‌جا
  می‌کنند و مرورگر روی QUIC گیر می‌کند.
- **دوباره انتخاب کن** را بزنید تا کانفیگ دیگری انتخاب شود.

**بعضی سایت‌ها باز می‌شوند و بعضی نه.** معمولا مشکل پیدا کردن نام‌هاست. ببینید
**روش پیدا کردن دامنه‌ها** در زبانه DNS روی *از راه dnsmasq* باشد.

**نام دستگاه‌های خودم دیگر پیدا نمی‌شوند.** این دقیقا همان چیزی است که *از راه
dnsmasq* جلویش را می‌گیرد؛ *مستقیم داخل تونل* ذاتا این مشکل را دارد.

**جداسازی ایران را روشن کردم و به نظر کاری نمی‌کند.** اگر فایل‌ها دانلود نشده باشند،
کارت وضعیت می‌گوید *جداسازی ایران روشن است ولی داده مسیریابی نیست* و تا آن موقع همه
چیز از تونل می‌رود. آن‌ها را در مدیریت قوانین دانلود کنید. اگر روتر فایل‌های geo
برنامه دیگری را دارد که دسته‌های ایرانی را ندارند، زیرگذر تونل را **بدون**
جداسازی بالا می‌آورد و این را می‌گوید.

**اعداد مصرف روی صفر مانده‌اند.** هسته به رابط آمارش جواب نمی‌دهد. گزارش‌ها را
ببینید.

### کارت وضعیت چه چیزهایی می‌تواند بگوید

پیام کارت وضعیت فقط برای چیزی است که شما باید کاری برایش بکنید. علامت × گوشه‌اش آن
را می‌بندد، و اگر همان اتفاق دوباره بیفتد برمی‌گردد.

| پیام (خلاصه) | یعنی چه | چه کنید |
|---|---|---|
| پسوال هم در روتر شما فعال است | دو پروکسی شفاف روی یک روتر | پسوال را خاموش کنید |
| داده‌های مسیریابی روی روتر درست نیستند | فایل‌های geo بدون دسته‌های ایرانی. تونل **بدون** جداسازی بالا آمد | داده‌های مسیریابی را در مدیریت قوانین به‌روز کنید |
| مسیریابی ایران روشن است اما geoip و geosite روی روتر نیستند | جداسازی روشن است و فایل‌ها دانلود نشده‌اند | به‌روزرسانی دستی در مدیریت قوانین |
| فایلی که برگشت داده مسیریابی قابل خواندن نیست | آدرس اشتباه، یا یک صفحه خطا برگشته. فایل قبلی نگه داشته شد | آدرس را در مدیریت قوانین بررسی کنید |
| جای کافی در … نیست | فضای خالی برای آن دانلود کافی نیست | از فایل‌های `-lite` استفاده کنید یا جا باز کنید |
| دانلود نشد / ناقص به نظر می‌رسد | آدرس در دسترس نبود یا فایل نیمه‌کاره رسید | اتصال را بررسی کنید و دوباره بزنید |
| *هسته* برای پردازنده این روتر نسخه‌ای منتشر نمی‌کند | آن پروژه برای این معماری نسخه‌ای ندارد | اینجا نصب نمی‌شود |
| *هسته* دانلودشده نصب نشد | فایل رسید ولی مال این پردازنده نیست یا خراب است | دوباره امتحان کنید |
| برای نصب Xray برنامه unzip لازم است | ابزار باز کردن فایل فشرده نیست | در صفحه به‌روزرسانی، نصب |
| به گیت‌هاب دسترسی نبود تا آخرین نسخه sing-box پیدا شود | این کار اتصال سالم خودش را لازم دارد | اول تونل را وصل کنید و دوباره امتحان کنید |
| روی این روتر نه opkg هست و نه apk | چیزی خودکار نصب نمی‌شود | دستی نصب کنید |
| این‌ها نصب نشدند: … | نام پکیج‌ها روی این بیلد OpenWrt فرق دارد | دستی نصب کنید |
| کرنل این روتر با nftables یا iptables پروکسی شفاف انجام نمی‌دهد | ماژول tproxy نیست | در صفحه به‌روزرسانی، نصب |
| روی این روتر نه nftables هست و نه iptables | فایروالی برای منحرف کردن ترافیک نیست | ایمیج روتر ناقص است |
| پوشه تنظیمات اضافه dnsmasq پیدا نشد | نام‌ها مستقیم از تونل پیدا می‌شوند و نام دستگاه‌های محلی پیدا نمی‌شود | معمولا کاری لازم نیست |
| هیچ کانفیگی در فهرست جواب نداد | فهرست قدیمی است، یا اینترنت جلوی همه را گرفته | اشتراک‌ها را دوباره بخوانید یا یک کانفیگ از خودتان اضافه کنید |
| … به هندشیک جواب دادند ولی هیچ‌کدام درخواست را کامل نکرد | کانفیگ‌ها هستند، ترافیک رد نمی‌شود | دوباره انتخاب کن، یا فهرست دیگر |
| هیچ چیز در فهرست به‌عنوان کانفیگ خوانده نشد | قالب اشتراک شناخته نشد | اشتراک را بررسی کنید |
| هنوز فهرست کانفیگی وجود ندارد | هیچ اشتراکی خوانده نشده و کانفیگی از خودتان نیست | یکی در صفحه کانفیگ‌ها اضافه کنید |
| کانفیگ انتخاب‌شده hysteria2، tuic یا AmneziaWG است که Xray بلد نیست | sing-box لازم است تا کل تونل را اجرا کند | sing-box (برای AmneziaWG، sing-box-lx) را در صفحه به‌روزرسانی نصب کنید |
| کانفیگ انتخاب‌شده OpenVPN است و OpenVPN روی روتر نیست | کانفیگ OpenVPN فقط با خود OpenVPN اجرا می‌شود | زیر «پیش‌نیازهای روتر» دکمه نصب پیش‌نیازها را بزنید |
| هسته کمکی پروتکل این کانفیگ اجرا نشد | هسته کمکی اجرا نشد | گزارش‌ها را ببینید یا کانفیگ دیگری انتخاب کنید |
| کانفیگ وارپ به warp-plus نیاز دارد | warp-plus نصب نیست | در صفحه به‌روزرسانی نصبش کنید |
| وارپ وصل نشد | warp-plus در دو دقیقه پورتش را باز نکرد: اکانت ساخته نشد، یا هیچ آدرس وارپی جواب نداد | با کانفیگ دیگری وصل شوید و «ثبت‌نام» را بزنید؛ اسکن را روشن کنید یا اندپوینت دیگری بدهید |
| برای ثبت‌نام اکانت وارپ به کلودفلر دسترسی نبود | آدرس ثبت‌نام کلودفلر از اینجا بسته است | با کانفیگ دیگری وصل شوید، با پروکسی خود روتر روشن، و دوباره «ثبت‌نام» را بزنید |
| هسته تونل اجرا شد اما هیچ اتصالی نپذیرفت | هسته اجرا شد و گوش نداد | گزارش‌ها را ببینید |
| کانفیگ انتخاب‌شده در تنظیمات پایه خوانده نمی‌شود | کانفیگی که به‌عنوان کانفیگ تنظیم شده خراب است یا دیگر نیست | کانفیگ دیگری انتخاب کنید یا آن را روی خودکار بگذارید |

**می‌خواهم ببینم واقعا چه اتفاقی می‌افتد:**

<div dir="ltr">

```sh
logread -e zirgozar
cat /tmp/log/zirgozar.log
/usr/libexec/zgz-rules status
```

</div>

آخری می‌گوید قوانین فایروال واقعا بار شده‌اند یا نه و چقدر ترافیک از آن‌ها گذشته.

پشتیبانی و تماس: [t.me/routekernel1](https://t.me/routekernel1)

---

## 🗑️ ۸. حذف برنامه

<div dir="ltr">

```sh
/etc/init.d/zirgozar-server stop
/etc/init.d/zirgozar stop
apk del luci-app-zirgozar 2>/dev/null || true
apk del zirgozar
```

</div>

روی ۲۴.۱۰ و ۲۳.۰۵ به‌جای `apk del` بنویسید `opkg remove`.

این کار سرویس، هسته و صفحه‌های وب را حذف می‌کند و کارهای زمان‌بندی‌شده را از crontab
روتر بیرون می‌برد. تنظیمات شما **عمدا** باقی می‌ماند. برای پاک کردن آن‌ها هم، از جمله
داده‌های مسیریابی، اشتراک‌های نگه‌داشته‌شده و تاریخچه مصرف:

<div dir="ltr">

```sh
rm -rf /etc/config/zirgozar /etc/config/zirgozar_server /etc/zirgozar
```

</div>

به هیچ چیز دیگری دست زده نمی‌شود: نه منطقه فایروال، نه تنظیمات پکیج دیگر. قوانین
مسیریابی فقط تا وقتی تونل روشن است وجود دارند.

---

اگر می‌خواهید با جزییات بیشتر بدانید چه چیزهایی بررسی شد، چه چیزی اشتباه بود و هر کدام
چطور تایید شد — و چه چیزی هنوز تست ندارد — [AUDIT.md](AUDIT.md) را ببینید.

---

## ⚖️ ۹. مجوز

GNU AGPL، نسخه ۳ یا هر نسخه بعدی (AGPL-3.0-or-later) — متن کامل در [LICENSE](LICENSE). مجوز Xray-core را نویسندگان خودش تحت MPL-2.0 داده‌اند.

اگر نسخه تغییریافته‌ای را روی روتری اجرا می‌کنید که دیگران از راه شبکه از صفحه وب آن استفاده می‌کنند، AGPL از شما می‌خواهد کد منبع همان نسخه را در اختیارشان بگذارید.

---

## 🙏 ۱۰. تشکر

از [پترنی ها](https://github.com/patterniha) برای توسعه
[نسخه پترنی ها از Xray-core](https://github.com/patterniha/Xray-core) و
[PattN](https://github.com/patterniha/PattN) سپاسگزاریم؛ پشتیبانی از این هسته و
خواندن تنظیمات لینک های PattN در زیرگذر از کارهای این پروژه ها بهره می برد.

فهرست پیش‌فرض کانفیگ‌ها مجموعه **TOP 100** است که
[@Raydikalx](https://t.me/raydikalx) منتشر می‌کند، به‌عنوان کاری رایگان و عمومی
جمع‌آوری و به‌روز نگه داشته می‌شود. داده‌های مسیریابی ایران از
[Chocolate4U/Iran-v2ray-rules](https://github.com/Chocolate4U/Iran-v2ray-rules)
است. موقعیت‌یاب از [Geoview](https://github.com/snowie2000/geoview) استفاده می‌کند.
کانفیگ‌های وارپ را [warp-plus](https://github.com/bepass-org/warp-plus) اجرا می‌کند.
این پروژه هیچ سروری ندارد: چیزی را که این فهرست‌ها ارایه می‌دهند اندازه می‌گیرد و هر
کدام را که از جای شما سریع‌تر جواب بدهد انتخاب می‌کند. بدون آن‌ها اینجا چیزی برای
اندازه‌گیری نبود. سپاس.

---

## 💚 ۱۱. حمایت

اگر زیرگذر به کارتان آمده، می‌توانید با واریز تتر از این پروژه حمایت کنید:

**USDT (تتر) — فقط شبکه BEP20 (BSC)**

<div dir="ltr">

```
0x56daaa6b76d88ee0c8dba8042121f4b77de0a813
```

</div>

> [!WARNING]
> این آدرس فقط برای واریز تتر در شبکه BEP20 (BSC) است. واریز ارز دیگر یا از شبکه دیگر به این آدرس از دست می‌رود.


</div>