Всем доброго времени суток!
Предлагаю утилиту для поддержки Xray на роутерах Keenetic — Xkeen.
Весь код написан на чистом shell и открыт на GitHub.
Пост обновляемый. Всегда актуальная версия на форуме Keenetic

Что такое Xray
Xray / v2ray — очень гибкая утилита для проксирования и защиты соединения, созданная для обхода GFW (Китайского Файрвола).
С помощью нее возможно обойти даже блокировки Ирана. Полагаю, что в РФ этого решения хватит на приличное время.
Решение не будет работать без глубокой настройки в Туркменистане
Решение не будет работать в КНДР.
Там нет интернета в привычном нам пониманииРешение используется не только для обхода блокировок, но и защиты соединения
Основные возможности Xray
Выборочная работа с DNS по современным протоколам
Создание собственного DNS — FakeDNS
Поддержка обратного проксирования — Reverse Proxy
Настройка политик для разных пользователей
Маршрутизация поддерживающая
Geosite — то же самое, что и Geoip, но с доменами.
Точные совпадения
Частичные совпадения
Поддомены
Сегментация по правилам и управление входящим трафиком по протоколам
Сегментация по правилам и управление исходящим трафиком по протоколам
Использование современных транспортных протоколов
Обеспечение защиты транспорта
Основные возможности Xkeen
Автоматическая сборка актуальной версии Xray под Ваш Keenetic.
Тестировался на aarch64, но гипотетически должен работать и на mips, mipsel.
Автоматические обновления
Включаются по желанию с возможностью гибкой настройки времени обновления
Xkeen
Xray
GeoSite
GeoIP
В утилиту интегрированы
Включаются по желанию
GeoSite
GeoIP
Ключи запуска Xkeen
Пример использования ключей запуска: «xkeen -x», где «-x» — выбранный Вами ключ.
Полный цикл установки
-i — Необходимые пакеты, Xray и сервисы Xkeen
Обновление
-ux — Xray
-uk — Xkeen
-ugs — GeoSite
-ugi — GeoIP
Включение или изменение правил обновления
-uac — Xray, Xkeen, GeoSite, GeoIP
-uxc — Xray
-ukc — Xkeen
-ugsc — GeoSite
-ugic — GeoIP
Регистрация
-rx — Xray
-rk — Xkeen
-ri — Автоматический запуск Xray средствами init
Удаление / Автоматические обновления
-dac — Xray, Xkeen, GeoSite, GeoIP
-dxc — Xray
-dkc — Xkeen
-dgsc — GeoSite
-dgic — GeoIP
Удаление / Утилиты и компоненты
-dx — Xray
-dk — Xkeen
-dgs — GeoSite
-dgi — GeoIP
-dс — Конфигурации Xray
-dt — Временные файлы
Удаление / Регистрации
-drx — Xray
-drk — Xkeen
Обновление регистрации утилит
-rrx — Xray
-rrk — Xkeen
Переустановка
-x — Xray
-k — Xkeen
-rc — Конфигурационные файлы Xray
Резервные копии / Создание
-xb — Xray
-kb — Xkeen
-cb — Конфигурационные файлов Xray
Резервные копии / Восстановление последней
-xbr — Xray
-kbr — Xkeen
-cbr — Конфигурационные файлы Xray
Проверки
-tpc — Соединение
-tpx — Порты Xray
-tfx — Файлы Xray
-tfk — Файлы Xkeen
-v — Версия Xkeen
Управление Xray
-start — Запуск Xray
-stop — Остановить Xray
-restart — Перезапустить Xray
-status — Показать текущий статус работы Xray
Автор
-ad — Если Вам полезна утилита, можете купить Мне кофе
-af — Обратная связь
Список протестированных устройств
Giga
KN-1010 / Работает
KN-1011 / Работает
KN-2410 / Работает
Ultra
KN-1810 / Работает
KN-1811 / Работает
KN-2510 / Работает
Peak
KN-2710 / Работает
Hopper
KN-3610 / Работает
Viva
KN-1910 / Работает
KN-1912 / Работает
Hero 4G+
KN-2311 / Работает
Giant
KN-2610 / Работает
Если Вашего устройства нет в списке — это не значит, что на нем не будет работать Xkeen.
Это значит, что не было тестирования на нем. Можете смело попробовать установить на свое устройство.
Ничего не сломаете.
Если при выполнении команды
xkeen -start
Вы получаете ошибку похожую на
line 1: can't open html: no such file
line 2: syntax error: unexpected redirection
Пожалуйста, сообщите о ней в тему или мне в личные сообщения, с указанием модели Вашего роутера.
В одном из следующих обновлений ошибка будет исправлена. До того момента поддержки на Ваше устройство нет.
Способ установки
opkg install curl tar
curl -s -L https://github.com/Skrill0/XKeen/releases/latest/download/xkeen.tar --output xkeen.tar && tar -xvf xkeen.tar -C /opt/sbin --overwrite > /dev/null && rm xkeen.tar
xkeen -i
Выбираем интересующие Вас GeoIP и GeoSite.
Можно установить все сразу.Устанавливаем время автоматического обновления.
Готово. Вы великолепны.
Можете настраивать конфигурации Xray под свои нужды.Конфигурационные файлы находятся по пути «/opt/etc/xray/configs/»
Некоторые имеют детальное описание. Его можно удалить.
Как выглядит установка в PuTTy

Полезные ссылки для настройки
GitHub репозиторий Xray
Чат X project в telegram — можно спросить друзей-китайцев.
Рекомендую писать на английском.
Быстрый старт от XTLS-Team
Базовое руководство от XTLS-Team
Продвинутое руководство от XTLS-Team
Быстрая настройка сервера на VPS
Минималистичная, но более сложная настройка сервера на VPS
Базовый разбор технологий и протоколов
Образцы конфигураций
Полезные категории GeoSite
В GeoSite v2fly нет зоны Ru.
Реклама
ext:geosite_v2fly.dat:category-ads-all — Компиляция
* EasyList, AdGuard DNS Filter, Peter Lowe, Dan Pollokext:geosite_v2fly.dat:xiaomitv-ads
ext:geosite_v2fly.dat:adobe-ads
ext:geosite_v2fly.dat:apple-ads
ext:geosite_v2fly.dat:adcolony-ads
ext:geosite_v2fly.dat:adblock
ext:geosite_v2fly.dat:adblockplus
ext:geosite_v2fly.dat:adguard
Поисковые системы
ext:geosite_v2fly.dat:duckduckgo
ext:geosite_v2fly.dat:google
ext:geosite_v2fly.dat:yandex
Игры
ext:geosite_v2fly.dat:xbox
ext:geosite_v2fly.dat:playstation
ext:geosite_v2fly.dat:steam
ext:geosite_v2fly.dat:rockstar
ext:geosite_v2fly.dat:epicgames
ext:geosite_v2fly.dat:gog
Сервисы
ext:geosite_v2fly.dat:sony
ext:geosite_v2fly.dat:microsoft
ext:geosite_v2fly.dat:nvidia
ext:geosite_v2fly.dat:xiaomi
ext:geosite_v2fly.dat:category-android-app-download
ext:geosite_v2fly.dat:openai
ext:geosite_v2fly.dat:paypal
ext:geosite_v2fly.dat:ebay
ext:geosite_v2fly.dat:facebook
ext:geosite_v2fly.dat:instagram
ext:geosite_v2fly.dat:youtube
ext:geosite_v2fly.dat:tiktok
ext:geosite_v2fly.dat:vk
ext:geosite_v2fly.dat:telegram
ext:geosite_v2fly.dat:whatsapp
ext:geosite_v2fly.dat:adobe
ext:geosite_v2fly.dat:adobe-activation
Дополнительные Geo
ext:geosite_v2fly.dat:category-gov-ru — Государственные сайты РФ
ext:geosite_antizapret.dat:zapretinfo — Доменные имена списка AntiZapret
ext:geosite_antifilter.dat:antifilter — Доменные имена списка AntiFilter
ext:geosite_antifilter.dat:antifilter-community — Доменные имена списка AntiFilter Community
Полезные категории GeoIP
Основной
ext:geoip_v2fly.dat:ru — зона Ru
Сервисы
ext:geoip_v2fly.dat:cloudflare
ext:geoip_v2fly.dat:cloudfront
ext:geoip_v2fly.dat:facebook
ext:geoip_v2fly.dat:fastly
ext:geoip_v2fly.dat:google
ext:geoip_v2fly.dat:netflix
ext:geoip_v2fly.dat:twitter
ext:geoip_v2fly.dat:telegram
ext:geoip_v2fly.dat:private
Дополнительные Geo
ext:geoip_antifilter.dat:antifilter — Список AntiFilter
ext:geoip_antifilter.dat:antifilter-community — Список AntiFilter Community
Базовый способ настройки ручной маршрутизации
Помимо GeoIP / GeoSite есть следующие варианты внесения маршрутов
Частичное совпадение
"vk.com" = "vk.com.ru", "music.vk.com.ru", "www.vk.com/im" ≠ vk.ruРегулярное выражение
Пример записи: "regexp:\\.ya.*\\.ru$" = "www.yandex.ru", "mail.yandex.ru" ≠ "ya.ru"
Обязательно начинается с "regexp:"Поддомен
Пример записи: "domain:keenetic.com" = "forum.keenetic.com" ≠ "forum.keenetic12345.com"Точное совпадение
Пример записи: "full:keenetic.com" = "keenetic.com" ≠ "www.keenetic.com", "keenetic123.com"
Пример записи в 10_routing.json
{
"routing": {
"rules": {
"domain": [ //Указываем нужные Вам доменные имена
"full:keenetic.com", // Точное совпадение
"domain:keenetic.com", // Поддомен
"regexp:\\.ya.*\\.ru$", // Регулярное выражение
"vk.com", // Частичное совпадение
"ext:geosite_antizapret.dat:ZAPRETINFO" // GeoSite AntiZapret
],
"ip": [ // Указываем нужные Вам IP
"192.168.1.1", // Точное совпадение
"10.0.0.0/8", // CIDR
"ext:geoip_antifilter.dat:antifilter" // GeoIP AntiFilter
],
"outboundTag": "proxy" // Указываем тег подключения, через которое открывать ресурсы
}
}
}
При использовании встроенного proxy-клиента keenetic
Компонент прокси-клиент из прошивки не поддерживает UDP — Официальный ответ от поддержки Keenetic
В политиках не поднимайте proxy-подключение выше основного
* Если поднимаете надо прописать путь до VPS-сервера в маршрутах. Спасибо Artem LaptevПрименяйте proxy-политику к конкретным клиентам
В Proxy-подключении должно быть включено «Использовать для выхода в интернет»
Не работает «localhost» в настройках прокси-клиента Keenetic.
Спасибо Artem Laptev
* Вероятно, особенность реализации прокси-клиентаНа прошивках ниже 4.× через созданное прокси-подключение нужно проложить маршрут, как на скриншоте ниже. Спасибо Artem Laptev.

На данном этапе встроенный прокси-клиент — самый простой способ направить соединение на Xray.
В 99% случаев нет смысла возиться с tproxy / dokodemo-door или маркировать трафик UDP/TCP.
Прокси-клиент Keenetic направляет соединение на Xray, поднятый на роутере. И только потом, к примеру, на соединение с VPS.
Xray также завернет Ваш трафик в то, что Вы указали в его конфигурации.
К примеру, в TCP. Т.к. соединение клиента и сервера должно иметь идентичную конфигурацию. В противном случае Ваш трафик будет распознан, как «чужой».
Сохраняем комфорт даже при мобильной сети
Способ удаления
opkg remove xkeen
opkg remove xray
Удаленить backups в «/opt/»
* Если не требуются резервные копии Xray / Xkeen / Ваших конфигураций.
Известные проблемы
Неправильно определяется модель процессораMIPS 1004KcИсправленоНеправильно компилируется Xray на процессоры MIPS 24kc В работе
Не работает ключ -tpxИсправленоНекорректно работает выбор отдельных GeoIPИсправлено
Если не работает автозапуск Xray при включении роутера или автоматические обновления
Проверьте, что у Вас указан путь до инициатора автозагрузок Entware в Web роутера. Это делается следующим образом
Заходим в интерфейс через шлюз роутера. По стандарту это 192.168.1.1
Управление > OPKG
Проверяем поле «Сценарий initrc» Оно должно иметь следующее содержимое
/opt/etc/init.d/rc.unslung

Обновления
Версия 0.6 от 12 сентября 2023
Полностью переписана логика определения архитектуры и набора инструкций процессора
Добавлены резервные репозитории Xray
Небольшие фиксы интерфейса
Доработка журналирования
Обновлена логика создания S05crond
Добавлена поддержка роутеров Keenetic:
Giga
KN-1010 / Tested
KN-1011 / Tested
KN-2410 / Tested
Ultra
KN-1810 / Tested
KN-1811
KN-2510 / Tested
Peak
KN-2710
Hooper
KN-3810 / Tested
KN-3610 / Tested
Extra
KN-1710 / Tested
KN-1711 / Tested
KN-1713 / Tested
Viva
KN-1910 / Tested
KN-1912 / Tested
4G
KN-1210 / Tested
KN-1211 / Tested
KN-1212 / Tested
Hero 4G+
KN-2311 / Tested
DSL
N-2010 / Tested
Duo
KN-2110 / Tested
Omni
KN-1410 / Tested
Giant
KN-2610 / Tested
Версия 0.7 от 12 сентября 2023
Исправление переменных окружения
Исправление определения архитектур
Версия 0.8 от 17 сентября 2023
Исправление выбора GeoIP
Рефакторинг кода для определения архитектур
Улучшен init скрипт для автозапуска Xray
Добавлена обработка важных операций в журнале роутера
* Остановка / Запуск Xray, автоматические обновление и другиеИсправлен ключ -tpx
Карта развития проекта
Исправление ошибок блока «Известные проблемы»
Доработка интерфейса установки в модуле автоматических обновлений
Написание цикла статей из голосования в теме по конфигурациям Xray
Веб-интерфейс / Не точно
Если Вам нужна помощь
Сначала попробуйте найти ответ на форуме keenetic по ключевым словам
Если ответа не нашли, то
Относитесь уважительно к участникам форума
Выясните, на каком этапе возникает проблема
Какие способы решения Вы уже пробовали
Приложите файлы журнала по путям:
«/opt/var/log/xkeen/error.log», «/opt/var/log/xkeen/info.log», «/opt/var/log/xray/error.log», «/opt/var/log/xray/access.log».Приложите требующиеся, на Ваш взгляд, скриншоты
Сделайте Ваше обращение легкочитаемым и оформленным
Приглашаю Всех в теме делиться своими наблюдениями и решениями связанных с Xray и его настройкой.
Все решения будут вынесены в шапку темы и, по возможности, реализованы в утилите в перспективе.
Автор не несет никакой ответственности и не гарантирует поддержку
Если хотите купить автору кофе
Тинькофф
Прямая ссылка
tinkoff.ru/rm/krasilnikova.alina18/G4Z9433893
Номер карты
2200 7008 8716 3128
QIWI
Прямая ссылка
qiwi.com/n/21BUNNY21
Никнейм Qiwi-кошелька
21BUNNY21
ЮMoney
Прямая ссылка
yoomoney.ru/to/410018052017678
Номер ЮMoney-кошелька
4100 1805 201 7678
Crypto
Монета USDT, сеть TRC20
TSC6Emx5KHK4CpYFKWj7duSYboKRAVxS3M
Монета USDT, сеть ERC20
0x4a0369a762e3a23cc08f0bbbf39e169a647a5661
Монета USDT, сеть BEP20
0x4a0369a762e3a23cc08f0bbbf39e169a647a5661