Добро пожаловать в Univista — мы рады, что вы здесь. Если что-то неясно, откройте «Справку» или свяжитесь с нами через службу поддержки на этом сайте, и мы поможем вам подключиться.

Настройка sing-box на роутере OpenWRT: пошаговое руководство

Обновлено

Настройка sing-box на роутере OpenWRT

Проблема

Поднимать прокси на каждом устройстве отдельно — телефоне, ноутбуке, телевизоре — утомительно, а часть техники (Smart TV, приставки, IoT) вообще не умеет работать с клиентами вроде sing-box. Логичное решение — настроить обход блокировок один раз на роутере с OpenWRT, чтобы весь трафик домашней сети автоматически шёл через зашифрованный туннель. Ниже — рабочая инструкция, как это сделать с помощью sing-box в режиме TUN.

Обзор решения

sing-box — это универсальное прокси-ядро, которое поддерживает современные протоколы (VLESS, VMess, Trojan, Shadowsocks, Hysteria2, TUIC) и маскировку Reality, устойчивую к блокировкам по SNI. На роутере мы установим пакет sing-box, создадим конфигурацию с TUN-интерфейсом в качестве входа (inbound) и вашим сервером в качестве выхода (outbound), а затем включим автозапуск. TUN-режим с auto_route сам создаёт правила маршрутизации, поэтому весь трафик LAN прозрачно заворачивается в туннель без ручной возни с iptables.
Требования: роутер с OpenWRT 23.05+ (или ImmortalWrt), не менее ~128 МБ свободной памяти/флеша, доступ по SSH и уже готовые реквизиты вашего сервера (адрес, UUID, public key и short_id для Reality).

Пошаговая инструкция

  1. Подключитесь к роутеру по SSH и проверьте версию системы и архитектуру: ssh [email protected] cat /etc/openwrt_release opkg print-architecture
  2. Обновите списки пакетов и установите sing-box вместе с модулем ядра для TUN: opkg update opkg install sing-box kmod-tun Если opkg пишет, что пакет не найден, ваша сборка OpenWRT слишком старая или без нужного feed — используйте ImmortalWrt либо вариант с LuCI-плагином (см. FAQ). Проверьте установку: sing-box version
  3. Создайте конфигурацию в файле /etc/sing-box/config.json. Пример ниже рассчитан на sing-box 1.11+ и протокол VLESS + Reality. Подставьте свои значения вместо ВАШ_*: { "log": { "level": "info" }, "dns": { "servers": [ { "tag": "remote", "address": "https://1.1.1.1/dns-query", "detour": "proxy" }, { "tag": "local", "address": "223.5.5.5", "detour": "direct" } ], "rules": [ { "outbound": "any", "server": "local" } ] }, "inbounds": [ { "type": "tun", "tag": "tun-in", "interface_name": "singtun0", "inet4_address": "172.19.0.1/30", "auto_route": true, "strict_route": true, "stack": "system", "sniff": true } ], "outbounds": [ { "type": "vless", "tag": "proxy", "server": "ВАШ_СЕРВЕР", "server_port": 443, "uuid": "ВАШ_UUID", "flow": "xtls-rprx-vision", "tls": { "enabled": true, "server_name": "www.microsoft.com", "utls": { "enabled": true, "fingerprint": "chrome" }, "reality": { "enabled": true, "public_key": "ВАШ_PUBLIC_KEY", "short_id": "ВАШ_SHORT_ID" } } }, { "type": "direct", "tag": "direct" } ], "route": { "rules": [ { "action": "sniff" }, { "protocol": "dns", "action": "hijack-dns" }, { "ip_is_private": true, "outbound": "direct" } ], "auto_detect_interface": true, "final": "proxy" } }
  4. Проверьте синтаксис конфигурации перед запуском — это спасает от молчаливого падения сервиса: sing-box check -c /etc/sing-box/config.json Команда должна завершиться без вывода ошибок.
  5. Включите автозапуск и запустите сервис через procd: /etc/init.d/sing-box enable /etc/init.d/sing-box start Убедитесь, что появился TUN-интерфейс и процесс работает: ip addr show singtun0 logread -e sing-box
  6. Разрешите трафик в фаерволе. Режим auto_route + strict_route обычно настраивает маршруты сам, но если интернет на клиентах не появился, добавьте интерфейс singtun0 в зону lan файрвола (LuCI → Network → Firewall) либо разрешите форвардинг из зоны LAN на этот интерфейс. После изменений: /etc/init.d/firewall restart
  7. Проверьте результат с любого устройства в сети — внешний IP должен смениться на адрес вашего сервера: curl -s https://api.ipify.org && echo nslookup ifconfig.me Если IP изменился и DNS резолвится без утечек — настройка завершена.

FAQ

opkg не находит пакет sing-box — что делать?
Не во всех официальных сборках OpenWRT есть актуальный sing-box. Используйте свежий релиз OpenWRT 23.05+/24.10 или ImmortalWrt, где пакет присутствует, либо установите LuCI-плагин luci-app-homeproxy — он использует sing-box как движок и даёт графическую настройку без правки JSON вручную.
TUN-интерфейс не поднимается.
Чаще всего не установлен модуль ядра: выполните opkg install kmod-tun и перезапустите сервис. Проверьте logread -e sing-box — там будет причина (нет прав, отсутствует /dev/net/tun, ошибка в конфиге).
Роутер тормозит под нагрузкой.
Шифрование на слабом MIPS-процессоре упирается в CPU. Выбирайте лёгкие протоколы (VLESS+Reality, Shadowsocks), не включайте лишний sniffing и помните, что для гигабитных скоростей нужен роутер с производительным ARM-чипом.
Можно ли заворачивать только часть трафика?
Да. В секции route.rules добавьте правила по доменам, GeoIP или GeoSite — например, российский и локальный трафик направляйте в direct, а остальное в proxy. Это снижает нагрузку и сохраняет доступ к локальным сервисам.

Похожие руководства

Канал Univista в Telegram

В канале — свежие рабочие конфиги, статус узлов и разбор частых проблем.

Перейти в канал
Пользуетесь другим VPN? Univista на Reality — быстрее. Почему это быстрее

Поделиться этим руководством

Telegram VK WhatsApp

Уже подписались? Помощь — импорт и устранение неполадок.

Готовы к стабильному доступу в интернет?

Тарифы

Материал носит технический характер. Соблюдайте местные законы при использовании сетевых инструментов. Univista не отвечает за ваш сценарий использования.