Skip to content

🚀 Nova v3.8.1

Choose a tag to compare

@iiviirv iiviirv released this 22 Jun 15:58
30acdb4

Nova Proxy V3.8.1

🚀 Release Notes — v3.8.1
📅 Release Date: 2026-06-22

✨ Overview

Version 3.8.1 is a small, focused follow-up to 3.8.0 with two opt-in additions for users on restrictive networks. It adds a real-time, mid-session quota cutoff — an over-limit user is now dropped the moment they cross their cap during a live connection, not just at the next reconnect — and it makes the panel's TLS toggle functional: turning TLS off now generates non-TLS configs on Cloudflare's plain-HTTP ports as a fallback for networks where TLS/443 is filtered. Both are safe/off by default, and everything from V3.0–3.8.0 is retained.

Upgrade path: drop-in replacement for worker.js. No config, KV, or D1 changes required. Installs on 3.8.0 will see the update banner and can upgrade in one click from Settings → Update panel.

✨ New Features

⏱ Real-Time (Mid-Session) Quota Cutoff

Previously an over-quota user was blocked only when a new connection started, so a long-lived session could keep running past the limit. Now the connection is terminated the instant the user crosses their data or daily quota, mid-transfer. The check runs on the relay against the in-memory usage cache — no extra KV/D1 reads and no added sub-requests, so it carries no suspension risk and adds no measurable overhead. It complements (does not replace) the existing connect-time quota block.

🔓 Optional Non-TLS Mode (TLS toggle now functional)

The TLS switch in Settings → Security is now wired into config generation. Leave it on for normal TLS configs (default — unchanged). Turn it off and Nova generates configs on Cloudflare's plain-HTTP ports (443→80, 2053→2052, 2083→2082, …) with security=none, dropping the TLS-only parameters (SNI, fingerprint, ECH, fragment). This is a fallback for networks that throttle or filter TLS/443. It is less private (DPI-visible), so enable it only when TLS isn't getting through. The behaviour mirrors the non-TLS handling Nova already uses for Shadowsocks.

🐛 Fixes & Improvements

  • Dead TLS toggle fixed. The Security → TLS switch existed in the panel but the Worker ignored it. It now drives TLS / non-TLS config generation as described above, and its description was updated (EN/FA) to explain the trade-off.

⚠️ Scope & Testing Notes

  • Non-TLS output applies to the base64 subscription and the main config link. Clash and sing-box subscriptions are produced by the external subconverter and remain TLS.
  • Non-TLS is a connectivity fallback, not a default — keep TLS on unless port 443 is the problem on your network.
  • Test the non-TLS path on a real device against your live deployment before relying on it.

📁 Worker Files

worker.js — single obfuscated Worker (string-array obfuscation, browser-no-eval) to help avoid Cloudflare Error 1101; the cloudflare:sockets import is preserved; the dashboard is served from public/ (or via an ASSETS binding). public/version.json carries version 3.8.1 for the in-app update check.

📝 Deployment Notes

  • Deploy worker.js; publish public/version.json (version 3.8.1) so existing installs see the update banner.
  • Re-upload the panel (admin/index.html) so the TLS toggle's updated description appears.
  • No config/KV/D1 changes are required; all V3.0–3.8.0 functionality is retained.

Iran یادداشت انتشار — نسخه ۳.۸.۱

📅 تاریخ انتشار: ۱۴۰۵/۰۴/۰۱

✨ خلاصه

نسخه ۳.۸.۱ یک به‌روزرسانی کوچک و متمرکز روی نسخه ۳.۸.۰ است با دو افزودنیِ اختیاری برای کاربران در شبکه‌های محدودشده. این نسخه یک قطع سهمیهٔ بلادرنگ (وسط نشست) اضافه می‌کند — کاربری که از حد خود عبور کند، همان لحظه و وسط اتصالِ فعال قطع می‌شود، نه فقط در اتصال بعدی — و کلید TLS در پنل را کاربردی می‌کند: با خاموش کردن TLS، کانفیگ‌ها روی پورت‌های HTTP کلودفلر بدون TLS ساخته می‌شوند، به‌عنوان جایگزین برای شبکه‌هایی که TLS/۴۴۳ را فیلتر می‌کنند. هر دو به‌صورت پیش‌فرض ایمن/خاموش‌اند و همهٔ قابلیت‌های ۳.۰ تا ۳.۸.۰ حفظ شده است.

مسیر ارتقا: جایگزین مستقیم worker.js. نیازی به تغییر config، KV یا D1 نیست. نصب‌های روی ۳.۸.۰ بنر به‌روزرسانی را می‌بینند و با یک کلیک از تنظیمات ← به‌روزرسانی پنل ارتقا می‌دهند.

✨ امکانات جدید

⏱ قطع سهمیهٔ بلادرنگ (وسط نشست)

پیش‌تر کاربرِ ازحدگذشته فقط هنگام شروع اتصالِ جدید مسدود می‌شد، پس یک نشستِ طولانی می‌توانست از حد عبور کند و ادامه یابد. اکنون اتصال همان لحظه‌ای که کاربر از سهمیهٔ داده یا سهمیهٔ روزانه عبور کند، وسط انتقال قطع می‌شود. این بررسی روی رله و روی کشِ مصرفِ درون‌حافظه انجام می‌شود — بدون خواندن اضافه از KV/D1 و بدون subrequest اضافه، پس هیچ ریسک مسدودی و سرباری ندارد. این قابلیت مکملِ مسدودسازیِ زمانِ اتصالِ موجود است (جایگزین آن نیست).

🔓 حالت بدون TLS (اختیاری) — کلید TLS اکنون کار می‌کند

کلید TLS در تنظیمات ← امنیت اکنون به ساختِ کانفیگ متصل شده است. برای کانفیگ‌های عادیِ TLS آن را روشن بگذار (پیش‌فرض — بدون تغییر). اگر خاموش کنی، Nova کانفیگ‌ها را روی پورت‌های HTTP کلودفلر (۴۴۳→۸۰، ۲۰۵۳→۲۰۵۲، …) با security=none می‌سازد و پارامترهای مخصوص TLS (SNI، fingerprint، ECH، fragment) را حذف می‌کند. این یک جایگزین برای شبکه‌هایی است که TLS/۴۴۳ را محدود می‌کنند. این حالت امنیت کمتری دارد (برای DPI قابل‌مشاهده)، پس فقط وقتی فعالش کن که TLS عبور نمی‌کند. رفتار آن همانندِ مدیریتِ بدون‌TLS است که Nova از قبل برای Shadowsocks دارد.

🐛 رفع اشکال‌ها و بهبودها

  • رفع کلید TLSِ بی‌اثر. کلید امنیت ← TLS در پنل وجود داشت ولی Worker آن را نادیده می‌گرفت. اکنون همان‌طور که گفته شد ساختِ کانفیگِ TLS/بدون‌TLS را کنترل می‌کند و توضیحِ آن (انگلیسی/فارسی) برای روشن‌سازیِ این انتخاب به‌روزرسانی شد.

⚠️ دامنه و یادداشت‌های آزمایش

  • خروجیِ بدون‌TLS روی اشتراکِ base64 و لینکِ کانفیگِ اصلی اعمال می‌شود. اشتراک‌های Clash و sing-box توسط subconverterِ بیرونی ساخته می‌شوند و روی TLS می‌مانند.
  • بدون‌TLS یک جایگزین برای اتصال است، نه پیش‌فرض — تا وقتی مشکلِ شبکه‌ات پورت ۴۴۳ نیست، TLS را روشن نگه دار.
  • پیش از اتکا به مسیرِ بدون‌TLS، آن را روی یک دستگاه واقعی و روی استقرارِ زندهٔ خودت آزمایش کن.

📁 فایل‌های Worker

worker.js — یک Worker واحد و obfuscated (string-array و browser-no-eval) برای کمک به جلوگیری از Cloudflare Error 1101؛ ایمپورت cloudflare:sockets حفظ شده؛ پنل از public/ (یا ASSETS) سرو می‌شود. public/version.json نسخهٔ 3.8.1 را برای بررسی به‌روزرسانیِ درون‌برنامه‌ای نگه می‌دارد.

📝 یادداشت‌های استقرار

  • worker.js را دیپلوی کن؛ public/version.json (نسخهٔ 3.8.1) را منتشر کن تا نصب‌های فعلی بنر به‌روزرسانی را ببینند.
  • پنل (admin/index.html) را دوباره بارگذاری کن تا توضیحِ به‌روزشدهٔ کلید TLS نمایش داده شود.
  • نیازی به تغییر config/KV/D1 نیست؛ همهٔ قابلیت‌های ۳.۰ تا ۳.۸.۰ حفظ شده است.