sing-box не запускается или сразу останавливается: как найти причину

Обновлено 2026-07-03

Коротко: служба почти никогда не падает молча — она пишет причину, но при запуске сервисом сообщение теряется. Запустите вручную в консоли: sing-box run -c config.json — и настоящая ошибка появится на экране. Дальше по частоте: невалидный конфиг, нехватка прав на создание TUN-интерфейса (нужен админ/root), занятый порт, антивирус забрал бинарник в карантин, на Windows не установлен драйвер Wintun.

Симптом одинаковый для всех причин: нажали «запустить», статус мигнул и вернулся в «остановлен», в журнале — что-то вроде daemon err. Само по себе это сообщение не значит ничего: оно лишь констатирует, что процесс завершился. Настоящая причина есть, но её нужно достать.

Шаг первый: увидеть настоящую ошибку

Запустите sing-box не службой, а руками из консоли: sing-box run -c config.json (на Windows — из командной строки, запущенной от администратора). Процесс либо поднимется и будет писать лог, либо упадёт и выведет причину прямым текстом. Именно её и надо читать — всё остальное диагностируется по этой строке. Полезно также поднять уровень лога: в секции log поставить "level": "debug" на время разбора.

Причина 1: конфиг невалиден

Если в ответ прилетело configuration is invalid — проблема в самом конфиге, и разбирается она отдельно: чаще всего это битый JSON, отсутствующий default_domain_resolver (обязателен с версии 1.12) или ссылка на несуществующий файл rule_set. Проверить, не запуская тоннель, можно командой sing-box check -c config.json.

Причина 2: не хватает прав на TUN

Конфиг с inbound типа tun создаёт сетевой интерфейс, а это привилегированная операция. На Windows нужен запуск от администратора, на Linux — root либо выданная капабилити CAP_NET_ADMIN. Без прав процесс стартует и падает почти мгновенно. Признак в логе — упоминание tun, permission или operation not permitted.

Причина 3: занят порт или интерфейс остался от прошлого запуска

Если в конфиге есть inbound на конкретном порту (например mixed или socks на 2080), а порт занят предыдущим экземпляром sing-box или другим прокси-клиентом — старт обрывается с address already in use. Проверьте, не висит ли второй процесс, и не остался ли TUN-интерфейс от аварийно завершённого запуска.

Причина 4: антивирус или SmartScreen

sing-box — инструмент проксирования, и антивирусы регулярно помечают его эвристикой, а иногда молча забирают бинарник в карантин. Тогда служба «есть», а файла нет. Проверьте журнал антивируса и целостность файла. Это не признак заражения — подробнее об этом разобрано в материале про сам процесс sing-box.exe.

Причина 5: на Windows нет драйвера Wintun

TUN-интерфейс на Windows работает через драйвер Wintun. Если файла wintun.dll нет рядом с бинарником или он не той разрядности, создание интерфейса не удаётся и процесс завершается. Положите wintun.dll нужной архитектуры рядом с sing-box.exe.

Если хочется, чтобы просто работало

Ручная сборка sing-box — это ещё и ручное сопровождение: права, драйверы, версии схемы. Клиент Orden использует то же ядро, но берёт всю эту часть на себя: конфигурация собирается под вашу версию и обновляется сама, VLESS-Reality и Hysteria2 переключаются автоматически. Код открыт: github.com/tsyrenov1987/orden-android-client. Пример рабочего конфига с разбором граблей: https://github.com/tsyrenov1987/orden-singbox-configs

Orden — VPN, который сам обновляется и переживает DPI

VLESS-Reality + Hysteria2, автопереключение, банки и Госуслуги работают напрямую. На устройстве, без логов, открытый код.

Открыть Orden →

Частые вопросы

В логе только «daemon err», больше ничего. Где искать?
Это сообщение лишь фиксирует, что процесс завершился. Запустите sing-box вручную: sing-box run -c config.json — настоящая причина будет выведена в консоль. При запуске службой она обычно теряется.
sing-box запускается от администратора, но не как служба. Почему?
Скорее всего дело в правах на создание TUN-интерфейса: у службы другой контекст безопасности. Убедитесь, что служба настроена на запуск с нужными привилегиями, а на Windows — что рядом лежит wintun.dll подходящей разрядности.
Процесс стартует и падает через секунду без ошибок на экране.
Поднимите уровень лога до debug в секции log и запустите вручную из консоли. Мгновенное завершение почти всегда означает либо невалидный конфиг, либо отказ при создании TUN-интерфейса.