TL;DR
Для владельцев роутеров Keenetic/Netcraze, которые, как и автор, не смогли найти удобной управлялки Xray — навайбкоженное решение для управления ею.
Предисловие
Тому уж скоро 10 лет, как всё российское сетевое сообщество вынуждено помогать Роскомнадзору распространять информацию о том, к каким сервисам ходить нельзя, а к каким можно, и автоматизировать нехождение туда, куда нельзя. Благо, в последнее время ЦМУ ССОП очень старается сделать доступность запрещенных ресурсов всё более и более сложной, что заставляет нас помогать Роскомнадзору всё изощреннее и изощреннее. Но мы тщательно добиваемся отправки вредного трафика в ад, где каждый отдельно взятый пакет мучают так, что Иероним Босх нервно крестится в своем некомфортабельном гробу.
Для того, чтобы обеспечить эффективную доставку, за эти годы появилось множество сервисов, распространяющих необходимую информацию по подписной модели. Подписки этих сервисов нужно загружать в какой‑то движок, который потом и определяет, что же делать с трафиком, пришедшим на ваш пограничный маршрутизатор.

Disclaimer:
Автор статьи никоим образом не призывает читателя использовать богомерзкое изобретение из трех букв, равно как и не рекламирует никакую из компаний, такие три буквы предоставляющих. Законы государства, в котором вы живете, необходимо соблюдать соответственно вашему их пониманию. Статья же посвящена техническому решению, позволяющему более эффективно маршрутизировать трафик на различных платформах.
И вот тут оказывается, что движки очень по‑разному реализуют протоколы. Например, движок на букву M всем хорош, пригож, красив и удобен, в нем можно удобно разложить разные пакеты по разным кругам ада — но при этом сам протокол доставки в нем реализован с некоторым запозданием относительно современных его версий. Добры молодцы из ЦМУ ССОП (а точнее их пособники из коммерческих компаний, выпускающие оборудование для их работы, список которых тщательно сохраняется в красном углу каждого патриота для ежедневного возношения им хвалы) успешно отлавливают использование протокола доставки, реализованного в этом движке, поэтому и помощь им никакая не требуется. По опыту (конечно же, чужому, пересказанному на иностранных форумах) в течение 5–15 минут после запуска такого протокола он успешно блокируется и пакеты опять не могут быть мучимы в аду.
А вот движок на букву Хер реализует протоколы в их гораздо более современной имплементации, которая предательски проникает через щиты, какие они есть сейчас. Но вот беда — интерфейсно движок ужасен и джейсонен в использовании, никакой тебе красоты и удобства, даже вместе с ХерКином. Что и немудрено для такого идолища поганого.
И если для, например, OpenWRT есть много надстроек, позволяющих отправлять пакеты в ад через этот движок с большим комфортом, то для популярных роутеров Keenetic/Netcraze я такой надстройки не нашел. Впрочем, не говорю, что ее не существует — может быть просто плохо искал. Но в наш век LLM проще навайбкодить новое, чем найти готовое.
Поэтому для тех, кто, пытаясь помочь РКН, страдает как я страдал, представляю решение по имени Xsub.
Что делает
читает все подписки, которые вы в него подключите, и выстраивает к каждому серверу в подписке отдельное подключение
постоянно тестирует доступность всех подключений, выбирает самое надежное и с наименьшей задержкой
что немаловажно, тестирует доступность реальным, задаваемым в настройках объемом ни в чем не повинного трафика, чтобы быть уверенным, что добры молодцы не поставили на этом пути ловушку 16–20 к хитромудрую
умеет раскладывать разные цели (доменные имена, IP, списки по подписке) по разным кругам ада с любой, по сути, дискретностью
рассказывает про свое поведение в мессенджер
Много рассказывать не буду, враги не дремлют, но по ссылке решение доступно, там подробный readme.
Как сделано
Как и написано в заголовке, навайбкожено на Go. Результат, как и всё на Go, маленький — единицы мегабайт. Лицензия MIT; как выражается один музыкант «Да делайте что хотите!». Можно приносить пуллреквесты, в том числе и навайбкоженные — будем склеивать.
Как начать
Опять же, всё написано в readme, но если коротко — традиционные однострочники.
Если вы хотите просто установить пакет на роутер:
curl -fsSL https://raw.githubusercontent.com/furriest/xsub/main/install.sh | sh
Если вы хотите подключить его к opkg и устанавливать‑обновлять через него:
curl -fsSL https://raw.githubusercontent.com/furriest/xsub/main/install.sh | XSUB_FEED=1 sh
Впрочем, opkg ему совсем не нужен — будучи один раз установлен, дальше обновляться он умеет и полуавтоматически, из своего интерфейса.
После установки доступен по адресу http://<IP роутера>:8099
Также по просьбам сочувствующих граждан реализован режим работы в докер‑контейнере на x86_64/arm64 сервере. Поскольку сервер чаще всего — не шлюз по умолчанию, то серверный режим — это пять раз ношеные носки, от запаха которых пакеты еще до попадания в ад страдают неимоверно. Как вы в эти носки отправите трафик — это уже ваше дело.
Заключение
В наше время сложно растекаться мысию по древу в публичных платформах на тему ада и маршрутизации, поэтому статья фактически просто про то, что такое решение есть. В заголовке readme есть ссылка на пока что пустой чатик, там можно задавать вопросы, уточнять уточняемое и предлагать доработки.
И будем надеяться, что когда‑нибудь такие решения перестанут быть нужны.