sing-box — это «движок», на котором работают podkop и Netshift: именно он устанавливает VLESS/Reality, Hysteria2 и другие соединения. Иногда его нужно обновить sing-box на OpenWrt (podkop требует свежую версию, не работает новый протокол) или переустановить (битый бинарник, ошибки после прошивки). Разберём все способы и решение типичных ошибок.
Когда нужно обновить: podkop/Netshift просит новую версию, появился протокол, которого нет в старой сборке, в логах ошибки формата конфига. Когда нужно переустановить: бинарник повреждён, сломался конфиг, движок отвалился после sysupgrade.
Шаг 0. Узнаём текущую версию и состояние
ssh root@192.168.1.1
sing-box version
service sing-box status
logread -e sing-box | tail -30
ubus call system board
Запомните текущую версию, состояние сервиса и архитектуру (board_name/target из последней команды) — она понадобится для выбора правильного бинарника. Проверьте, какую версию требует ваш podkop/Netshift (обычно указано в его README или логах).
Шаг 1. Бэкап (обязательно)
sysupgrade -b /root/backup-$(date +%F).tar.gz
cp -r /etc/sing-box /root/sing-box.bak 2>/dev/null
cp /usr/bin/sing-box /root/sing-box.old 2>/dev/null
Третья команда сохраняет текущий бинарник — если новая версия окажется несовместимой, вы вернёте рабочую одной командой.
Способ 1. Обновление через штатный менеджер пакетов
# OpenWrt 23.05 и ниже
opkg update && opkg upgrade sing-box
# OpenWrt 24.10+ / SNAPSHOT (apk)
apk update && apk upgrade sing-box
Проверьте результат: sing-box version.
opkg upgrade sing-box часто не даёт свежую версию — в стабильных репозиториях OpenWrt sing-box обновляется медленно. Если нужна конкретная новая версия, переходите к способу 2 или 3.
Способ 2. Обновление скриптом podkop / Netshift (проще всего)
Скрипт установки podkop сам подтягивает совместимую версию sing-box:
sh <(wget -O - https://raw.githubusercontent.com/itdoginfo/podkop/refs/heads/main/install.sh)
При этом podkop-конфиги остаются на месте, а движок обновляется до версии, которая точно совместима с текущим podkop. Это самый безопасный путь для пользователей podkop. Проверка — sing-box version.
Способ 3. Ручная установка свежего бинарника с GitHub (самый гибкий)
- Определите архитектуру роутера по чипсету:
| Чипсет / платформа | Архитектура sing-box |
|---|---|
| MediaTek MT7981/MT7986 (filogic) | arm64 |
| MediaTek MT7621 (ramips) | mipsle |
| Qualcomm IPQ40xx/IPQ806x | armv7 |
| x86_64 (ПК/виртуалка) | amd64 |
| Raspberry Pi 4/5 | arm64 |
- Найдите нужный релиз на странице Releases проекта sing-box на GitHub и возьмите архив под свою архитектуру (
sing-box-VERSION-linux-arm64.tar.gzи т.п.). - Полный блок команд (замените URL на ссылку из релиза):
service sing-box stop
cd /tmp
wget https://github.com/SagerNet/sing-box/releases/download/vX.Y.Z/sing-box-X.Y.Z-linux-arm64.tar.gz
tar -xzf sing-box-*.tar.gz
mv sing-box-*/sing-box /usr/bin/sing-box
chmod +x /usr/bin/sing-box
service sing-box start
sing-box version
df -h /overlay заранее — если места нет, поможет extroot или кастомная сборка прошивки.
Полная переустановка sing-box «с нуля»
Если движок сломан и обновление не помогает:
service sing-box stop
/etc/init.d/sing-box disable
# OpenWrt 24.10 (opkg)
opkg remove sing-box
rm -rf /etc/sing-box /etc/config/sing-box /usr/bin/sing-box
opkg update && opkg install sing-box
# OpenWrt 25.12 (apk): apk del sing-box → apk update && apk add sing-box
# восстановить конфиг из бэкапа при необходимости:
cp -r /root/sing-box.bak /etc/sing-box
service sing-box restart
Конфигурация sing-box: где что лежит
/etc/sing-box/config.json— основной конфиг в формате JSON./etc/config/sing-box— UCI-обёртка OpenWrt (пример:uci set sing-box.main.enabled='1').
Минимальный пример config.json с VLESS-outbound — для понимания структуры:
{
"outbounds": [
{
"type": "vless",
"tag": "proxy",
"server": "example.com",
"server_port": 443,
"uuid": "ВАШ-UUID",
"flow": "xtls-rprx-vision",
"tls": { "enabled": true, "server_name": "microsoft.com" }
}
]
}
Собрать такой outbound из готовой vless://-ссылки (и наоборот) можно в нашем
конвертере ссылки в JSON или конвертере JSON → ссылка —
без ручной правки полей.
Проверить синтаксис конфига перед запуском:
sing-box check -c /etc/sing-box/config.json
Проверка после обновления
sing-box version # версия обновилась
service sing-box status # сервис жив
logread -e sing-box | tail # нет ошибок
Дополнительно снаружи можно проверить, что сам VPN-сервер отвечает и его сертификат в порядке — через проверку серверов и задержки, не раскрывая UUID или пароль.
На клиенте: заблокированный сайт открывается, внешний IP сменился. Чек-лист:
-
sing-box versionпоказывает новую версию; - сервис в состоянии
running; - в логах нет
failed to start; - VPN работает на клиентском устройстве.
Типичные ошибки и их решение
sing-box: failed to start — ошибка в конфиге. Найдите точную строку: logread -e sing-box | tail -30. Проверьте конфиг: sing-box check -c /etc/sing-box/config.json.
Illegal instruction / not executable — скачали бинарник не под ту архитектуру. Сверьтесь с таблицей в способе 3 и возьмите правильный архив.
no space left on device — не хватает flash. Освободите место, используйте extroot или соберите прошивку с sing-box через Firmware Selector.
Новая версия несовместима со старым конфигом — между мажорными версиями sing-box (1.8 → 1.9 → 1.10+) менялся формат JSON. Если обновились вручную и всё сломалось — либо откатитесь на sing-box.old, либо обновите заодно podkop/Netshift, чтобы он сгенерировал конфиг под новую версию.
После обновления sing-box перестал работать podkop — версии рассинхронизировались. Обновите сам podkop, чтобы он соответствовал новому движку.
Откат на старую версию:
service sing-box stop
cp /root/sing-box.old /usr/bin/sing-box
chmod +x /usr/bin/sing-box
service sing-box start
Автоматизация: обновление по расписанию
Технически можно повесить проверку версии на cron, но автообновление VPN-ядра — спорная идея: новая версия может сломать совместимость с podkop прямо посреди рабочего дня. Разумнее обновлять sing-box вручную, когда этого требует podkop, и всегда с бэкапом.
Часто задаваемые вопросы (FAQ)
Нужно ли обновлять sing-box, если всё работает? Нет. Обновляйте только по необходимости: новый протокол, требование podkop, ошибки в логах.
Какая версия sing-box нужна для podkop / Netshift? Та, что указана в требованиях конкретной версии инструмента. Проще всего — обновить через его же скрипт (способ 2), тогда версии заведомо совпадут.
Слетит ли sing-box после обновления прошивки OpenWrt?
Да, при sysupgrade удаляются все пакеты. После обновления OpenWrt движок ставится заново (обычно вместе с podkop).
Xray или sing-box — что лучше? Для связки с podkop/Netshift используется sing-box — это их родной движок. Xray — альтернатива для других решений; менять движок под podkop не нужно.
Можно ли поставить sing-box на роутер с 8/16 МБ flash? На 8 МБ — практически нет (бинарник 10–15 МБ). На 16 МБ — впритык, нужен extroot или кастомная сборка.
Sing-box сильно грузит процессор — это нормально? При активной передаче через VPN — да, шифрование нагружает CPU. Если роутер тормозит на высоких скоростях — это упор в процессор, помогает более мощная модель.
Заключение
Обновить sing-box проще всего скриптом podkop — он подберёт совместимую версию сам. Ручной бинарник с GitHub нужен, когда требуется конкретная свежая версия под вашу архитектуру. Главное — бэкап бинарника перед обновлением и понимание, что после обновления прошивки движок слетит. При проблемах с самим podkop смотрите как его обновить.
Комментарии
💬 Пока нет комментариев. Будьте первым!
Оставить комментарий