README.ru.md

July 8, 2026 · View on GitHub

FlowZ — a clean, modern cross-platform proxy client built on sing-box, WYSIWYG

release sing-box platform license stars

简体中文 · English · 繁體中文 · Русский · فارسی

Исходный open-source проект: https://github.com/zhangjh/FlowZ

В основе: простая настройка · понятные правила · переключение без обрывов · авторизуйтесь один раз, без повторных запросов.


🌟 Главное

  • Авторизуйтесь один раз и навсегда — root-демон macOS / системная служба Windows устанавливается единожды; после этого запуск/остановка TUN, переключение узлов и выход выполняются без запросов.
  • Редактируйте правила без обрыва соединений — изменение значений сопоставления уже включённого правила вступает в силу мгновенно и без прерываний через локальную горячую перезагрузку rule-set; перезапуск ядра вызывают только структурные изменения (с защитой от дребезга, перезапуск выполняется лишь один раз).
  • Любой протокол, ядро — единственный источник истины — вставьте JSON outbound для sing-box, и он просто работает; совместимость проверяется по работающему ядру при сохранении. Для протоколов, которые официальное ядро не поддерживает, можно вручную подменить ядро сторонним fork-сборкой — FlowZ распознаёт fork и отключает онлайн-обновления, чтобы его защитить.
  • Mesh из коробки — WireGuard / WARP (анонимная регистрация в один клик) / Tailscale (интерактивный вход через браузер) — это полноценные узлы, которые можно выбирать, маршрутизировать и переключать на лету.
  • Никаких хвостов после выхода — кросс-платформенная очистка процесса sing-box / виртуального адаптера / системного прокси с резервными механизмами на случай сбоя, выхода из системы и выключения.
  • Нативное управление sing-box 1.14 — встроенное ядро 1.14, нативный gRPC management API плюс опциональная официальная панель dashboard.

✨ Возможности

Протоколы

  • Прокси: VLESS / VMess / Trojan / Shadowsocks / Snell / Hysteria2 / TUIC / AnyTLS / NaiveProxy / SOCKS / HTTP / SSH
  • Mesh: 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 (автоопределение из подписок, для некоторых есть ручные переключатели)
  • Block QUIC (независимо от узла): отклоняет QUIC/UDP 443, направленный в прокси, чтобы браузеры вернулись к TCP — это устраняет зависания страниц на узлах, у которых недоступен UDP-релей
  • Защита от утечек WebRTC (только TUN): выключено / через прокси / блокировать

Режимы прокси и перехват

  • Прозрачный прокси TUN + режим системного прокси + локальный прокси
  • Режимы маршрутизации: Global / Smart (авторазделение, рекомендуется) / Direct
  • Бесшовное горячее переключение узлов: горячее переключение selector, по умолчанию плавное без обрыва соединений; опционально — «прерывать существующие соединения при переключении»
  • Цепочки прокси (upstream proxy)

Mesh

  • WireGuard / WARP / Tailscale в роли конечных узлов, обрабатываются ровно как обычные прокси (выбираются, маршрутизируются, переключаются на лету)
  • Регистрация WARP в один клик: анонимная регистрация устройства, по возможности — снятие регистрации при удалении узла (без «осиротевших» записей)
  • Интерактивный вход Tailscale: authKey не нужен — нажмите «войти», авторизуйтесь в браузере; состояние входа проверяется, срок действия отображается
  • Переключатель «Разрешить доступ в интернет»: mesh-узел может быть пиром только для внутренней сети или полноценным выходом
  • Обратный mesh (нужны TUN + helper): работать как подсетевой маршрутизатор / быть доступным для других устройств в mesh

Правила маршрутизации

  • Многоусловные правила: domain / IP / port / process / geosite / geoip / rule-set и 15 типов условий, объединяемых через OR/AND
  • Система ресурсов правил: встроенные курируемые списки geosite/geoip + загрузка удалённых rule-set .srs/.json и периодические обновления
  • Редактирование значений правил не требует перезапуска: изменение значений сопоставления включённого правила (например, добавление одного домена) применяется на лету через локальную горячую перезагрузку rule-set; структурные изменения (добавление/удаление/перестановка, смена действия) вызывают однократный перезапуск (с защитой от дребезга)
  • Маршрутизация приложений: назначайте proxy / direct / block по имени или пути процесса
  • Поиск по списку + перетаскивание для упорядочивания (вверх / вниз / перемещение / доступность с клавиатуры) + обязательное имя-заметка + наведение для разворота полного правила

DNS и разделение

  • Ускорение через FakeIP + разделение по регионам (прямой доступ для внутренних / обратный «домой»)
  • Перехват DNS: в режиме TUN перехватывается системный DNS с отказоустойчивым резервом на случай сбоя
  • DoH-апстримы, защита от петель на доменах узлов, перехват утечек приватного DoH

Подписки

  • Импорт подписок (sing-box JSON и распространённые форматы share)
  • Ручной импорт: добавление узлов в «Свои» из файла или вставленного текста (конфиги sing-box / Xray / Clash, Base64, ссылки); Clash proxy-providers импортируются как подписки (без автообновления, напрямую по умолчанию)
  • Планировщик автообновлений (включён по умолчанию): догоняющее обновление устаревших подписок при запуске + периодические проверки + экспоненциальная задержка + переключатель «обновлять через прокси»; обновления никогда не прерывают текущее соединение
  • Стабильная сверка по отпечатку узла: обновления подписки сохраняют локальный id / выбранный узел, без обрыва соединения
  • Ускорение через зеркало GitHub: загрузки ядра / ресурсов правил / dashboard могут идти через зеркало gh-proxy

Интерфейс и удобство

  • Дизайн-система Conduit: двойная тема на токенах (светлая / тёмная) + локально размещённые шрифты
  • Пять языков: упрощённый китайский / традиционный китайский / английский / русский / فارسی (с RTL)
  • Топология соединений · статистика трафика и тесты скорости в реальном времени · отображение выходного IP
  • Приватный режим (блокировка паролем; scrypt-хеш хранится в отдельном файле, не в конфиге)
  • Режим автопростоя (реальное бездействие системного ввода запускает облегчённый / приватный режим)
  • Резидент в строке меню macOS: при закрытии окна оно скрывается из Dock, остаётся только в строке меню; повторный запуск из строки меню / Spotlight
  • Запуск при загрузке системы + автоподключение + тихий старт

Управление и диагностика

  • Нативный gRPC management API sing-box 1.14 (заменяет clash_api): статус / соединения / группы / горячее переключение узлов — всё идёт через нативную плоскость
  • Интеграция официального dashboard sing-box (необязательный «запасной выход»): при включении ядро отдаёт официальную панель по адресу /dashboard/ для продвинутых пользователей
  • Экспорт диагностического отчёта: сбор обезличенной диагностики в один клик для устранения неполадок

Система и надёжность

  • Цепочка привилегий без запросов: root-демон macOS · служба LocalSystem Windows + именованный канал / сокет · авторизация по токену
  • Никаких хвостов после выхода: кросс-платформенная очистка процессов / виртуальных адаптеров / реестра системного прокси с резервами на случай сбоя / выхода из системы / выключения
  • Автообновление: проверка целостности + предварительная проверка при запуске + автоматический откат при сбое + пропуск заведомо проблемных версий
  • Кросс-платформенность: Windows / macOS (Apple Silicon + Intel) / Linux

🖼 Скриншоты

На скриншотах используются встроенные демо-данные, а не реальные подписки / узлы. Показана китайская сборка интерфейса; раскладка идентична на всех языках.

Главная · Обзор соединения

WYSIWYG-статус соединения, переключение узлов, скорости в реальном времени и топология соединений. Двойная тема светлая / тёмная:

СветлаяТёмная

Узлы и подписки

Импорт подписки в один клик, управление карточками узлов, бейджи протоколов, пакетные тесты скорости и упорядочивание:

Маршрутизация приложений · Правила маршрутизации

Назначайте proxy / direct / block для каждого приложения; правила поддерживают многоусловные комбинации (domain / IP / port / process / geosite и 15 типов, OR/AND) + перетаскивание для упорядочивания + редактирование значений без перезапуска:

Маршрутизация приложенийПравила маршрутизации

Ресурсы правил

Встроенные курируемые списки geosite/geoip + загрузка удалённых rule-set .srs и периодические обновления:

Диагностика соединений · Логи в реальном времени

Скорость / попадание в правило / цепочка узлов по каждому соединению; уровневые логи в реальном времени:

СоединенияЛоги

Настройки · Авторизуйтесь один раз, без повторных запросов

Тонкая настройка; после однократной установки привилегированного helper / службы запуск/остановка TUN не требует дополнительной авторизации (один UAC в Windows / один пароль в macOS):


⚠️ Известные ограничения и заметки о поведении

Пожалуйста, прочитайте это перед тем, как открывать issue — следующее является задумкой, а не багами.

Кратковременное переподключение (~1 с) при структурных изменениях конфигурации — это ожидаемо

В нижележащем ядре sing-box нет API для добавления/удаления outbound или перезагрузки всей конфигурации во время работы (его Clash-совместимый API лишь переключает между уже загруженными узлами; PUT /configs ничего не делает). Поэтому FlowZ делит изменения на два класса:

  • На лету, без прерываний — соединения никогда не обрываются:
    • Переключение выбранного узла (горячее переключение selector).
    • Редактирование значений сопоставления уже включённого правила (например, добавление домена в его список) — применяется через локальную горячую перезагрузку rule-set.
  • Перезапуск ядра ~1 с (с защитой от дребезга; несколько быстрых правок объединяются в одну, соединения кратко обрываются и затем восстанавливаются автоматически):
    • Добавление / удаление / перестановка правил или изменение действия / цели правила.
    • Переключение режима маршрутизации (Global / Smart / Direct), изменение локальных портов или настроек TUN/inbound.
    • Редактирование узла, на который сейчас есть ссылка, или обновление подписки, которое вводит новые узлы, на которые есть ссылка.

Этот перезапуск быстрый, и соединения восстанавливаются сами. Пожалуйста, не заводите issue из-за кратковременного сбоя при изменении этих настроек — это присуще тому, как sing-box применяет структурные изменения.

Прочие ожидаемые особенности поведения

  • Tailscale: один узел на устройство. Все аккаунты Tailscale используют общий 100.64.0.0/10; несколько узлов Tailscale перезаписывали бы друг друга.
  • NaiveProxy требует библиотеку Cronet на Linux/Windows (загружается во время сборки). Если её нет, naive-узлы автоматически пропускаются — остальные протоколы не затрагиваются; если выбранный узел — naive, вы получите явное уведомление.
  • Режим системного прокси не может полностью контролировать DNS или блокировать утечки QUIC. Только режим TUN перехватывает системный DNS и может отклонять направленный в прокси QUIC. Используйте TUN, если вам нужны DNS / QUIC без утечек.
  • Block QUIC затрагивает только направленный в прокси QUIC. Узлы, которые сами работают через QUIC (hysteria2 / tuic / naive), не затрагиваются — он отклоняет UDP 443, направленный в прокси, чтобы вернуть браузеры к TCP.
  • macOS «FlowZ повреждён» на неподписанной сборке → снимите атрибут карантина: xattr -cr /Applications/FlowZ.app.

📋 Системные требования

ПлатформаТребование
WindowsWindows 10 (1809+) / Windows 11, x64
macOSmacOS 11 (Big Sur)+, Apple Silicon или Intel
Linuxx86_64, AppImage / .deb (для режима TUN нужна однократная авторизация pkexec setcap)

📥 Установка

Скачайте последнюю сборку из Releases.

ПлатформаУстановка
WindowsЗапустите установщик .exe или портативный portable.exe
macOSОткройте .dmg и перетащите в Applications; публикуются как arm64, так и Intel (на Intel naive работает из коробки)
LinuxЗапустите AppImage напрямую или установите .deb

Если macOS сообщает, что «FlowZ повреждён», снимите атрибут карантина:

xattr -cr /Applications/FlowZ.app

🚀 Быстрый старт

  1. Добавьте узел — выберите протокол на странице «Серверы», используйте «Ручной импорт» для добавления узлов из файла или текста (sing-box / Xray / Clash / Base64 / ссылки) или импортируйте ссылку подписки в разделе «Подписки».
  2. Выберите режим — выберите режим маршрутизации на главной странице (по умолчанию: Smart / авторазделение); если TUN не нужен, переключитесь на «режим системного прокси» в Настройках.
  3. Включите прокси — нажмите «Включить прокси» на главной странице.
  4. (Опционально) Настройте правила — добавьте пользовательские правила / используемые rule-set в разделе «Правила маршрутизации»; назначьте политику для каждого приложения в «Маршрутизации приложений».

🛠 Сборка из исходников

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 (кросс-компиляция привилегированного helper на Go) перед упаковкой.
  • Библиотека Cronet для NaiveProxy загружается на этапе упаковки командой npm run fetch:cronet (см. «Заметки о NaiveProxy» ниже).

🛡 Дополнительные заметки

Бесшовное переключение узлов

По умолчанию горячее переключение selector: переключение узлов не перезапускает ядро, существующие соединения живут до естественного закрытия, а новые соединения используют новый узел (плавно, без обрывов). Дополнительная опция «прерывать существующие соединения при переключении» (выключена по умолчанию) принудительно разрывает и пересоздаёт соединения. Редактирование значений сопоставления включённого правила вступает в силу без перезапуска через локальную горячую перезагрузку rule-set; межрежимные / портовые / TUN / структурные изменения правил (добавление/удаление/перестановка/смена действия) вызывают перезапуск (несколько правок объединяются в одну с защитой от дребезга).

Mesh

WireGuard / WARP / Tailscale подключаются как конечные узлы и ведут себя как обычные прокси — выбираются, могут быть целью правил, переключаются на лету.

  • WARP: анонимная регистрация в один клик; чистый узел-выход, добавьте несколько как резерв / failover (активен один за раз).
  • Tailscale: на основе аккаунта, нажмите «войти» для авторизации в браузере (authKey также поддерживается); только один узел Tailscale на устройство — все аккаунты используют общий 100.64.0.0/10, несколько перезаписывали бы друг друга.
  • Разрешить доступ в интернет: вкл = полный выход; выкл = только внутренняя сеть.
  • Обратный mesh (нужны TUN + helper): создаёт реальный интерфейс ядра, чтобы эта машина была доступна другим устройствам mesh / работала как подсетевой маршрутизатор; по умолчанию выключено (пользовательское пространство работает только на выход, без привилегий).

Block QUIC (дополнительно)

Отклоняет направленный в прокси QUIC (UDP 443), чтобы вернуть браузеры к TCP — это устраняет «зависания / обрывы страниц из-за недоступного UDP-релея узла». Независимо от узла; узлы, которые сами работают через QUIC (hysteria2 / tuic / naive), не затрагиваются. По умолчанию выключено.

Обход цензуры

  • TLS Fragment (глобальный переключатель): разбивает TLS ClientHello, чтобы обходить блокировку DPI по SNI. Применяется ко всем узлам TCP-TLS; hysteria2 / tuic / naive автоматически исключаются.
  • ECH / Multiplex / httpupgrade / прыжки по портам Hysteria2: автоопределение из JSON-подписки sing-box (Multiplex автоматически пропускается для узлов reality+vision; прыжки по портам поддерживают несколько диапазонов).

Официальный dashboard sing-box (по желанию)

При включении в Настройках ядро отдаёт официальную панель sing-box по адресу /dashboard/ на порту management API. Доступен только пока прокси запущен, независимо от режима прокси / маршрутизации. Ресурсы панели загружаются при первом использовании (могут идти через зеркало GitHub).

⚠️ Базовая библиотека NaiveProxy (naive)

Outbound для naive использует сетевую библиотеку Cronet от Chromium для отпечатков, идентичных браузеру; линковка различается по платформам:

  • Linux / Windows: Cronet — это динамическая библиотека (libcronet.so / libcronet.dll), загружается из SagerNet/cronet-go командой npm run fetch:cronet и встраивается в установщик (большая; не коммитится, загружается во время сборки).
  • macOS (arm64 и x64): Cronet статически линкуется в ядро sing-box (CGO); naive работает из коробки, без внешней библиотеки.

На платформах/архитектурах без Cronet naive-узлы автоматически пропускаются (остальные протоколы не затрагиваются; вы получите чёткое уведомление, если выбранный узел — naive).


🔧 Технологический стек

  • Electron 42 + React 19 + TypeScript
  • sing-box 1.14 (прокси-ядро, встроено под каждую платформу)
  • Управление: нативный gRPC API sing-box 1.14 (заменяет clash_api)
  • Tailwind CSS + Radix UI · дизайн-система Conduit (двойная тема на токенах + локально размещённые шрифты)
  • Vite (сборка) / electron-builder (упаковка)
  • Go (привилегированный helper macOS · привилегированная служба Windows)

📄 Лицензия

MIT License


⚠️ Отказ от ответственности

Это программное обеспечение предназначено только для обучения и исследований. Соблюдайте местные законы и нормы. Вы несёте всю ответственность за последствия использования этого ПО.


⭐ История звёзд

Star History Chart