Веб-интерфейс для управления конфигурациями сетевых сервисов на роутерах Keenetic с установленным Entware.
Выполните на роутере одну команду:
curl -Ls https://raw.githubusercontent.com/fan92rus/xkeen-ui/master/xkeen-go/scripts/setup.sh | shИли через wget:
wget -qO- https://raw.githubusercontent.com/fan92rus/xkeen-ui/master/xkeen-go/scripts/setup.sh | shОткройте веб-интерфейс: http://<ip-роутера>:8089
Пароль по умолчанию: admin
⚠️ Важно: Система потребует сменить пароль при первом входе.
- Роутер Keenetic с установленным Entware
- Установленный XKeen
- Архитектура: ARM64 (KN-1010, KN-1810, KN-1910 и др.) или MIPS
- Подсветка синтаксиса JSON/YAML с темой One Dark
- Поддержка JSONC (JSON с комментариями)
- Автоматическое создание резервных копий при сохранении
- Просмотр различий (diff) между версиями
- Восстановление из резервных копий
- Запуск, остановка, перезапуск
- Мониторинг статуса в реальном времени
- Переключение между ядрами Xray и Mihomo
- Потоковая передача логов через WebSocket
- Фильтрация по уровню (error, warn, info)
- Поиск по содержимому логов
- Переключение между access.log и error.log
- Интерактивное выполнение команд с выводом в реальном времени
- Поддержка ввода данных для интерактивных команд
- Категоризация команд по группам
- Предупреждения для опасных операций
- Кэширование списка команд на 5 часов с ручным обновлением
- Одно-кликовая установка (amneziawg-go + amneziawg-tools)
- Управление интерфейсами: старт, стоп, добавление, удаление конфигураций
- Клиентский режим — туннель с fwmark-маршрутизацией для Xray/Mihomo
- Серверный режим — полноценный Full Tunnel VPN-сервер со встроенным iptables firewall
- Управление пирами: добавление, удаление, генерация клиентских конфигураций
- QR-код для мобильных клиентов (AmneziaWG)
- Пресеты обфускации: Random, Full, Light, Minimal, Plain WG
- Применение изменений пиров через
awg syncconfбез перезапуска интерфейса - Встроенный watchdog: cron-проверка каждую минуту, автоматическое восстановление iptables
- Постоянное хранение клиентских конфигураций в
/opt/etc/awg/clients/
- Управление прокси-подписками
- Встроенная AWG-подписка (ID
__awg__) — автоматическая генерация прокси из AWG-интерфейсов - Система фильтров для выборочного использования прокси
- Генерация конфигурации Mihomo из подписок с маппингом стратегий proxy-group
- Опциональная конвертация Xray 05_routing.json в правила Mihomo
- Переключение режима работы (Xray/Mihomo)
- Изменение уровня логирования
- Управление паролем администратора
- Проверка и установка обновлений в один клик
- Автоматическое обновление через GitHub releases с SSE-прогрессом
- Установка и удаление AWG
- Условные вкладки: AWG показывается только при установленном AWG, Метрики — при включённых метриках Xray
xkeen-ui start # Запуск
xkeen-ui stop # Остановка
xkeen-ui restart # Перезапуск
xkeen-ui status # Статус
xkeen-ui log # Логи
xkeen-ui uninstall # УдалениеФайл конфигурации: /opt/etc/xkeen-ui/config.json
{
"port": 8089,
"mode": "xray",
"xray_config_dir": "/opt/etc/xray/configs",
"xkeen_binary": "xkeen",
"mihomo_config_dir": "/opt/etc/mihomo",
"mihomo_binary": "mihomo",
"awg_config_dir": "/opt/etc/awg",
"allowed_roots": [
"/opt/etc/xray",
"/opt/etc/xkeen",
"/opt/etc/mihomo",
"/opt/etc/awg",
"/opt/var/log"
],
"log_level": "info",
"metrics_port": 0,
"cookie_secure": false,
"trust_proxy_headers": false,
"auth": {
"session_timeout": 24,
"max_login_attempts": 5,
"lockout_duration": 5
}
}| Параметр | Описание | По умолчанию |
|---|---|---|
port |
Порт веб-интерфейса | 8089 |
mode |
Режим работы: xray или mihomo |
xray |
xray_config_dir |
Директория конфигураций Xray | /opt/etc/xray/configs |
xkeen_binary |
Путь к бинарнику xkeen | xkeen |
mihomo_config_dir |
Директория конфигураций Mihomo | /opt/etc/mihomo |
mihomo_binary |
Путь к бинарнику mihomo | mihomo |
awg_config_dir |
Директория AWG-конфигураций | /opt/etc/awg |
awg_lan_iface |
LAN-интерфейс для firewall (пусто = авто) | — |
awg_wan_iface |
WAN-интерфейс для firewall (пусто = авто) | — |
awg_endpoint |
Переопределение Endpoint для клиентов (пусто = авто) | — |
allowed_roots |
Разрешённые директории для файловых операций | xray, xkeen, mihomo, awg, log |
log_level |
Уровень логирования (debug, info, warn, error) | info |
metrics_port |
Порт метрик Xray (0 = отключено) | 0 |
cookie_secure |
Secure-флаг для cookie (включать при HTTPS) | false |
trust_proxy_headers |
Доверять X-Forwarded-For (за обратным прокси) | false |
session_timeout |
Время жизни сессии в часах | 24 |
max_login_attempts |
Попыток входа до блокировки | 5 |
lockout_duration |
Длительность блокировки в минутах | 5 |
- bcrypt — хеширование паролей с cost 12
- CSRF — защита от межсайтовой подделки запросов
- Rate limiting — ограничение попыток входа по IP
- Path validation — защита от path traversal через whitelist директорий
- Security headers — X-Frame-Options, CSP, X-Content-Type-Options
xkeen-ui uninstallПри удалении будет предложено сохранить директорию конфигурации.
git clone https://github.com/fan92rus/xkeen-ui.git
cd xkeen-ui/xkeen-go
make deps # Установка зависимостей
make build # Сборка для текущей ОС
make keenetic-arm64 # Сборка для Keenetic ARM64
# Опционально: сжатие UPX
upx --best --lzma build/xkeen-ui-keenetic-arm64- Backend: Go
- Frontend: Vue 3, Pinia, CodeMirror 6, Chart.js
- Протоколы: HTTP, WebSocket, SSE
- Тестирование: Vitest (frontend), Go testing (backend)
MIT License