Pull to refresh

Xray на Keenetic / Xkeen

Level of difficultyEasy
Reading time9 min
Views41K

Всем доброго времени суток!

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

Пост обновляемый. Всегда актуальная версия на форуме Keenetic

preview
preview
Что такое Xray

Xray / v2ray — очень гибкая утилита для проксирования и защиты соединения, созданная для обхода GFW (Китайского Файрвола).
С помощью нее возможно обойти даже блокировки Ирана. Полагаю, что в РФ этого решения хватит на приличное время.

  • Решение не будет работать без глубокой настройки в Туркменистане

  • Решение не будет работать в КНДР.
    Там нет интернета в привычном нам понимании

  • Решение используется не только для обхода блокировок, но и защиты соединения

Основные возможности Xray

Основные возможности Xkeen

Автоматическая сборка актуальной версии Xray под Ваш Keenetic.
Тестировался на aarch64, но гипотетически должен работать и на mipsmipsel.

Автоматические обновления
Включаются по желанию с возможностью гибкой настройки времени обновления

  • Xkeen

  • Xray

  • 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
  1. Выбираем интересующие Вас GeoIP и GeoSite.
    Можно установить все сразу.

  2. Устанавливаем время автоматического обновления.

  3. Готово. Вы великолепны.
    Можете настраивать конфигурации Xray под свои нужды.

    Конфигурационные файлы находятся по пути «/opt/etc/xray/configs/»
    Некоторые имеют детальное описание. Его можно удалить.

Как выглядит установка в PuTTy
Preview install
Preview install

Полезные ссылки для настройки
Полезные категории GeoSite

В GeoSite v2fly нет зоны Ru.

Реклама

  • ext:geosite_v2fly.dat:category-ads-all — Компиляция
    * EasyList, AdGuard DNS Filter, Peter Lowe,  Dan Pollok

  • ext: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 есть следующие варианты внесения маршрутов

  1. Частичное совпадение
    "vk.com" = "vk.com.ru", "music.vk.com.ru", "www.vk.com/im" ≠ vk.ru

  2. Регулярное выражение
    Пример записи: "regexp:\\.ya.*\\.ru$" = "www.yandex.ru", "mail.yandex.ru" ≠ "ya.ru"
    Обязательно начинается с "regexp:"

  3. Поддомен
    Пример записи: "domain:keenetic.com" = "forum.keenetic.com" ≠ "forum.keenetic12345.com"

  4. Точное совпадение
    Пример записи: "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

  1. В политиках не поднимайте proxy-подключение выше основного   
    * Если поднимаете надо прописать путь до VPS-сервера в маршрутах. Спасибо Artem Laptev

  2. Применяйте proxy-политику к конкретным клиентам

  3. В Proxy-подключении должно быть включено «Использовать для выхода в интернет»

  4. Не работает «localhost» в настройках прокси-клиента Keenetic. 
    Спасибо Artem Laptev
     * Вероятно, особенность реализации прокси-клиента

  5. На прошивках ниже 4.× через созданное прокси-подключение нужно проложить маршрут, как на скриншоте ниже. Спасибо Artem Laptev.

Настройки маршрута в Web роутера
Настройки маршрута в Web роутера

На данном этапе встроенный прокси-клиент — самый простой способ направить соединение на Xray.
В 99% случаев нет смысла возиться с tproxy / dokodemo-door или маркировать трафик UDP/TCP.

Прокси-клиент Keenetic направляет соединение на Xray, поднятый на роутере. И только потом, к примеру, на соединение с VPS. 
Xray также завернет Ваш трафик в то, что Вы указали в его конфигурации.
К примеру, в TCP. Т.к. соединение клиента и сервера должно иметь идентичную конфигурацию. В противном случае Ваш трафик будет распознан, как «чужой».

Сохраняем комфорт даже при мобильной сети

После настроенного на роутере Xray — его можно использовать в качестве портала.
При этом дополнительные настройки конфигурации не нужны.

Вот 2 способа решения задачи
1. IKE подключением по инструкции Keenetic
2. SSTP подключением по инструкции Keenetic / Спасибо @Alexey77

Способ удаления
opkg remove xkeen
opkg remove xray

Удаленить backups в «/opt/»
* Если не требуются резервные копии Xray / Xkeen / Ваших конфигураций.

Известные проблемы
  1. Неправильно определяется модель процессора MIPS 1004Kc Исправлено

  2. Неправильно компилируется Xray на процессоры MIPS 24kc В работе

  3. Не работает ключ -tpx  Исправлено

  4. Некорректно работает выбор отдельных GeoIP  Исправлено

Если не работает автозапуск Xray при включении роутера или автоматические обновления

Проверьте, что у Вас указан путь до инициатора автозагрузок Entware в Web роутера. Это делается следующим образом

  1. Заходим в интерфейс через шлюз роутера. По стандарту это 192.168.1.1

  2. Управление > OPKG

  3. Проверяем поле «Сценарий initrc» Оно должно иметь следующее содержимое

/opt/etc/init.d/rc.unslung
Сценарий initrc
Сценарий initrc

Обновления
Версия 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
  1. Исправление переменных окружения

  2. Исправление определения архитектур

Версия 0.8 от 17 сентября 2023
  1. Исправление выбора GeoIP

  2. Рефакторинг кода для определения архитектур

  3. Улучшен init скрипт для автозапуска Xray

  4. Добавлена обработка важных операций в журнале роутера
    * Остановка / Запуск Xray, автоматические обновление и другие

  5. Исправлен ключ -tpx

Карта развития проекта
  1. Исправление ошибок блока «Известные проблемы»

  2. Доработка интерфейса установки в модуле автоматических обновлений

  3. Написание цикла статей из голосования в теме по конфигурациям Xray

  4. Веб-интерфейс / Не точно

Благодарности
Если Вам нужна помощь

Сначала попробуйте найти ответ на форуме 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

Tags:
Hubs:
Total votes 32: ↑31 and ↓1+30
Comments31

Articles