百科
LxBox:客户端应用百科
客户端应用开源
基于 Flutter 与 sing-box-lx 构建的 Android 代理客户端,深度支持 AmneziaWG、MASQUE 与 XHTTP 等新一代协议。内置端侧直连 Cloudflare WARP 与防封锁混淆,提供节点自动去重、正则过滤重写、依赖检测与系统级 TUN 虚拟网卡分流模式。
阅读路径:按“概览 → 核心能力/技术贡献 → 时间线或版本 → 生态与来源”阅读;事实、版本与判断均以正文标注的公开来源为准。
01 · 词条概览
- 应用名称:LxBox
- 公开别名:无
- 支持平台:Android
- 源码状态:开源
- 价格记录:免费
- 应用类型:Flutter
- 官方入口:https://github.com/Leadaxe/LxBox
- 源码仓库:https://github.com/Leadaxe/LxBox
基于 Flutter 与 sing-box-lx 构建的 Android 代理客户端,深度支持 AmneziaWG、MASQUE 与 XHTTP 等新一代协议。内置端侧直连 Cloudflare WARP 与防封锁混淆,提供节点自动去重、正则过滤重写、依赖检测与系统级 TUN 虚拟网卡分流模式。
02 · 内核与协议关联
来源:https://github.com/Leadaxe/LxBox/blob/main/README.md
03 · 版本与发行
- 版本:v2.25.10
- 版本日期:2026-10-01
- 来源类型:github-release
- 来源链接:https://github.com/Leadaxe/LxBox/releases/tag/v2.25.10
- 核验日期:2026-10-02
最近版本记录
- L×Box v2.25.10
- A patch on top of v2.25.9.
- The node row shows a Tailscale exit node (via , exit offline, a
- key-expiry warning) and a catalogue of public subscription sources is now
- linked from the README. A round of audit fixes (tasks 594–607): subscriptions
- and own servers, DNS and config build, backup, routing, WARP, anti-DPI, l10n
- and shell. No core change — still v1.14.2-lx.11.
- Патч поверх v2.25.9.
- Строка узла показывает Tailscale exit node (via <устройство>, exit
- offline, предупреждение об истечении ключа), из README появилась ссылка на
- каталог публичных источников подписок. Раунд фиксов по аудиту (задачи
- 594–607): подписки и свои серверы, DNS и сборка конфига, бэкап, роутинг,
- WARP, anti-DPI, локализация и shell. Ядро не менялось — всё ещё
- v1.14.2-lx.11.
- 🇬🇧 English
- ✨ Added
- Tailscale exit node in the node row (task 608).
- With the VPN on, a node with an exit node reads tailscale·via ; an
- offline exit device shows exit offline in orange instead of the endpoint
- state. Less than 7 days before the device key expires, the row warns
- key expires Nd / key expired (on a NETWORKS row — instead of running).
- Direct vs relay stays in the Network tab: the core's status carries no path
- (#155).
- Catalogue of public subscription sources (task 602),
- EN+RU, linked from the README.
- 🔄 Changed
- A hop chain has one name, its tag (task 594).
- The separate label is gone: the Direction filter and the editor title use
- the same name the user sees.
- The connecting timeout grows with the node count (task 596):
- max(15 s, 0.1 s × N) plus a margin for endpoints. A subscription of
- ~230 nodes no longer has its tunnel killed right after the core started it.
- Ping and probe apply TLS fragmentation and mixed-case SNI the same way
- the tunnel does (task 606).
- 🩹 Fixes
- Nodes and parsing. Saving an INI source (WireGuard/AWG) is no longer
- taken for a JSON array (594);
- a whole number written as 0.0 is emitted as an integer (595);
- maxconcurrency: "0" counts as unset and raises no fieldconflict (597);
- empty fields of a v2rayN container count as absent keys (598).
- Backup. «Replace all» replaces only the selected categories instead of
- the whole settings document (599);
- startup-prompt flags are not reported as unknown keys (600);
- replacing a backup keeps the VPN toggle mirror (607).
- Routing. A rule whose rule set is not downloaded yet stays on (601).
- Subscriptions and own servers (task 603).
- Changing a subscription URL keeps nodes and cache until the first
- successful update; a file subscription applies import rules to its
- snapshot and its Source tab reads the cache; a broken own-server source is
- not saved; deleting an own server asks «Delete server?»; a negative
- profile-update-interval from the server is rejected; one request per URL
- per pass.
- DNS and config build (task 604).
- Editing SNI of a DNS server keeps the other tls fields; a custom DNS rule
- pointing to a missing server is dropped with a code; the proxy port is
- checked on load from storage and backup; «config outdated» fires for every
- template variable; Direction pool_tolerance is clamped to the core
- limit 15000.
- Service, automation, profiler (task 605).
- A start error gets its own notification; a core failure after an accepted
- SWITCHNODE reports VPNERROR(switch_failed); automation commands
- resync with storage on start, after a backup and on a workspace switch; the
- profiler reconnects on every tunnel start, START clears connection
- snapshots (no false tcpClose), the «DNS / router events off» banner is
- gone.
- Node list, WARP, anti-DPI (task 606).
- «Copy link» on a node without a link says so instead of doing nothing;
- dragging under a filter keeps hidden nodes in place; a custom WARP
- endpoint is checked as host:port before registration; an invalid TLS
- fragmentation pause is replaced with 500 ms.
- Localisation and shell (task 607).
- More strings go through translation (node copy, theme, About, Add tile,
- restore summary); the core locale follows the saved app language from
- process start; the read-only code editor offers no Cut/Paste.
- 🔧 Under the hood
- Contract 1.1.108 (registry texts only); sync_contract --to writes the
- full commit sha to the lock.
- Dead code found by audit 591 removed (task 593);
- no user-visible change.
- 🇷🇺 Русский
- ✨ Добавлено
- Tailscale exit node в строке узла (задача 608).
- При включённом VPN узел с exit node показывает tailscale·via <устройство>;
- офлайн-устройство exit показывает exit offline оранжевым вместо состояния
- эндпоинта. Меньше чем за 7 дней до истечения ключа устройства строка
- предупреждает key expires Nd / key expired (на строке NETWORKS — вместо
- running). Прямое соединение vs relay по-прежнему только на вкладке
- Network: статус ядра не несёт путь
- (#155).
- Каталог публичных источников подписок (задача 602),
- EN+RU, со ссылкой из README.
- 🔄 Изменено
- У цепочки хопов одно имя — тег (задача 594).
- Отдельного лейбла больше нет: фильтр Direction и заголовок редактора
- используют то же имя, что видит пользователь.
- Таймаут connecting растёт с числом узлов (задача 596):
- max(15 с, 0.1 с × N) плюс запас на эндпоинты. Подписка из ~230 узлов
- больше не теряет туннель сразу после старта ядра.
- Пинг и проба применяют TLS-фрагментацию и mixed-case SNI так же, как
- туннель (задача 606).
- 🩹 Исправления
- Узлы и парсинг. Сохранение INI-источника (WireGuard/AWG) больше не
- принимается за JSON-массив (594);
- целое число, записанное как 0.0, эмитится как целое (595);
- maxconcurrency: "0" считается неустановленным и не даёт fieldconflict
- (597); пустые
- поля контейнера v2rayN считаются отсутствующими ключами
- (598).
- Бэкап. «Replace all» заменяет только выбранные категории, а не весь
- документ настроек (599);
- флаги startup-prompt не репортятся как неизвестные ключи
- (600);
- замена бэкапа сохраняет зеркало тумблера VPN
- (607).
- Роутинг. Правило, чей rule set ещё не скачан, остаётся включённым
- (601).
- Подписки и свои серверы (задача 603).
- Смена URL подписки сохраняет узлы и кэш до первого успешного обновления;
- файловая подписка применяет import-правила к своему снапшоту, а вкладка
- Source читает кэш; битый источник своего сервера не сохраняется; удаление
- своего сервера спрашивает «Delete server?»; отрицательный
- profile-update-interval от сервера отклоняется; один запрос на URL за
- проход.
- DNS и сборка конфига (задача 604).
- Правка SNI DNS-сервера сохраняет остальные поля tls; своё DNS-правило,
- указывающее на отсутствующий сервер, отбрасывается с кодом; порт прокси
- проверяется при загрузке из хранения и бэкапа; «config outdated»
- срабатывает на каждую переменную шаблона; pool_tolerance Direction
- клэмпится по пределу ядра 15000.
- Сервис, автоматизация, профайлер (задача 605).
- Ошибка старта получает своё уведомление; сбой ядра после принятого
- SWITCHNODE репортит VPNERROR(switch_failed); команды автоматизации
- ресинкаются с хранением при старте, после бэкапа и при смене workspace;
- профайлер переподключается при каждом старте туннеля, START сбрасывает
- снимки соединений (без ложного tcpClose), баннер «DNS / router events
- off» убран.
- Список узлов, WARP, anti-DPI (задача 606).
- «Copy link» на узле без ссылки сообщает об этом вместо тишины;
- перетаскивание под фильтром сохраняет скрытые узлы на месте; свой
- WARP-эндпоинт проверяется как host:port до регистрации; некорректная
- пауза TLS-фрагментации заменяется на 500 мс.
- Локализация и shell (задача 607).
- Больше строк проходит через перевод (копирование узла, тема, About, Add
- tile, итог восстановления); локаль ядра следует сохранённому языку
- приложения с момента старта процесса; read-only редактор кода не предлагает
- Cut/Paste.
- 🔧 Под капотом
- Контракт 1.1.108 (только тексты реестра); sync_contract --to пишет в lock
- полный commit sha.
- Мёртвый код, найденный аудитом 591, удалён (задача 593);
- поведение для пользователя не изменилось.
- Install / Установка
- Без uninstall! Поверх существующей установки. Настройки и подписки сохранятся.
- No uninstall needed — install over the existing one. Settings and subscriptions
- are preserved.
- Previous release / Предыдущий релиз: v2.25.9.
04 · 安装与下载
- Android · apk · arm64:Android ARM64(核验于 2026-10-02)
- Android · apk · universal:Android 通用版(核验于 2026-10-02)
05 · 许可与公开边界
- 许可:GNU General Public License v3.0
- 用途限制:未记录额外用途限制
06 · 来源与边界
本页依据截至 2026-10-01 的应用官方入口、公开发行记录、源码仓库和已登记核验材料整理。原应用页面仍保留在 应用目录;本 Wiki 不替代原页面的下载、筛选和购买交互。