Tommi Posted November 21, 2025 Posted November 21, 2025 (edited) Решил допилить установочный и обслуживающий скрипт для S-UI. Тестировал работу на Keenetic Ultra KN-1811 и Keenetic Peac. В целом на aarch64 (arm64) точно работает. Других устройств у меня нет что бы протестировать, буду рад если кто-то опишет свой опыт установки на других версиях Keenetic. П.С. Ставить отдельно Sing-Box не нужно, в S-UI встроен SingBox этот, ставим по инструкции ниже и больше ничего не нужно. Установка: Спойлер Установить Curl и Bash: opkg update && opkg install curl bash Установка скрипта с выбором установки кастомной версии: curl -O https://gitlab.com/own-open-source/s-ui-keenetic/-/raw/main/s-ui.sh && bash s-ui.sh Установка скрипта рекомендованной версии сразу: curl -O https://gitlab.com/own-open-source/s-ui-keenetic/-/raw/main/s-ui.sh && bash s-ui.sh install Обновить скрипт и/или панель s-ui можно как вместе так и по отдельности через сам скрипт. Проверка совместимости если не уверены: Спойлер Нужно убедиться что стоит Entware: command -v opkg Проверить архитектуру: uname -m Результат по Entware должен быть: /opt/bin/opkg Результат по архитектуре любой из списка ниже: (x86_64 | x64 | amd64) = amd64, (i*86 | x86) = 386, (armv8* | armv8 | arm64 | aarch64) = arm64, (armv7* | armv7 | arm) = armv7, (armv6* | armv6) = armv6, (armv5* | armv5) = armv5 (s390x) = s390x Примеру ответа как у меня: Пример настройки KeenDNS на панель: Спойлер 1) В панельке обязательно установить в поле "Адрес" свой IP главного Bridge0, у меня Bridge0 = 192.168.160.1 2) В KeenDNS прописываем всё на основание скрина ниже, в IP указать Bridge0, порт который будет в S-UI, протокол HTTPS и придумываем свой DNS. 3) Собираем SSL сами или как на скрине ниже, выделил пути которые нужно потом будет вставить в панельку. 4) В панельке, в разделе settings прописываем в поле адрес Ваш Bridge0, SSL которые получили, порт и URL панели ( который указали в пункте 2. ) Готово, теперь можно зайти по KeenDNS в панельку. Настройки: 1. Cвязь S-UI с Keenetic и SOCKS5 с работой по TCP и донастройкой для работы UDP 2. Маршрутизация трафика на основе запросов DNS/Domain, Wildcard, Keyword, RegEx, IP - CIDR, IP - LAN. А так же трафика по типу входящих протоколов (HTTP,TLS,QUiC,STUN,DNS,BitTorrent,DTLS,SSH,RDP,NTP), портов, источника IP, источника порта, сети TCP или UDP, версии IPv4 или IPv6, клиентов и входящих точках. 3. Индивидуальная настройка Keenetic под S-UI Спойлер Cвязь S-UI с Keenetic. Спойлер 1.1. Заходим в панель Keenetic и настраиваем proxy по SOCKS v5, жмём другие подключения и добавляем подключение в разделе прокси-подключения, протокол, адресс, тип аутентификации пишем как на скрине ниже, а подключаться через можно оставить любое, но предпочтительно выбрать свой Bridge0 1.2. Теперь открываем у SOCKS5 пропуск UDP трафика иначе будет идти только TCP, для этого заходим в WEB CLI по адресу http://192.168.160.1/webcli/parse где 192.168.160.1 это ваш Bridge0 и вводим по порядку команды ниже. show interface - и ищем через поиск браузера "id" вашего созданного прокси, у меня "id": "Proxy1" interface {ID} proxy socks5-udp - эта команда откроет UDP у SOCKS5, нужно обязательно сделать! system configuration save - сохраняем настройки На этом всё, теперь можно приступать к настройке SOCKS5 в S-UI, об этом во втором пункте. Маршрутизация трафика на основе запросов и т.д. настройка S-UI Спойлер 2.1. Начнём с настройки inbounds, в левой панели выбираем входящие и нажимаем добавить, после чего выбираем тип SOCKS5 и указываем остальные настройки как у меня, клиенты я ставлю "никакие" это значит что SOCKS5 буде доступен без аутентификации по паролю и логину, т.к. у меня SOCKS5 внутри сети 127.0.0.1 мне не зачем лишнюю аутентификацию делать. 2.2. Настроим outbounds в левой панели выбираем исходящие и добавляем одно исходящие через наш основной интерфейс, а второй через какой либо ваш внешний сервер. 2.3. Для выхода напрямую через вашего провайдера выбираем Direct и заполняем как на скрине ниже 2.4. И добавляем ещё один выход через какой либо ваш внешний сервер... в моём примере простой выход через SOCKS5, но это старое соединение, сейчас у меня через Hysteria2 2.5. Настроим rules в левой панели выбираем правила и добавляем два правила, одно (под 3 номером) для того что бы выходить через внешний сервер, другое что бы выходить через вашего основного провайдера (под 4 номером). Сразу оговорю порядковый номер играет роль сортировки и имеет значение при проходе по правилам, поэтому первые два правила по умолчанию установлены при установке S-UI их обвёл зелёным и не трогаем, а добавляем те что обведены жёлтым 2.6 Первое правило самое сложное, но и самое интересное, именно оно будет отсылать во внешний сервер наш трафик по тем условиям что мы в него добавим, а добавить там можно много всего, но тут постараюсь пройтись по основному. Первым делом указываем что правило логическое, это что бы можно было добавить подмножество правил, потом появляется кнопка добавить правило, тыкаем её и добавляем столько сколько нужно, у меня 5 правил, далее добавляем в каждое правило условие через кнопку параметры правила, выбираем Домен/IP и после чего устанавливаем в соответствующие поля нужны правила как на скрине ниже. Далее будет скрин описывающий логику всех подтипов правил Домен/IP. 2.7. В параметрах правил как видим много условий по которым мы можем задать куда маршрутизировать трафик, но мы выбираем везде Домен/IP 2.6 Теперь добавим правило для направления трафика через нашего провайдера. Я не стал заморачиваться и у меня данное правило стоит как видно из пункта 2.5 последним 4-ым, а значит если первые 3 условия не попали то обязательно будет 4 потому что в нём тупо выход через нашего провайдера. Готово, про настройку клиентов рассказывать не стал т.к. тут упрощённая инструкция, да и сложного там ничего нет. Можно переходить к 3 пункту что бы настроить домашние устройства ради которых мы старались Индивидуальная настройка Keenetic под S-UI Спойлер 3.1. Настраиваем работу наших устройств и сетей под индивидуальные настройки, для этого начнём с того что в приоритетах подключений создадим новую политику для проброса трафика через S-UI, делаем всё как на скирне ниже, галочку многопутевая передача ставить НЕ надо. Так же надо обязательно вашего провайдера поставить следующим после S-UI-LOCAL, для того что бы если вдруг что-то с S-UI случиться, клиенты не остались без интернета совсем, у меня идёт провайдер через Ethernet-подключение. В политике по умолчанию поднимаем нашего провайдера в верх, у меня идёт провайдер через Ethernet-подключение, а S-UI-LOCAL спускаем в самый низ 3.2. Переходим во вкладку применение политик и тут самое интересно, в политеке по умолчанию всё идёт на прямую через провайдера мимо S-UI, там у меня Bridge(ы) которым не нужно фильтровать трафик, такие как умные розетки, лампочки, увлажнители и т.п. А вот в политике которую мы создали у меня Bridge(ы) которые я виду через S-UI, а все устройства находиться в политике по умолчанию сегмента, для того что бы они подчинялись правилам Bridge(ей) в которых находятся. Для примера я mybook вынес из политике по умолчанию сегмента в S-UI и вот такие лучше направить все в политику по умолчанию сегмента, а Bridge(ми) управлять. Но тут кому как нравиться уже 3.3. Возвращаемся в CLI http://192.168.160.1/webcli/parse где 192.168.160.1 это мой Bridge0 и выполните команды ниже для установки DNS DOT. dns-proxy tls upstream 1.1.1.1 sni cloudflare-dns.com dns-proxy tls upstream 1.0.0.1 sni cloudflare-dns.com system configuration save 3.4. Ну и в конце нашего пути установим любимые DNS для нашего провайдера, а вот галочку "Игнорировать DNSv4 интернет-провайдера" по моему опыту лучше ставить На этом всё! П.С. На самом деле всё не сложно, но в одном канале один хороший человек увидев картинку из пункта 2.6. скинул в ответ такую картинку... мне понравилось)) Всем хорошего настроения 4. Подключение внешних клиентов proxy к вашему Keenetic по KeenDNS / IP и создание клиентов. Спойлер 4.1. Для того что бы подключить внешних клиентов нужно создать пользователей - клиентов в S-UI. Настроим clients в левой панели выбираем клиенты и добавляем. 4.2. Создадим для примера клиента admin как на скрине ниже 4.3. И пароль 12345 как на скрине ниже 4.4. Теперь настроим inbounds, в левой панели выбираем входящие и нажимаем добавить, после чего выбираем тип mixed и указываем остальные настройки как у меня. 4.5. IP это мой Bridge0 вы ставите свой Bridge0. Выбираем своего созданного клиента. 4.6. Теперь откроем порт на самом Keenetic, в разделе переадресация портов создадим подключение 4.7. Вход это провайдер, а выход это Bridge0, порты слушаем по TCP и UDP 4.8. В KeenDNS добавим свой DNS для подключения по DNS, как на скрине ниже. Готово, теперь можно пробовать подключиться внешним клиентам. Обновления/Releases: Спойлер v.1.0.0 Релиз версии S-UI v.1.0.1 Добавлено: DNS и SSL автоматизация через пункты меню + bugfix Исходный код скрипта: GitLab Исходный код s-ui: GitHab Edited December 18, 2025 by Tommi Инуструкция: Подключение внешних клиентов proxy к вашему Keenetic по KeenDNS / IP и создание клиентов 2 3 Quote
Сергей «Solaris» Сидоров Posted November 27, 2025 Posted November 27, 2025 Эх, жаль под mipsel нету 😔 Quote
Tommi Posted November 27, 2025 Author Posted November 27, 2025 (edited) 20 часов назад, Сергей «Solaris» Сидоров сказал: Эх, жаль под mipsel нету 😔 Понимаю, будь у меня устройство под mipsel, я бы попробовал пересобрать под него (не факт конечно что бы получилось, но под aarch64 без проблем пересобираю), но свою старую gigu продал около года назад... Спасибо кстати, натолкнул на мысль, посмотрел люди мучаются с тем что ставят отдельно 3X-UI на впску и сегодня решил пересобрать 3X-UI под aarch64 (arm64) сразу на Keenetic, пока есть время и возможность... сейчас заливаю в GitLab само приложение и допиливаю шел скрипт, потом отдельной темой выложу рабочий вариант Edited November 27, 2025 by Tommi Quote
akimoff365 Posted November 30, 2025 Posted November 30, 2025 Автору огромный респект и уважуха за проделанную работу. Только вот получается, что зря я купил Orange Pi, чтоб свой сервер поднять. Раньше кинетик работал как клиент VLESS, а теперь получается, что можно на кинетике свой сервер поднять? Это так или я ошибаюсь? Quote
Tommi Posted November 30, 2025 Author Posted November 30, 2025 1 час назад, akimoff365 сказал: Автору огромный респект и уважуха за проделанную работу. Только вот получается, что зря я купил Orange Pi, чтоб свой сервер поднять. Раньше кинетик работал как клиент VLESS, а теперь получается, что можно на кинетике свой сервер поднять? Это так или я ошибаюсь? Я всего-то скрипт написал, но спасибо!😊 Да, всё так, теперь Keenetic выступает в роли сервера прокси, все пробросы осуществляются удобно через S-UI и интерфейса UI самого Keenetic(а) без нужды лезть в терминал или куда либо ещё, у меня так работает, очень удобно. Могу выложить позже пример рабочего варианта как у меня прокси настроен, надо? Quote
akimoff365 Posted December 1, 2025 Posted December 1, 2025 13 часов назад, Tommi сказал: надо? Да, конечно. Было бы очень здорово. И ждём 3X-UI для кинетика, уж очень интересно как он работать будет. Спасибо. Quote
Tommi Posted December 2, 2025 Author Posted December 2, 2025 (edited) В 02.12.2025 в 11:58, PaxaR сказал: Добрый, я правильно понимаю что данная штука будет только на оригинальном кинетике работать? Добрый, в целом не обязательно, главное что бы стоял Entware т.к. система путей специально собранна под каталог /opt/. А архитектура была любой из списка ниже: (x86_64 | x64 | amd64) = amd64, (i*86 | x86) = 386, (armv8* | armv8 | arm64 | aarch64) = arm64, (armv7* | armv7 | arm) = armv7, (armv6* | armv6) = armv6, (armv5* | armv5) = armv5 (s390x) = s390x Ниже команды и скрин примера как у меня, если архитектура из списка и Entware установлен, то всё заработает Проверить архитектуру: uname -m Проверить что Entawe: command -v opkg П.С. Ещё мысль есть что бы OpenWrt заводилась, по факту надо немного скрипт поправить. Edited December 3, 2025 by Tommi Quote
Tommi Posted December 11, 2025 Author Posted December 11, 2025 В 01.12.2025 в 07:54, akimoff365 сказал: Да, конечно. Было бы очень здорово. И ждём 3X-UI для кинетика, уж очень интересно как он работать будет. Спасибо. Наконец-то осилил инструкцию, надеюсь не слишком сложно 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.