-
Постов
21 -
Зарегистрирован
-
Посещение
Достижения byDG
Пользователь (2/6)
3
Репутация
-
Это была ошибка в версии 1.1.0 скрипта, в версии 1.1.1 всё починил. Это постараюсь исправить, но вроде не критично.
-
Да
-
Всё верно
-
Версия 1.1.1 Что исправлено: check_panel в 1.1.0 искал процесс панели через pgrep -x, а на busybox роутера эта опция может работать иначе (или не работать): панель запускалась, но скрипт её «не видел». Теперь процессы просматриваются прямо в /proc средствами bash (первый аргумент командной строки должен быть путём к панели или иметь имя xui) : результат не зависит от версии pgrep, сторонние программы с xui в параметрах не принимаются за панель. Запасной вариант без /proc — pgrep -f. start: вывод панели при запуске раньше терялся (временный файл удалялся сразу). Теперь он сохраняется в /opt/var/log/x-ui-panel.out, а при неудачном старте последние 15 строк показываются на экране, чтобы была видна настоящая причина (ошибка в сертификате, настройках и т. п.). Если панель ничего не вывела, скрипт подсказывает команду для ручного запуска.
-
Версия 1.1.0 Что добавлено нового: Шапка меню: строка «Адрес панели», строка «SSL-сертификат» с оставшимися днями и цветной точкой (зелёная больше 30 дней, жёлтая 30 и меньше, красная — истёк или нет файлов), красное предупреждение при неверном времени роутера (год раньше 2025). Данные берутся из базы панели через sqlite3 (без запуска программы панели); срок сертификата кэшируется. Пункт 21 «Диагностика» (x-ui doctor) : Entware, процессор, место, панель и автозапуск, порт, наш скрипт и команда x-ui, права на ключ и базу, HTTPS и срок сертификата, время (в том числе расхождение с GitHub), доступ к GitHub, нужные программы, ядро Xray, целостность базы, cron. Код возврата 1 при ошибках. Пункт 22 «Доступ из интернета (мастер)» (x-ui remote_access) : открывает панель на всех адресах или возвращает только LAN; предупреждает о рисках, по умолчанию отказывается открывать без HTTPS; о порте в межсетевом экране только напоминает. Резервные копии: автокопия базы перед обновлением панели (backup_auto, снимок sqlite3 .backup + gzip, хранится BACKUP_KEEP последних), пункт «Автоматические копии по расписанию» (backup_cron, cron, воскресенье 04:30). Xray: «Установить свою версию XRay» (update_xray_custom) и «Откатить XRay» (rollback_xray, обмен с .bak) — пункты 6 и 7 меню обновлений. Установка вынесена в общую функцию xray_install_tag. Let's Encrypt (ssl_domain) : выбор метода проверки (HTTP на порту 80 или DNS через API провайдера, acme.sh --dns), тестовый режим staging. Ключи API не попадают в журнал. Команды для мониторинга: x-ui status --json (чистый JSON, код 0 если панель работает), x-ui update --check (коды 0, 10, 2). Код возврата команды теперь становится кодом выхода скрипта. Проверка целостности: файл x-ui.sh.sha256 в репозитории; установщик и обновление скрипта сверяют сумму (нет файла — только предупреждение, XUI_SKIP_HASH=1 отключает проверку в установщике). (Репозиторий) .github/workflows/check.yml: синтаксис, shellcheck (только ошибки), сверка суммы, формат версии. Настройка BACKUP_KEEP; в README описан файл настроек (LOG_SCRIPT, DEBUG_SCRIPT, CHECK_UPDATES, BACKUP_KEEP). Что исправлено: check_panel искал любую строку xui в командных строках процессов, из-за чего «работающей» могла считаться посторонняя программа; теперь точное имя процесса (pgrep -x). Права: permissions больше не ставит 755 на весь каталог (так приватный ключ и база читались всеми). Теперь 755 только у исполняемых файлов, а каталоги db, cert, backup и всё внутри закрыты от посторонних. На уже установленных роутерах права изменятся при следующей установке или пункте «Восстановить установку»; сразу: chmod -R go-rwx /opt/etc/x-ui/db /opt/etc/x-ui/cert /opt/etc/x-ui/backup. Скачивание: убран wget --no-check-certificate, сертификат GitHub теперь проверяется. При ошибке проверки выводится подсказка (дата и время на роутере, пакет ca-certificates), бесполезные повторы с другим тегом не делаются. Скрипт больше не удаляет файл x-ui.sh в текущем каталоге при «не Entware», неподдерживаемой архитектуре или релизе (раньше мог удалить установленный скрипт, например при запуске из оболочки без /opt/bin в PATH). uninstall: резервные копии базы по умолчанию переносятся в /opt/root/x-ui-backup (отдельный вопрос, по умолчанию «да»); строка автопродления сертификата убирается из cron; сообщается, что каталог /opt/etc/acme.sh остался; вместо kill -9 $$ стоит exit 0; в rm -rf добавлена защита ${переменная:?}. Ручная установка: по умолчанию предлагаются случайные логин, пароль и путь панели вместо admin / 12345 и /spub/. IP роутера: одна функция lan_ip вместо четырёх копий разбора ifconfig; понимает оба формата вывода, запасной вариант — ip. Мелочи: read -r в вопросах, поиск файла ядра Xray без ls | grep. Убран мёртвый код (поведение не меняется; строк 2726 → 2682, замечаний shellcheck 154 → 138, неиспользуемых переменных 8 → 0): Функции без единой ссылки: prepare_services (к тому же опасная: find … -delete без кавычек), is_enabled (на деле вызывала status), db_get, db_upd. install_custom_PANEL слита с install_custom_panel: осталась одна функция, её вызывает меню. Неиспользуемые переменные: ENABLED, ARGS, PREARGS, DESC, PROCS в блоке автозапуска; cid, notnull, dflt, pk при разборе таблиц базы (заменены на _). check_architecture: убраны шаблоны, которые уже перекрывала звёздочка (armv8 при armv8* и т. п.). install_base: убрана пауза sleep 1, шутливое сообщение заменено на «Установка необходимых пакетов...». Оптимизировано: Журнал (logmsg) больше не запускает внешние программы. Раньше каждое сообщение порождало 4 процесса (date и три sed). Теперь дата берётся встроенной printf, цветовые коды вырезаются подстановками bash, цепочка вызовов собирается только для журнала и отладки. Содержимое журнала и вывод на экран совпадают с прежними (сверено на всех 210 сообщениях скрипта). Замер: 300 сообщений 2,56 с → 0,04 с. Ротация журнала: когда script_x-ui.log вырастает больше 512 КБ, он откладывается в script_x-ui.log.1 (раньше журнал рос бесконечно). Открытие меню: внешних процессов 64 → 18, время 141 → 52 мс (замер в песочнице; на роутере выигрыш в миллисекундах больше). Версия Xray кэшируется по времени изменения файла ядра (без запуска программ): ядро не запускается при каждом открытии меню. Кэш сбрасывается сам при замене ядра и явно в update_xray. Одна функция github_latest_tag вместо четырёх копий запроса версии. В запасном варианте через API поле tag_name теперь читается и из «сжатого» JSON. last_version_checked использует её же, у запросов появилось ограничение по времени. Новая настройка CHECK_UPDATES (по умолчанию true) : false в файле настроек = меню не обращается к GitHub, точки скрыты. Пути сертификата читаются из панели одним запуском (ssl_cert_read), лишние запуски в ssl_enable_self_signed убраны. Сознательно не менялось: стилевые замечания shellcheck ($?, кавычки, local x=$(...)) и разбиение длинных функций. Скорость они не дают, а риск регрессий в 50+ местах заметный.
-
Версия 1.0.5 Что добавлено нового: Исходный x-ui.sh проекта x-ui-keenetic, полностью переведённый на русский: меню, вопросы, сообщения. При первом запуске выбор: 1) Автоматическая установка, 2) Самостоятельная настройка. Добавлен Пункт 13 «Получить SSL-сертификат для своего домена (Let's Encrypt)» (x-ui ssl_domain) : проверка домена и порта 80, установка acme.sh, выпуск сертификата, автопродление через cron, применение к панели. Нужны публичный IP и свободный порт 80. Добавлен Пункт 14 «Удалить SSL-сертификат (вернуться к HTTP)» Строка «Версия XRay: x.x.x» в шапке меню Отображение обновлений справа от версий «Скрипт X-UI», «Панель X-UI» и «Версия XRay»: зелёная — стоит последняя версия, жёлтая — есть обновление, красная — проверить не удалось. Что исправлено: После обновления панели x-ui.sh затирался родным скриптом из архива 3x-ui (ошибка /bin/bash: bad interpreter). Теперь этот файл из архива не копируется. При выборе сертификата и отсутствии файлов пути прописывались «в пустоту». Теперь скрипт предлагает создать сертификат, а для чужих несуществующих путей отказывается их прописывать. «Сертификат настроен» определялось неверно (пустые cert:/key:): HTTPS мог не включаться, а адрес показывался с https. Теперь проверяются сами файлы, а протокол определяется по реальному ответу панели. Ключи ecdsa при создании сертификата не работали (проблема с кавычками).
-
Скрипт автоматической установки веб-панели 3x-ui (панель управления Xray) на роутеры Keenetic с архитектурой aarch64 через Entware. Вы запускаете одну команду по SSH, а скрипт сам ставит зависимости, скачивает последнюю версию 3x-ui, настраивает панель, включает автозапуск и в конце показывает адрес, логин и пароль. opkg update && opkg install curl bash && curl -fsSL https://raw.githubusercontent.com/byDGer/3xui-keenetic-aarch64/main/install-3xui-keenetic.sh | sh Исходный код: 3xui-keenetic-aarch64 Сделано из заброшенного проекта: 3X-UI for Keenetic
-
byDG изменил фотографию своего профиля
-
Почему то, 3x-ui решил откатится с 3.0.1 на старую версию 2.9.4. А новую поставить не могу. Есть решение?
-
Так же, советую закрыть порт для telnet для подключения из вне, ибо началась DDOS-атака на роутер, после добавления DDNS. И чтобы потом самим заходить в роутер по telnet или SSH, просто подключаетесь к роутеру по SSTP.
-
Как я выяснил, подлкючение по SMB небезопасное, так как не просит логин и пароль при подключении. Из-за этого я отключил порт. Лучше всего подключаться по SFTP, ибо там подключение по логину и паролю. Для подключения использую Cx Проводник для Android.
-
У меня 3x-ui сам выставил SWAP в 1GB, так что, пока хватает. Discord заработал) Ну и сюда тоже напишу: Discord теперь использует еще и другие порты для звонков, так что только стандартные порты 50000-65535 не годятся. По итогу, заработало когда проставил такие порты: 590-600,1400,3478-3481,5349,19294-19344,49152-65535 И еще, коннект теперь идёт не всегда через домены, а теперь еще и через IP. (Видимо после недавней DDOS-атаки на их сервера, решили переделать подключение)
-
Держи, почти полностью захватил весь РУ-траффик: В пункте 1 наглядно будет куда вписывать, остальное текстом чтобы можно было скопировать. 1. IP: ext:geoip_RU.dat:ru,geoip:private 2. Domain: ext:geosite_RU.dat:ru-available-only-inside,regexp:.*\.ru$,regexp:.*\.su$,regexp:.*\.xn--p1ai$ 3. Domain: geosite:category-ru Всё это в Outbound Tag: direct Если нужно еще добавить группы, то берите название групп из: https://github.com/v2fly/domain-list-community/tree/master/data И обязательно пишите сначала "ext:geosite_RU.dat:" или "ext:geoip_RU.dat:" (Это обращение к этим файлам: ) Единственное что советую для слабых устройств, вписывать отдельные группы вначале перед моими маршрутами, иначе ваше устройство просто зависнет! Из-за того что при каждом подключении, 3x-ui обращается к группе "category-ru", а там ОЧЕНЬ много доменов. Банально, если нужен Яндекс, то пропишите перед этими группами "ext:geosite_RU.dat:yandex", для того чтобы 3x-ui не обращался каждый раз к большому списку.
-
На удивление у меня получилось сделать через WG и оно работает. Сделал инбаунд в 3x-ui, скачал конфиг, вставил в "Другие подключения" в WG, создал отдельную политику и закинул туда своё устройство.
