splify2

Нужные сервисы — через туннель.
Всё остальное — напрямую.

Одна настройка на роутере с OpenWrt вместо VPN на каждом телефоне, ноутбуке и телевизоре. Правила по доменам и адресам, несколько выходов с переключением при отказе, свои клиенты VLESS, hysteria2 и xsteer — а маршрутизация в ядре Linux, без прокси на каждое соединение.

телефон ноутбук телевизор роутер туннель напрямую YouTube, ИИ, соцсети банки, госуслуги
10архитектур OpenWrt — от MIPS до Cortex-A72 и x86-64
~1 сперезапуск связки ядра и коннектора на роутере
0прокси на соединение: метки nftables и таблицы маршрутизации
apk + opkgOpenWrt 25.12 и прежние выпуски: оба формата пакетов
Возможности

Всё, что нужно для раздельного туннеля

Правила сверху вниз, выходы с проверкой, домены через fake-IP. Ядро steer применяет это одной атомарной транзакцией: либо новые правила встают целиком, либо остаются прежние.

🎯

Домены, а не только адреса

Резолвер отвечает на имена из списков служебным адресом из 198.18.0.0/15 и возвращает настоящий через DNAT. Точнее списков адресов CDN.

🔀

Группы и отказоустойчивость

Первый живой, самый быстрый, выбор человека или балансировка. Упало всё — трафик правила останавливается, а не уходит в открытый интернет.

🛡️

Свои клиенты протоколов

VLESS/Reality с Vision и транспортами, hysteria2, trojan, shadowsocks, socks, http, vmess, xsteer — модулями, ставятся по нужде.

🧭

DNS под правило

У правила может быть свой сервер DNS: DoT, DoH, DoQ, UDP или TCP — напрямую или через выбранный выход, с кэшем ответов.

📚

Каталог сервисов

Списки доменов и адресов обновляются сами; при закрытом GitHub скачивание идёт через зеркало GitLab и запасные хосты.

🔌

Для podkop и forkop

steer-box-connector встаёт вместо sing-box: их конфиг переводится в правила ядра, без TPROXY и без правок самих podkop и forkop.

Панель splify2

Сервисы → splify2 в LuCI

Правила, выходы, подписки и диагностика — на одной странице роутера.

Главная страница splify2

Главная: правила, выходы и остаток трафика подписок

Как это работает

Четыре шага пакета

Всё — средства ядра Linux. Процесс нужен только туннелям протоколов, и то как устройство TUN.

  1. 1

    DNS

    Имя из списка правила получает служебный адрес fake-IP; остальные — настоящий ответ.

  2. 2

    Метка

    Первый пакет проходит цепочки nftables: совпавшее правило ставит метку своего выхода.

  3. 3

    DNAT

    Служебный адрес меняется на настоящий по карте резолвера — приложение этого не видит.

  4. 4

    Маршрут

    По метке ip rule ведёт пакет в таблицу выхода: wg0, VLESS, hysteria2, xsteer. Без метки — напрямую.

Проекты

Открытый исходный код

Всё рассчитано на обычные домашние роутеры: одно ядро процессора, десятки мегабайт памяти, 6–7 МБ на разделе overlay.

Панель

splify2

Страница LuCI и объект rpcd: каталог сервисов, выходы, подписки VLESS и hysteria2, интерфейсы xsteer, пулы и группы, диагностика.

Ядро

steer

Ядро маршрутизации на C: спека YAML или JSON → nftables, таблицы маршрутизации и наборы адресов. Резолвер с fake-IP, сторож выходов, CLI и управляющий сокет.

Новое

steer-box-connector

Пакет вместо sing-box для podkop и forkop. Selector держит туннель только к выбранному узлу, Clash API, DoH по HTTP/2, проверка FakeIP.

Протокол

xsteer

VPN-протокол с обликом TLS 1.3 на :443 поверх обычного TCP, внутри — Noise IK. Хаб для сервера и клиенты на Go, на роутере — в ядре steer.

Списки

splify2-lists

Каталог того, что можно завернуть в туннель, одним файлом lists.json: свои списки рядом, чужие — ссылкой на их релиз. Форк работает без правок.

Установка

Одна команда на роутере

По ssh на роутере. Архитектуру и менеджер пакетов (apk или opkg) установщики определяют сами.

wget -O /tmp/splify2-install.sh https://gitlab.com/xyzmean/splify2/-/raw/main/install.sh && sh /tmp/splify2-install.sh

Ставит ядро и страницу LuCI Сервисы → splify2. Ссылка ведёт на зеркало GitLab: оно открывается и там, где закрыт githubusercontent.

tar -xzf steer-box-connector-test-<версия>.tar.gz
cd steer-box-connector-test-<версия>
sh install.sh

Тестовый набор — на странице выпусков: пакеты коннектора и ядра той же версии. Обычный sing-box заменяется коннектором, podkop или forkop на время установки останавливаются и запускаются снова.

apk add --allow-untrusted ./steer-core-<версия>-1_<арх>.apk ./steer-vless-<версия>-1_<арх>.apk

Пакеты — со страницы выпусков; на opkg — opkg install тех же файлов .ipk. Спека — /etc/steer/spec.yaml, дальше steer apply. Быстрый старт →

Вопросы

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

Чем это отличается от VPN на каждом устройстве?

Правила живут на роутере и действуют на все устройства сети — телевизоры, приставки, гостевые телефоны. В туннель уходят только выбранные сервисы, остальное идёт напрямую с обычной скоростью.

Какой роутер подойдёт?

Любой с OpenWrt на одной из поддерживаемых архитектур: MIPS 24Kc, ARM Cortex-A7 и Cortex-A9, AArch64 (Cortex-A53, Cortex-A72, generic), x86-64. Ядро steer написано под слабые роутеры: одно ядро процессора и десятки мегабайт памяти.

У меня уже стоит podkop или forkop

Их можно оставить: steer-box-connector встаёт вместо пакета sing-box, а podkop и forkop продолжают писать свой конфиг и показывать свою страницу.

Что будет, если туннель упадёт?

Сторож переключит трафик на следующий живой выход группы. Если не работает ничего, по умолчанию трафик правила останавливается — так он не уходит в открытый интернет. Можно выбрать «пустить напрямую».

Где спросить и сообщить о проблеме?

Чат поддержки — t.me/ssplify; ошибки — в обращениях на GitHub нужного проекта, шаблон подскажет, что приложить.