Обзор#
splify2 — набор проектов для роутеров на OpenWrt, которые решают одну задачу: выбранные сервисы идут через туннель на всех устройствах сети, остальное — напрямую. VPN на каждом телефоне, ноутбуке и телевизоре не нужен: правила живут на роутере.
Из чего состоит#
| Проект | Роль |
|---|---|
| splify2 | Панель в LuCI (Сервисы → splify2): каталог сервисов, выходы, подписки, обновление списков, диагностика. Пишет спеку ядру и показывает его состояние |
| steer | Ядро: переводит спеку в правила nftables, таблицы маршрутизации и наборы адресов одной атомарной транзакцией. Резолвер с fake-IP, сторож выходов, свои клиенты протоколов |
| steer-box-connector | Пакет вместо sing-box для podkop и forkop: их конфиг переводится в спеку steer |
| xsteer | Свой VPN-протокол с обликом TLS 1.3: хаб для сервера и клиенты |
| splify2-lists | Каталог списков доменов и адресов для splify2 |
Ядро можно использовать и без панели: спека — обычный файл YAML или JSON, а у ядра есть CLI и управляющий сокет.
Чем отличается#
- Маршрутизация в ядре Linux. Трафик не проходит через прокси на каждое соединение: метки
nftablesи таблицы маршрутизации отправляют пакет в нужный выход. Через процесс идут только туннели протоколов (VLESS, hysteria2, xsteer и другие), и то как устройство TUN. - Домены, а не только адреса. Резолвер отвечает на имена из списков служебным адресом из
198.18.0.0/15, а ядро Linux возвращает настоящий через DNAT. Это точнее списков адресов: один адрес CDN обслуживает сотни сайтов. - Отказоустойчивость. Выход может состоять из нескольких устройств и узлов подписки, группа — из нескольких выходов (первый живой, самый быстрый, выбор человека, балансировка). Когда не работает ничего, по умолчанию трафик правила останавливается, а не уходит в открытый интернет.
- Для слабых роутеров. Одно ядро процессора, десятки мегабайт памяти, overlay на 6–7 МБ: ядро steer написано на C, модули протоколов ставятся отдельными пакетами по нужде.
С чего начать#
- Нужна готовая панель — Быстрый старт.
- Скачать пакеты и посмотреть, что нового, — Выпуски.
- Уже стоит podkop или forkop — коннектор.
- Своя автоматизация поверх ядра — Спека v2 и управление.