Some checks failed
Published content check / validate (push) Failing after 3s
Обновить правила репозитория и подписи исходников в 99 заметках, не затрагивая пользовательские незакоммиченные файлы. Сделать Forgejo Actions содержательным: проверять опубликованный commit, а не пустое рабочее дерево после checkout.
134 lines
19 KiB
Markdown
134 lines
19 KiB
Markdown
---
|
||
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** | Лёгкий шифрованный прокси, версии v1–v5 (родом из экосистемы 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).
|