todo/sing-box/sing-box-extended.md
loop-uh 08b4491545
Some checks failed
Published content check / validate (push) Failing after 3s
Завершить переезд базы знаний на Forgejo
Обновить правила репозитория и подписи исходников в 99 заметках, не затрагивая пользовательские незакоммиченные файлы. Сделать Forgejo Actions содержательным: проверять опубликованный commit, а не пустое рабочее дерево после checkout.
2026-08-07 08:27:28 +03:00

134 lines
19 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: 2026-07-17
tags:
- sing-box
- proxy
- vpn
- обход-блокировок
aliases:
- sing-box-extended
- Sing-box Extended
- расширенный sing-box
link: https://github.com/shtorm-7/sing-box-extended
---
# 📦 sing-box-extended — форк sing-box с расширенными функциями
> [!info] О чём заметка
> Обзор [sing-box-extended](https://github.com/shtorm-7/sing-box-extended) — форка универсальной прокси-платформы sing-box от разработчика shtorm-7, в который добавлены десятки протоколов и функций, отсутствующих в оригинале: от Cloudflare WARP и MTProxy до лимитеров трафика и веб-панели администратора. Про экосистему Xray (главную «соседнюю» платформу) — в [[xray/project-x|Project X / Xray-core]].
## TL;DR
- **sing-box** — универсальная прокси-платформа на Go (проект SagerNet): один бинарник, который умеет быть и клиентом, и сервером для множества протоколов обхода блокировок; главная альтернатива Xray-core.
- **sing-box-extended** — форк, куда автор добавил то, чего в оригинале нет: протоколы WARP, MASQUE, MTProxy, Mieru, OpenVPN, Snell, TrustTunnel и другие; лимитеры скорости/трафика/соединений; обфускацию [[amnezia-2-0/reference|Amnezia 2.0]] для WireGuard; VLESS encryption и [[xray/xhttp|XHTTP]] из мира Xray; веб-панель администратора и API для управления пользователями и узлами.
- Проект живой: на июль 2026 — 46 релизов (последний `v1.13.14-extended-2.5.1`), около 400 звёзд на GitHub, поддержка через Telegram-чат.
- Лицензия GPLv3 с оговоркой: производные работы не могут использовать название или подразумевать связь с проектом без согласия автора.
- От стабильных релизов оригинала форк почти не отстаёт (стабильный v1.13.14 от 25 июня 2026 влит в тот же день); отставание на ~2,5 тыс. коммитов видно только от dev-ветки `testing` (альфы 1.14.0) — подробнее в разделе «Отстаёт ли форк от оригинала».
- Это сторонний форк с экспериментальными функциями — для критичных к безопасности сценариев учитывай, что код ревьюит меньше глаз, чем у оригинала (подробнее в разделе «Оговорки»).
## Что такое sing-box и зачем ему форк
**sing-box** — открытая платформа для проксирования от проекта SagerNet, написанная на Go. Идея: один универсальный бинарник, который заменяет зоопарк отдельных клиентов и серверов — он умеет [[xray/vless|VLESS]], VMess, Shadowsocks, Trojan, [[Hysteria/00-overview|Hysteria/Hysteria2]], TUIC, WireGuard и многое другое, плюс гибкую маршрутизацию трафика по правилам. На ядре sing-box работают популярные клиенты вроде NekoBox — пример настройки маршрутизации в таком клиенте есть в [[xray/clients-and-routing|Клиенты и маршрутизация]].
Проще говоря: sing-box — это «швейцарский нож» обхода блокировок, конкурент и во многом совместимая альтернатива [[xray/project-x|Xray-core]], но с собственным форматом конфигурации (JSON со своей схемой) и собственным набором протоколов.
Оригинальный sing-box развивается консервативно: мейнтейнеры не спешат принимать экзотические протоколы и «серверные» функции вроде панелей управления. **sing-box-extended** закрывает этот разрыв — разработчик shtorm-7 ведёт форк (ветка `extended`), в который регулярно вливает upstream-изменения оригинала и поверх них добавляет собственные возможности. Версионирование это отражает: релиз `v1.13.14-extended-2.5.1` означает «оригинальный sing-box 1.13.14 плюс extended-надстройка версии 2.5.1».
## Что добавлено сверх оригинала
Список ниже — по README репозитория (июль 2026).
### Протоколы
| Протокол | Что даёт |
|---|---|
| **WARP** | Интеграция Cloudflare WARP через WireGuard — бесплатный выходной узел Cloudflare как outbound |
| **MASQUE** | Прокси Cloudflare поверх QUIC/HTTP — второй, более современный транспорт WARP |
| **MTProxy** | Сервер Telegram-прокси с FakeTLS — про сам протокол и его маскировку см. [[mtproxy/mtproto-zig|MTProto-прокси]] |
| **Mieru** | Прокси-протокол, спроектированный так, чтобы его было трудно классифицировать DPI |
| **OpenVPN** | Клиент с поддержкой tls-auth, tls-crypt, tls-crypt-v2 — можно подключаться к обычным OpenVPN-серверам |
| **TrustTunnel** | Обфусцированный VPN-протокол от AdGuard |
| **Sudoku** | Обфускация трафика «на основе головоломок» |
| **Snell** | Лёгкий шифрованный прокси, версии v1v5 (родом из экосистемы Surge) |
| **SSH** | Клиент и сервер с аутентификацией по сертификатам |
| **VPN** | Маршрутизируемый туннель поверх любых TCP-протоколов |
| **Bond** | Агрегация нескольких каналов для суммирования пропускной способности |
| **Fallback / Failover** | Группы outbound с приоритетным переключением и автоматическим восстановлением сессий при падении узла |
### Лимитеры — квоты и ограничения
В оригинальном sing-box нет встроенных инструментов для «продажи» или раздачи доступа с ограничениями. Форк добавляет четыре лимитера: **Bandwidth** (ограничение скорости загрузки/отдачи), **Connection** (число одновременных соединений), **Traffic** (квота объёма трафика на пользователя) и **Rate** (частота запросов). Это превращает sing-box-extended в основу для мультипользовательского сервиса без внешней панели.
### Обфускация и заимствования из Xray
- **Amnezia 2.0** — обфускация WireGuard-трафика по схеме AmneziaWG; что это и как работает — в [[amnezia-2-0/reference|справке по Amnezia 2.0]].
- **VLESS encryption** — пост-квантовое шифрование VLESS из Xray-core (в оригинальном sing-box не поддерживается).
- **XHTTP** — транспорт Xray для работы через CDN; устройство и режимы — в [[xray/xhttp|XHTTP]].
- **mKCP** — надёжный транспорт поверх UDP из экосистемы V2Ray.
### DNS
- **SDNS (DNSCrypt)** — зашифрованные DNS-запросы по протоколу DNSCrypt (адреса серверов в формате DNS stamps).
- **DNS Fallback** — параллельные или последовательные запросы к нескольким DNS-серверам с переключением при отказе.
### Управление: панель и API
Форк включает серверную обвязку, которой нет в оригинале: **Admin Panel** (веб-интерфейс администратора), **Manager** (сервис конфигурации пользователей и узлов), **Manager API** (HTTP/gRPC API) и **Node Manager API** (синхронизация узлов с удалённым менеджером). Проще говоря: из одного бинарника можно поднять не только прокси-сервер, но и мини-панель управления парком серверов и пользователями — нишу, которую обычно закрывают отдельные панели типа Marzban или Remnawave.
### Удобства конфигурации
- **Providers** — подписки на списки outbound из локального файла, встроенного списка или удалённого URL; понимает форматы sing-box JSON, Clash YAML, SIP008 и share-ссылки.
- **Link Parser** — outbound можно задать прямо share-ссылкой (`vless://`, `vmess://`, `ss://`, `trojan://`, `hysteria://`, `hysteria2://`, `tuic://`) вместо развёрнутого JSON.
- **Расширенные опции WireGuard** и **Unified Delay** (унифицированное измерение задержки узлов, как в Clash).
## Установка и примеры
Проект собирается из исходников на Go 1.26 (Makefile/goreleaser), готовые сборки публикуются в [релизах на GitHub](https://github.com/shtorm-7/sing-box-extended/releases). Примеры конфигураций для добавленных функций лежат в директории [`examples`](https://github.com/shtorm-7/sing-box-extended/tree/extended/examples) репозитория. Формат конфига — тот же JSON sing-box, расширенный новыми типами inbound/outbound и сервисов.
## Отстаёт ли форк от оригинала
Короткий ответ: от **стабильных** релизов — практически нет, от **ветки разработки** — да, и это нормально.
Форк ведётся поверх стабильной линии sing-box (1.13.x), а не поверх ветки разработки. Цифры на 17 июля 2026 (по данным GitHub):
- Последний стабильный релиз оригинального sing-box — **v1.13.14** от 25 июня 2026. Форк подхватил его **в тот же день**: релиз `v1.13.14-extended-2.5.0` вышел 25 июня 2026. История релизов показывает ту же скорость и раньше (v1.13.12 → extended-сборки в начале июня 2026).
- [Сравнение веток](https://github.com/shtorm-7/sing-box-extended/compare/extended...SagerNet%3Asing-box%3Atesting) `extended` ↔ upstream `testing` показывает отставание на **2485 коммитов** — но `testing` это ветка разработки будущего 1.14.0 (на июль 2026 — alpha-стадия, `v1.14.0-alpha.46`). От неё отстают и сами стабильные релизы оригинала: это отставание от «завтрашней» версии, а не от актуальной.
Проще говоря: пользователь sing-box-extended получает те же исправления, что и пользователь обычного стабильного sing-box, с задержкой порядка дней. Не получает он только того, что пока живёт исключительно в альфах 1.14.0 — новых протоколов и фич ветки разработки (часть из них, впрочем, автор форка добавляет сам раньше upstream: например, Snell появился в extended до того, как upstream добавил его в 1.14.0-alpha).
> [!note] Критично ли это для безопасности протоколов
> Скорее нет, с одной оговоркой. Исправления уязвимостей в стабильном коде upstream выпускает патч-релизами линии 1.13.x — форк вливает их в течение дней, так что окно уязвимости почти не расширяется. Оговорка в другом: криптография и реализации протоколов в форке частично живут в **собственных форках библиотек** автора (`shtorm-7/sing`, `shtorm-7/wireguard-go` и др. — см. [[sing-box/architecture|разбор архитектуры]]) плюс в тысячах строк собственного кода — фиксы upstream-библиотек доезжают туда только после ручного перебазирования автором, а собственный код форка upstream не аудирует вовсе. То есть риск не в «отставании по коммитам», а в обычном для любого форка расширении поверхности кода, за которой следит один мейнтейнер.
## Оговорки
> [!warning] Сторонний форк — доверяй с оглядкой
> sing-box-extended — проект одного основного разработчика, а не команды SagerNet. Кодовая база большая (тысячи коммитов поверх оригинала), и её аудирует заметно меньше людей, чем upstream. Для личного обхода блокировок это обычно приемлемый риск, но для сценариев, где компрометация прокси-сервера критична, стоит взвесить: чем больше экспериментальных функций в одном бинарнике, тем шире поверхность атаки. Часть функций (панель, Manager API) по определению открывает управляющие интерфейсы — их нужно закрывать аутентификацией и firewall-ом так же тщательно, как любую панель управления.
> [!note] Числа устаревают
> Статистика в заметке (46 релизов, ~400 звёзд, версия `v1.13.14-extended-2.5.1`, Go 1.26) — снимок по данным GitHub на июль 2026. Актуальное состояние смотри в самом репозитории.
## 📚 См. также
- [[sing-box/architecture|Архитектура sing-box-extended]] — разбор исходников: ядро, registry-паттерн, реализация протоколов, лимитеры, manager-подсистема
- [[sing-box/wire-protocol-explained|Что такое wire-протокол]] — с нуля: почему разные программы понимают друг друга и что такое двойная реализация протокола
- [[sing-box/protocols-origin|Откуда код протоколов]] — sing-box vs Xray-core: независимые реимплементации, а не общий код
- [[sing-box/hardcoded-defaults|Хардкод-константы и дефолты]] — порты по умолчанию, таймауты, магические числа
- [[xray/project-x|Project X / Xray-core]] — главная альтернативная экосистема; сравнение ролей ядер
- [[Clash/08-vs-sing-box|mihomo против sing-box и Xray]] — сравнение трёх универсальных ядер по осям: конфиг, маршрутизация, экосистема, роль в сети
- [[protocols/naiveproxy|NaiveProxy]] — протокол, который из трёх ядер поддерживает только sing-box
- [[protocols/00-overview|Обзор протоколов]] — карта протоколов обхода и таблица поддержки в ядрах
- [[Clash/02-mihomo|mihomo (Clash.Meta)]] — третье живое ядро; его YAML-подписки sing-box умеет разбирать как один из форматов провайдера
- [[xray/vless|Протокол VLESS]] — протокол, чьё шифрование форк переносит из Xray
- [[xray/xhttp|XHTTP]] — транспорт через CDN, добавленный в форк
- [[xray/clients-and-routing|Клиенты и маршрутизация]] — синтаксис маршрутизации sing-box на примере клиента NekoBox
- [[amnezia-2-0/reference|Amnezia 2.0]] — обфускация WireGuard, поддерживаемая форком
- [[Hysteria/00-overview|Hysteria]] — один из протоколов, поддерживаемых и оригинальным sing-box
- [[mtproxy/mtproto-zig|MTProto-прокси]] — устройство протокола, серверную часть которого добавляет форк
- 🔗 [github.com/shtorm-7/sing-box-extended](https://github.com/shtorm-7/sing-box-extended) — репозиторий форка
- 🔗 [github.com/SagerNet/sing-box](https://github.com/SagerNet/sing-box) — оригинальный sing-box
- 🔗 [sing-box.sagernet.org](https://sing-box.sagernet.org/) — документация оригинального sing-box
---
> [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ
> При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: [исходник этой заметки](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main/sing-box/sing-box-extended.md) · [весь репозиторий](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main).