README.fa.md
July 8, 2026 · View on GitHub
پروژهٔ متنباز اصلی: https://github.com/zhangjh/FlowZ
ساختهشده پیرامون: راهاندازی ساده · قوانین شفاف · جابجایی بدون قطعی · یکبار اجازه بده، بدون درخواست مجدد.
🌟 نکات برجسته
- یکبار اجازه بده، دیگر هرگز — یک daemon ریشه در macOS / یک سرویس سیستمی در Windows فقط یکبار نصب میشود؛ پس از آن روشن/خاموش کردن TUN، تعویض نودها و خروج همگی بدون درخواست انجام میشوند.
- بدون قطع اتصال قوانین را ویرایش کن — تغییر مقادیر تطبیق یک قانون که از قبل فعال است بیدرنگ و بدون هیچ وقفهای از طریق بارگذاری مجدد گرم محلی rule-set اعمال میشود؛ تنها تغییرات ساختاری هسته را راهاندازی مجدد میکنند (با debounce، فقط یکبار راهاندازی مجدد میشود).
- هر پروتکلی، هسته منبع حقیقت است — یک JSON از نوع outbound مربوط به sing-box را بچسبان و همانجا کار میکند؛ سازگاری هنگام ذخیره در برابر هستهٔ در حال اجرا بررسی میشود. برای پروتکلهایی که هستهٔ رسمی پشتیبانی نمیکند، میتوانی بهصورت دستی یک هستهٔ fork شخصثالث را جایگزین کنی — FlowZ این fork را تشخیص میدهد و بهروزرسانی آنلاین را غیرفعال میکند تا از آن محافظت کند.
- شبکهٔ مش بدون دردسر — WireGuard / WARP (ثبتنام ناشناس با یک کلیک) / Tailscale (ورود تعاملی از طریق مرورگر) نودهای درجهیک هستند که میتوانی آنها را انتخاب، مسیریابی و بهصورت گرم جابجا کنی.
- بدون باقیمانده هنگام خروج — پاکسازی چندسکویی فرایند sing-box / آداپتور مجازی / پراکسی سیستمی، با پشتیبانگیری برای کرش، خروج از حساب و خاموش شدن.
- مدیریت بومی sing-box 1.14 — هستهٔ 1.14 همراه، API مدیریت بومی gRPC بهعلاوهٔ یک پنل داشبورد رسمی اختیاری.
✨ امکانات
پروتکلها
- پراکسی: VLESS / VMess / Trojan / Shadowsocks / Snell / Hysteria2 / TUIC / AnyTLS / NaiveProxy / SOCKS / HTTP / SSH
- مش: WireGuard / Cloudflare WARP / Tailscale
- پروتکل سفارشی + تعویض هسته: یک JSON از نوع outbound مربوط به sing-box را بچسبان؛ هنگام ذخیره، اصل «هسته منبع حقیقت است» سازگاری را بهصورت زنده بررسی میکند. برای پروتکلهایی که هستهٔ رسمی ندارد، آن را بهصورت دستی با یک هستهٔ fork شخصثالث که پشتیبانی میکند جایگزین کن (FlowZ بهصورت خودکار forkها را تشخیص میدهد و بهروزرسانی آنلاین را غیرفعال میکند تا روی آنها بازنویسی نشود).
هسته
- هستهٔ یکپارچهٔ sing-box 1.14، همراه بهازای هر سکو (Windows / macOS arm64+x64 / Linux)
- ضدسانسور: TLS Fragment (سراسری) / ECH / Multiplex / httpupgrade / Shadow-TLS (قابل انباشت روی SS2022 و موارد دیگر) / Hysteria2 port hopping (بهصورت خودکار از اشتراکها تشخیص داده میشود، برخی با کلیدهای دستی)
- Block QUIC (مستقل از نود): رد کردن QUIC/UDP 443 مقصد پراکسی برای وادار کردن مرورگرها به بازگشت به TCP، که گیر کردن صفحات ناشی از نودهایی که UDP relay آنها در دسترس نیست را برطرف میکند
- محافظت در برابر نشت WebRTC (فقط TUN): خاموش / از طریق پراکسی / مسدود کردن
حالتهای پراکسی و در اختیار گرفتن
- پراکسی شفاف TUN + حالت پراکسی سیستمی + پراکسی فقط محلی
- حالتهای مسیریابی: سراسری (Global) / هوشمند (Smart، تفکیک خودکار، توصیهشده) / مستقیم (Direct)
- جابجایی گرم بدون درز نود: جابجایی گرم selector، بهصورت پیشفرض graceful و بدون قطع اتصالها؛ گزینهٔ اختیاری «قطع اتصالهای موجود هنگام جابجایی»
- زنجیرهٔ پراکسی (پراکسی بالادست)
مش
- WireGuard / WARP / Tailscale بهعنوان نودهای نقطهٔ پایانی، دقیقاً مانند پراکسیهای معمولی رفتار میشوند (قابل انتخاب، مسیریابی و جابجایی گرم)
- ثبتنام یککلیکی WARP: ثبت دستگاه بهصورت ناشناس، لغو ثبت فرصتطلبانه هنگام حذف نود (بدون یتیم ماندن)
- ورود تعاملی Tailscale: نیازی به authKey نیست — روی ورود کلیک کن، در مرورگر اجازه بده؛ وضعیت ورود تأیید شده و انقضا نمایش داده میشود
- کلید اجازهٔ دسترسی به اینترنت: یک نود مش میتواند یک peer فقط درونشبکهای یا یک exit کامل باشد
- مش معکوس (نیازمند TUN + helper): بهعنوان یک subnet router عمل کن / از دستگاههای دیگر روی مش قابل دسترس باش
قوانین مسیریابی
- قوانین چندشرطی: دامنه / IP / پورت / فرایند / geosite / geoip / rule-set و ۱۵ نوع شرط، ترکیبشده با OR/AND
- سیستم منابع قانون: فهرستهای منتخب داخلی geosite/geoip + دانلود rule-set از راه دور با فرمت
.srs/.jsonو بهروزرسانیهای دورهای - ویرایش مقادیر قانون نیازی به راهاندازی مجدد ندارد: تغییر مقادیر تطبیق یک قانون فعال (مثلاً افزودن یک دامنه) بهصورت زنده از طریق بارگذاری مجدد گرم محلی rule-set اعمال میشود؛ تغییرات ساختاری (افزودن/حذف/مرتبسازی مجدد، تغییر action) یکبار راهاندازی مجدد میکنند (با debounce)
- مسیریابی برنامه: تخصیص پراکسی / مستقیم / مسدود بر اساس نام یا مسیر فرایند
- جستجوی فهرست + مرتبسازی با کشیدن و رها کردن (بالا / پایین / جابجایی / دسترسپذیری صفحهکلید) + نام یادداشت اجباری + قرار دادن نشانگر برای گسترش کامل قانون
DNS و تفکیک
- شتابدهی FakeIP + تفکیک بر اساس منطقه (مستقیم-داخلی / معکوس «بازگشت به خانه»)
- در اختیار گرفتن DNS: حالت TUN، DNS سیستم را با پشتیبانگیری ایمن در برابر کرش در اختیار میگیرد
- بالادستهای DoH، ضدِ حلقه برای دامنهٔ نود، رهگیری نشت DoH خصوصی
اشتراکها
- وارد کردن اشتراک (JSON مربوط به sing-box و فرمتهای رایج اشتراکگذاری)
- ورود دستی: افزودن نودها به «دستی» از فایل یا متن چسباندهشده (پیکربندی sing-box / Xray / Clash، Base64، لینکهای اشتراک)؛ proxy-providers مربوط به Clash بهعنوان اشتراک وارد میشوند (بهصورت پیشفرض بدون بهروزرسانی خودکار و مستقیم)
- زمانبندی بهروزرسانی خودکار (بهصورت پیشفرض روشن): جبران اشتراکهای قدیمی هنگام راهاندازی + بررسیهای دورهای + عقبنشینی نمایی + یک کلید «بهروزرسانی از طریق پراکسی»؛ بهروزرسانیها هرگز اتصال جاری را قطع نمیکنند
- تطبیق پایدار اثرانگشت نود: بهروزرسانیهای اشتراک، id محلی / نود انتخابشده را حفظ میکنند، بدون قطع اتصال
- شتابدهی آینهٔ GitHub: دانلود هسته / منابع قانون / داشبورد میتواند از طریق آینهٔ gh-proxy مسیریابی شود
رابط کاربری و تجربه
- سیستم طراحی Conduit: تم دوگانهٔ مبتنی بر token (روشن / تیره) + فونتهای خودمیزبان
- پنج زبان: چینی سادهشده / چینی سنتی / انگلیسی / Русский / فارسی (با RTL)
- توپولوژی اتصال · آمار ترافیک زنده و آزمونهای سرعت · نمایش IP خروجی
- حالت حریم خصوصی (قفل با رمز عبور؛ هش scrypt در یک فایل جداگانه ذخیره میشود، نه در پیکربندی)
- حالت بیکاری خودکار (بیکاری واقعی ورودی سیستم، حالت سبک / حریم خصوصی را فعال میکند)
- ماندگاری در نوار منوی macOS: بستن پنجره آن را از Dock پنهان میکند و فقط نوار منو باقی میماند؛ از نوار منو / Spotlight دوباره باز کن
- اجرا هنگام بوت + اتصال خودکار + شروع بیصدا
مدیریت و عیبیابی
- API مدیریت بومی gRPC مربوط به sing-box 1.14 (جایگزین clash_api): وضعیت / اتصالها / گروهها / جابجایی گرم نود همگی از طریق صفحهٔ بومی انجام میشوند
- یکپارچهسازی داشبورد رسمی sing-box (راهِ فرار اختیاری): هنگام فعالسازی، هسته پنل رسمی را در
/dashboard/برای کاربران حرفهای ارائه میدهد - خروجی گرفتن گزارش عیبیابی: جمعآوری عیبیابی پاکسازیشده با یک کلیک برای رفع مشکل
سیستم و قابلیت اطمینان
- زنجیرهٔ امتیاز بدون درخواست: daemon ریشه در macOS · سرویس LocalSystem در Windows + named pipe / socket · احراز هویت با token
- بدون باقیمانده هنگام خروج: پاکسازی چندسکویی فرایندها / آداپتورهای مجازی / رجیستری پراکسی سیستمی، با پشتیبانگیری برای کرش / خروج از حساب / خاموش شدن
- بهروزرسانی خودکار: تأیید یکپارچگی + پیشبررسی هنگام راهاندازی + بازگشت خودکار هنگام شکست + رد کردن نسخههای معیوب شناختهشده
- چندسکویی: Windows / macOS (Apple Silicon + Intel) / Linux
🖼 تصاویر
تصاویر از دادهٔ نمایشی داخلی استفاده میکنند، نه اشتراکها / نودهای واقعی. رابط کاربری نمایشدادهشده نسخهٔ چینی است؛ چیدمان در همهٔ زبانها یکسان است.
خانه · نمای کلی اتصال
وضعیت اتصال WYSIWYG، جابجایی نود، نرخهای زنده و توپولوژی اتصال. تم دوگانهٔ روشن / تیره:
| روشن | تیره |
|---|---|
![]() | ![]() |
نودها و اشتراکها
وارد کردن اشتراک با یک کلیک، مدیریت کارت نود، نشانهای پروتکل، آزمونهای سرعت دستهای و مرتبسازی:
مسیریابی برنامه · قوانین مسیریابی
تخصیص پراکسی / مستقیم / مسدود بهازای هر برنامه؛ قوانین از ترکیبهای چندشرطی پشتیبانی میکنند (دامنه / IP / پورت / فرایند / geosite و ۱۵ نوع، OR/AND) + مرتبسازی با کشیدن + ویرایش مقادیر بدون راهاندازی مجدد:
| مسیریابی برنامه | قوانین مسیریابی |
|---|---|
![]() | ![]() |
منابع قانون
فهرستهای منتخب داخلی geosite/geoip + دانلود rule-set از راه دور با فرمت .srs و بهروزرسانیهای دورهای:
عیبیابی اتصال · گزارشهای زنده
نرخ / اصابت قانون / زنجیرهٔ نود بهازای هر اتصال؛ گزارشهای زندهٔ سطحبندیشده:
| اتصالها | گزارشها |
|---|---|
![]() | ![]() |
تنظیمات · یکبار اجازه بده، بدون درخواست مجدد
تنظیمات دقیق؛ پس از نصب یکبارهٔ helper / سرویس امتیاز، روشن/خاموش کردن TUN نیازی به اجازهٔ بیشتر ندارد (یک UAC در Windows / یک رمز عبور در macOS):
⚠️ محدودیتهای شناختهشده و نکات رفتاری
لطفاً پیش از باز کردن یک issue این بخش را بخوان — موارد زیر بنا به طراحی هستند، نه باگ.
یک اتصال مجدد کوتاه (~۱ ثانیه) هنگام تغییرات ساختاری پیکربندی، انتظار میرود
هستهٔ زیربنایی sing-box هیچ APIای برای افزودن/حذف یک outbound یا بارگذاری مجدد پیکربندی کامل آن در زمان اجرا ندارد (API سازگار با Clash آن تنها میان نودهای از پیش بارگذاریشده جابجا میشود؛ PUT /configs یک no-op است). بنابراین FlowZ تغییرات را به دو دسته تقسیم میکند:
- زنده، بدون وقفه — اتصالها هرگز قطع نمیشوند:
- جابجایی نود انتخابشده (جابجایی گرم selector).
- ویرایش مقادیر تطبیق یک قانون که از قبل فعال است (مثلاً افزودن یک دامنه به فهرست آن) — از طریق بارگذاری مجدد گرم محلی rule-set اعمال میشود.
- راهاندازی مجدد هسته ~۱ ثانیه (با debounce؛ چندین ویرایش سریع در یکی ادغام میشوند، اتصالها بهطور لحظهای قطع و سپس بهصورت خودکار از سر گرفته میشوند):
- افزودن / حذف / مرتبسازی مجدد قوانین، یا تغییر action / target یک قانون.
- تعویض حالت مسیریابی (سراسری / هوشمند / مستقیم)، تغییر پورتهای محلی یا تنظیمات TUN/inbound.
- ویرایش نودی که در حال حاضر ارجاع داده شده است، یا یک بهروزرسانی اشتراک که نودهای ارجاعشدهٔ جدید را معرفی میکند.
این راهاندازی مجدد سریع است و اتصالها خودبهخود بازمیگردند. لطفاً دربارهٔ یک وقفهٔ کوتاه هنگام تغییر این تنظیمات issue ثبت نکن — این موضوع ذاتی نحوهٔ اعمال تغییرات ساختاری توسط sing-box است.
سایر رفتارهای مورد انتظار
- Tailscale: یک نود بهازای هر دستگاه. همهٔ حسابهای Tailscale در
100.64.0.0/10مشترک هستند؛ چندین نود Tailscale یکدیگر را بازنویسی میکنند. - NaiveProxy به کتابخانهٔ Cronet نیاز دارد در Linux/Windows (هنگام build دریافت میشود). اگر موجود نباشد، نودهای naive بهصورت خودکار رد میشوند — سایر پروتکلها تحت تأثیر قرار نمیگیرند؛ اگر نود انتخابشده naive باشد، یک اعلان صریح دریافت میکنی.
- حالت پراکسی سیستمی نمیتواند DNS را بهطور کامل کنترل کند یا نشت QUIC را مسدود کند. تنها حالت TUN، DNS سیستم را در اختیار میگیرد و میتواند QUIC مقصد پراکسی را رد کند. اگر به DNS / QUIC ضدنشت نیاز داری از TUN استفاده کن.
- Block QUIC تنها بر QUIC مقصد پراکسی اثر میگذارد. نودهایی که از طریق QUIC شمارهگیری میکنند (hysteria2 / tuic / naive) تحت تأثیر قرار نمیگیرند — این قابلیت UDP 443 مقصد پراکسی را رد میکند تا مرورگرها را به TCP بازگرداند.
- پیام «FlowZ آسیب دیده است» در macOS روی یک build بدون امضا ← ویژگی قرنطینه را پاک کن:
xattr -cr /Applications/FlowZ.app.
📋 الزامات سیستم
| سکو | الزام |
|---|---|
| Windows | Windows 10 (1809+) / Windows 11، x64 |
| macOS | macOS 11 (Big Sur)+، Apple Silicon یا Intel |
| Linux | x86_64، AppImage / .deb (حالت TUN به یک اجازهٔ یکبارهٔ pkexec setcap نیاز دارد) |
📥 نصب
آخرین build را از Releases دانلود کن.
| سکو | نصب |
|---|---|
| Windows | نصبکنندهٔ .exe را اجرا کن، یا نسخهٔ قابلحمل portable.exe |
| macOS | فایل .dmg را باز کن و به Applications بکش؛ هر دو نسخهٔ arm64 / Intel منتشر شدهاند (naive روی Intel بدون دردسر کار میکند) |
| Linux | فایل AppImage را مستقیماً اجرا کن، یا .deb را نصب کن |
اگر macOS پیام «FlowZ آسیب دیده است» را گزارش داد، ویژگی قرنطینه را پاک کن:
xattr -cr /Applications/FlowZ.app
🚀 شروع سریع
- یک نود اضافه کن — یک پروتکل را در صفحهٔ «Servers» انتخاب کن، با «Manual Import» نودها را از فایل یا متن (sing-box / Xray / Clash / Base64 / لینک اشتراک) وارد کن، یا یک لینک اشتراک را در بخش «Subscriptions» وارد کن.
- یک حالت انتخاب کن — یک حالت مسیریابی را در صفحهٔ خانه انتخاب کن (پیشفرض: هوشمند / تفکیک خودکار)؛ اگر TUN نمیخواهی، در تنظیمات به «حالت پراکسی سیستمی» جابجا شو.
- پراکسی را فعال کن — روی «Enable proxy» در صفحهٔ خانه کلیک کن.
- (اختیاری) قوانین را پیکربندی کن — قوانین سفارشی / rule-setهای ارجاعشده را در «Routing rules» اضافه کن؛ سیاست بهازای هر برنامه را در «App routing» تخصیص بده.
🛠 ساخت از منبع
git clone https://github.com/dododook/FlowZ.git
cd FlowZ
npm install
npm run dev # development (Vite + Electron hot reload)
npm run build # compile main process + renderer
npm run package:win # Windows installer + portable
npm run package:mac # macOS (arm64 + x64, incl. cross-compiled root helper)
npm run package:linux # Linux (AppImage + deb)
package:mac/package:winپیش از بستهبندی،build:helperرا اجرا میکنند (کامپایل متقاطع Go برای helper امتیاز).- کتابخانهٔ Cronet مربوط به NaiveProxy هنگام بستهبندی توسط
npm run fetch:cronetدریافت میشود (به «نکات NaiveProxy» در ادامه مراجعه کن).
🛡 نکات پیشرفته
جابجایی بدون درز نود
جابجایی گرم selector بهصورت پیشفرض: جابجایی نودها هسته را راهاندازی مجدد نمیکند، اتصالهای موجود تا زمانی که بهصورت طبیعی بسته شوند زنده میمانند، و اتصالهای جدید از نود جدید استفاده میکنند (graceful، بدون قطعی). گزینهٔ پیشرفتهٔ «قطع اتصالهای موجود هنگام جابجایی» (بهصورت پیشفرض خاموش) قطع/بازسازی را اجباری میکند. ویرایش مقادیر تطبیق یک قانون فعال بدون هیچ راهاندازی مجددی از طریق بارگذاری مجدد گرم محلی rule-set اعمال میشود؛ تغییرات بینحالتی / پورت / TUN / تغییرات ساختاری قانون (افزودن/حذف/مرتبسازی مجدد/تغییر action) یک راهاندازی مجدد را فعال میکنند (چندین ویرایش با debounce در یکی ادغام میشوند).
مش
WireGuard / WARP / Tailscale بهعنوان نودهای نقطهٔ پایانی میپیوندند و مانند پراکسیهای معمولی رفتار میکنند — قابل انتخاب، قابل هدفگیری توسط قانون، قابل جابجایی گرم.
- WARP: ثبتنام ناشناس با یک کلیک؛ نود exit خالص، چند تا را بهعنوان پشتیبان / failover اضافه کن (هر بار فقط یکی فعال).
- Tailscale: مبتنی بر حساب، روی «login» کلیک کن برای اجازه از طریق مرورگر (authKey نیز پشتیبانی میشود)؛ فقط یک نود Tailscale بهازای هر دستگاه — همهٔ حسابها در
100.64.0.0/10مشترک هستند، چندتا یکدیگر را بازنویسی میکنند. - اجازهٔ دسترسی به اینترنت: روشن = exit کامل؛ خاموش = فقط درونشبکهای.
- مش معکوس (نیازمند TUN + helper): یک رابط واقعی در هسته بساز تا این دستگاه از سایر دستگاههای مش قابل دسترس باشد / بهعنوان یک subnet router عمل کند؛ بهصورت پیشفرض خاموش (فضای کاربر فقط خروجی است، بدون امتیاز).
Block QUIC (پیشرفته)
QUIC مقصد پراکسی (UDP 443) را رد میکند تا مرورگرها را به TCP بازگرداند، که «گیر کردن / قطع شدن صفحات ناشی از در دسترس نبودن UDP relay نود» را برطرف میکند. مستقل از نود؛ نودهایی که خودشان از طریق QUIC شمارهگیری میکنند (hysteria2 / tuic / naive) تحت تأثیر قرار نمیگیرند. بهصورت پیشفرض خاموش.
ضدسانسور
- TLS Fragment (کلید سراسری): TLS ClientHello را تقسیم میکند تا از مسدودسازی DPI مبتنی بر SNI فرار کند. روی همهٔ نودهای TCP-TLS اعمال میشود؛ hysteria2 / tuic / naive بهصورت خودکار مستثنا میشوند.
- ECH / Multiplex / httpupgrade / Hysteria2 port hopping: بهصورت خودکار از اشتراک JSON مربوط به sing-box تشخیص داده میشود (Multiplex برای نودهای reality+vision بهصورت خودکار رد میشود؛ port hopping از چندین بازه پشتیبانی میکند).
داشبورد رسمی sing-box (اختیاری)
هنگام فعالسازی در تنظیمات، هسته پنل رسمی sing-box را در /dashboard/ روی پورت API مدیریت ارائه میدهد. تنها هنگامی که پراکسی در حال اجرا است در دسترس است، مستقل از حالت پراکسی / مسیریابی. داراییهای پنل هنگام اولین استفاده دانلود میشوند (میتوانند از طریق آینهٔ GitHub مسیریابی شوند).
⚠️ کتابخانهٔ هستهٔ NaiveProxy (naive)
outbound مربوط به naive از کتابخانهٔ شبکهٔ Cronet مربوط به Chromium برای اثرانگشتهای همانند مرورگر استفاده میکند؛ نحوهٔ لینکسازی بهازای هر سکو متفاوت است:
- Linux / Windows: Cronet یک کتابخانهٔ پویا است (
libcronet.so/libcronet.dll)، که توسطnpm run fetch:cronetاز SagerNet/cronet-go دریافت و در نصبکننده گنجانده میشود (بزرگ؛ commit نمیشود، هنگام build دریافت میشود). - macOS (arm64 و x64): Cronet بهصورت استاتیک در هستهٔ sing-box لینک میشود (CGO)؛ naive بدون دردسر کار میکند، بدون کتابخانهٔ خارجی.
در سکوها/معماریهایی که فاقد Cronet هستند، نودهای naive بهصورت خودکار رد میشوند (سایر پروتکلها تحت تأثیر قرار نمیگیرند؛ اگر نود انتخابشده naive باشد یک اعلان روشن دریافت میکنی).
🔧 پشتهٔ فناوری
- Electron 42 + React 19 + TypeScript
- sing-box 1.14 (هستهٔ پراکسی، همراه بهازای هر سکو)
- مدیریت: API بومی gRPC مربوط به sing-box 1.14 (جایگزین clash_api)
- Tailwind CSS + Radix UI · سیستم طراحی Conduit (تم دوگانهٔ مبتنی بر token + فونتهای خودمیزبان)
- Vite (build) / electron-builder (بستهبندی)
- Go (helper امتیاز macOS · سرویس امتیاز Windows)
📄 مجوز
MIT License
⚠️ سلب مسئولیت
این نرمافزار تنها برای یادگیری و پژوهش است. قوانین و مقررات محلی خود را رعایت کن. تمام پیامدهای استفاده از این نرمافزار بر عهدهٔ توست.





