Keenetic · Entware · Xray

BROray

Менеджер Xray для Keenetic с WebUI, подписками, выбором серверов и интеграцией со штатным прокси-интерфейсом KeeneticOS.

BROray 2.0.0 OPKG aarch64 / arm64 BusyBox / ash
Проверенное окружение Инструкция подготовлена по результатам установки и обновления BROray на Keenetic с Entware и BusyBox 1.37.0. Команды рассчитаны на оболочку ash.

1. Требования

  • совместимый роутер Keenetic с архитектурой aarch64/arm64;
  • установленный и запущенный Entware;
  • доступ к терминалу Entware с правами root;
  • доступ роутера в интернет;
  • достаточно свободного места в разделе /opt.

Предварительная проверка

uname -m
command -v opkg
df -h /opt

Архитектура должна определиться как aarch64 или arm64, а команда opkg должна быть доступна.

Факультатив: установка Entware во внутреннюю память Если Entware ещё не установлен, на некоторых моделях его можно разместить во внутренней памяти роутера. Возможность зависит от модели и версии KeeneticOS.

Официальная инструкция Keenetic

Это внешний материал. Он не является обязательным этапом, если Entware уже установлен и работает.

2. Установка BROray

Подключитесь к терминалу Entware на роутере и выполните одну команду:

wget -qO /tmp/broray-opkg.sh https://api.brovibe.cloud/releases/opkg.sh && ash /tmp/broray-opkg.sh

Сценарий установки автоматически:

  1. проверяет наличие Entware и архитектуру устройства;
  2. устанавливает необходимые сертификаты и HTTPS-загрузчик;
  3. подключает официальный OPKG-репозиторий BROvibe;
  4. устанавливает пакет broray и его зависимости;
  5. создаёт безопасную начальную конфигурацию Xray;
  6. запускает Xray, монитор и WebUI;
  7. настраивает публикацию WebUI через KeenDNS HTTP Proxy;
  8. показывает локальный и внешний адреса WebUI.
Не закрывайте терминал раньше времени Дождитесь сообщения об успешной установке и появления адресов WebUI.

3. Открытие WebUI

Стандартный локальный адрес:

http://192.168.1.1:8080/

Если LAN-адрес роутера изменён, установщик покажет фактический адрес. При настроенном KeenDNS также будет выведен внешний HTTPS-адрес вида:

https://broray.<домен-KeenDNS>/
Защищайте доступ к роутеру Не публикуйте адрес WebUI, ссылки подписок, UUID и полные URI серверов в открытом доступе.

4. Добавление подписки

  1. Откройте страницу BROray.
  2. Перейдите к разделу «Добавить подписку».
  3. В поле имени укажите понятное название, например BROvibe.
  4. Вставьте полную ссылку подписки.
  5. Нажмите кнопку добавления подписки.
  6. Откройте список узлов добавленной подписки и импортируйте нужные серверы.

Импортированные конфигурации появятся в разделе «Серверы». Ссылки подписки и параметры доступа хранятся на роутере.

Обновление подписки

В разделе «Подписки» можно обновить одну подписку или воспользоваться общим обновлением всех подписок. После обновления проверьте список серверов.

5. Выбор сервера

  1. Откройте раздел «Серверы».
  2. Выберите нужную конфигурацию.
  3. Нажмите кнопку активации сервера.
  4. Дождитесь проверки конфигурации и перезапуска Xray.
  5. Убедитесь, что сервер отмечен как активный.

BROray проверяет конфигурацию до её применения. Название активного сервера используется в описании интерфейса Keenetic.

6. Интерфейс Keenetic

BROray использует штатный прокси-интерфейс KeeneticOS Proxy0. В WebUI откройте раздел «Интерфейс Keenetic».

В рабочем состоянии должны отображаться:

Параметр Ожидаемое состояние
Интерфейс Proxy0
Тип Proxy
Link up
Connected yes
State up

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

7. Маршрутизация устройств

После запуска Proxy0 выберите в KeeneticOS, какие устройства или сегменты домашней сети должны использовать подключение BROray.

  1. Откройте веб-интерфейс KeeneticOS.
  2. Перейдите к настройкам приоритетов подключений.
  3. Создайте отдельную политику доступа в интернет либо отредактируйте существующую.
  4. Добавьте в политику подключение BROray/Proxy0.
  5. Назначьте этой политике нужные домашние устройства.
  6. Сохраните настройки и проверьте доступ в интернет.
Рекомендуемый порядок проверки Сначала назначьте BROray одному тестовому устройству. После успешной проверки добавляйте остальные устройства.

8. Обновление BROray

Обновление выполняется через подключённый OPKG-репозиторий:

opkg update && opkg upgrade broray

Проверить установленную версию:

/opt/broray/bin/broray version
Обновляйте только пакет BROray Команда выше не выполняет массовое обновление всех пакетов Entware.

9. Проверка и диагностика

Состояние BROray и активного сервера

/opt/broray/bin/broray status

Проверка конфигурации Xray

/opt/broray/bin/broray test

Успешная проверка заканчивается сообщением:

Configuration OK.

Состояние служб

/opt/etc/init.d/S23broray-monitor status
/opt/etc/init.d/S24broray status
/opt/etc/init.d/S25broray-web status

Состояние интерфейса Keenetic

ash /opt/broray/lib/interface.sh status

Перезапуск BROray

/opt/broray/bin/broray restart

Проверка локального WebUI

curl -fsS http://192.168.1.1:8080/ >/dev/null && echo "WebUI отвечает"

10. Предупреждения OPKG о настройках

При обновлении может появиться сообщение resolve_conffiles:

Existing conffile ... is different from the conffile in the new package.
The new conffile will be placed at ...-opkg.

Это не ошибка установки. OPKG:

  • сохраняет действующий пользовательский файл без изменений;
  • помещает новый шаблон из пакета рядом с суффиксом -opkg.

В BROray это может касаться файлов:

/opt/broray/config/system/settings.json-opkg
/opt/broray/config/lighttpd.conf-opkg

Перед удалением шаблонов можно сравнить версии:

diff -u \
    /opt/broray/config/system/settings.json \
    /opt/broray/config/system/settings.json-opkg

diff -u \
    /opt/broray/config/lighttpd.conf \
    /opt/broray/config/lighttpd.conf-opkg
Не заменяйте настройки вслепую Файлы -opkg являются новыми шаблонами. Автоматическая замена действующих файлов может сбросить адрес WebUI и другие пользовательские параметры.

11. Удаление BROray

Сначала измените маршрутизацию До удаления исключите интерфейс BROray из политик доступа KeeneticOS или назначьте устройствам другое рабочее подключение. Иначе выбранные устройства могут потерять доступ в интернет.

Рекомендуемое удаление с сохранением данных

Этот вариант удаляет BROray и интерфейс Proxy0, но сохраняет оставшиеся пользовательские данные для возможной повторной установки.

Выполняйте команды последовательно в терминале Entware:

ash /opt/broray/lib/interface.sh delete
opkg remove broray

При штатном удалении пакет автоматически:

  • останавливает BROray Monitor;
  • останавливает Xray;
  • останавливает BROray WebUI;
  • удаляет KeenDNS HTTP Proxy с именем broray;
  • сохраняет конфигурацию KeeneticOS.
Почему интерфейс удаляется отдельно Штатный сценарий OPKG не удаляет Proxy0. Поэтому команда ash /opt/broray/lib/interface.sh delete выполняется до удаления пакета, пока служебные сценарии BROray ещё доступны.

Полное удаление

Полное удаление дополнительно уничтожает настройки, подписки, импортированные серверы и запись репозитория BROray.

Необратимое действие Каталог /opt/broray содержит ссылки подписок, серверы и пользовательские настройки. После выполнения команд восстановить их можно будет только из резервной копии.

1. Необязательная резервная копия

STAMP="$(date +%Y%m%d-%H%M%S)"
tar -czf "/opt/broray-backup-$STAMP.tar.gz" /opt/broray
chmod 600 "/opt/broray-backup-$STAMP.tar.gz"

Архив будет сохранён непосредственно в каталоге /opt, то есть за пределами удаляемого каталога BROray.

2. Удаление интерфейса и пакета

ash /opt/broray/lib/interface.sh delete
opkg remove broray

3. Удаление оставшихся данных и репозитория

rm -rf /opt/broray
rm -f /opt/etc/opkg/broray.conf
rm -f /opt/bin/broray /opt/bin/broray-server

Зависимости Entware, например curl, jq или lighttpd, автоматически не удаляются: они могут использоваться другими установленными приложениями.

Проверка удаления

opkg list-installed | grep '^broray ' || echo "Пакет BROray удалён"

[ ! -e /opt/broray ] && echo "Каталог BROray удалён"

ndmc -c "show interface Proxy0" 2>/dev/null ||
    echo "Интерфейс Proxy0 отсутствует"

Повторная установка

После полного удаления BROray можно установить заново стандартной командой:

wget -qO /tmp/broray-opkg.sh https://api.brovibe.cloud/releases/opkg.sh && ash /tmp/broray-opkg.sh