Если вы потеряли доступ к панели 3x-ui, но имеете доступ к серверу с установленным Docker Compose, вы можете узнать пароль, извлекая его из базы данных.
Шаги для просмотра пароля
1. Перейдите в папку с панелью 3x-ui
user@server:~$ cd 3x-ui
2. Ознакомьтесь с содержимым папки
user@server:~/3x-ui$ ls config docker-compose.yml DockerInit.sh install.sh main.go README.md sub xray database DockerEntrypoint.sh go.mod LICENSE media README.ru_RU.md util x-ui.service db Dockerfile go.sum logger README.es_ES.md README.zh_CN.md web x-ui.sh
3. Перейдите в папку db
cd db ls
В папке должен быть файл x-ui.db, содержащий базу данных.
4. Сделайте резервную копию файла базы данных
sudo cp x-ui.db backup_x-ui.db
5. Откройте базу данных и посмотрите настройки
Используем утилиту sqlite3 для работы с базой данных.
sqlite3 backup_x-ui.db
Вы попадёте в приглашение SQLite:
SQLite version 3.40.1 2022-12-28 14:03:47 Enter ".help" for usage hints.
Посмотреть таблицы в базе данных
sqlite> .tables client_traffics inbounds settings inbound_client_ips outbound_traffics users
Посмотреть содержимое таблицы settings
sqlite> SELECT * FROM settings;
Пример вывода:
1|secret|GQ7P5lvWjPGWTNGaH9mIyvryMDzlFGFp 2|webListen| 3|webDomain| 4|webPort|2053 5|webCertFile|/etc/letsencrypt/live/ixixi.store/fullchain.pem 6|webKeyFile|/etc/letsencrypt/live/ixixi.store/privkey.pem 7|webBasePath|/adres_panel/ 8|sessionMaxAge|60 9|pageSize|50 10|expireDiff|0 11|trafficDiff|0 12|remarkModel|-ieo 13|tgBotEnable|false 14|tgBotToken| 15|tgBotProxy| 16|tgBotAPIServer| 17|tgBotChatId| 18|tgRunTime|@daily 19|tgBotBackup|false 20|tgBotLoginNotify|true 21|tgCpu|80 22|tgLang|en-US 23|timeLocation|Asia/Tehran 24|secretEnable|false 25|subEnable|false 26|subListen| 27|subPort|2096 28|subPath|/sub/ 29|subDomain| 30|subCertFile| 31|subKeyFile| 32|subUpdates|12 33|subEncrypt|true 34|subShowInfo|true 35|subURI| 36|subJsonPath|/json/ 37|subJsonURI| 38|subJsonFragment| 39|subJsonNoises| 40|subJsonMux| 41|subJsonRules| 42|datepicker|gregorian
Расшифровка настроек:
- secret: Секретный ключ (пароль) для работы сервиса.
- webListen: IP-адрес, на котором работает веб-интерфейс.
- webDomain: Доменное имя, связанное с веб-интерфейсом.
- webPort: Порт для веб-интерфейса.
- webCertFile: Путь к файлу SSL-сертификата для HTTPS.
- webKeyFile: Путь к приватному ключу SSL.
- webBasePath: Базовый путь для веб-интерфейса.
- sessionMaxAge: Максимальное время жизни сессии (в минутах).
- pageSize: Количество элементов, отображаемых на одной странице.
- expireDiff: Разница времени для проверки срока действия.
- trafficDiff: Разница учёта трафика.
- remarkModel: Модель для комментариев или описаний.
- tgBotEnable: Включение или отключение Telegram-бота (true/false).
- tgBotToken: Токен для Telegram-бота.
- tgBotProxy: Настройки прокси для Telegram-бота.
- tgBotAPIServer: URL API сервера Telegram.
- tgBotChatId: ID чата для уведомлений.
- tgRunTime: Время выполнения заданий Telegram-бота (например, @daily).
- tgBotBackup: Включение резервного копирования через Telegram.
- tgBotLoginNotify: Уведомления о входе через Telegram.
- tgCpu: Порог загрузки процессора для уведомлений.
- tgLang: Язык Telegram (например, en-US).
- timeLocation: Часовой пояс.
- secretEnable: Включение секретного ключа (true/false).
- subEnable: Включение подписок (true/false).
- subListen: IP для подписок.
- subPort: Порт для подписок.
- subPath: Путь для подписок.
- subDomain: Домен для подписок.
- subCertFile: SSL-сертификат для подписок.
- subKeyFile: Приватный ключ SSL для подписок.
- subUpdates: Частота обновлений подписок (в часах).
- subEncrypt: Включение шифрования подписок.
- subShowInfo: Отображение информации о подписке.
- subURI: URI для подписок.
- subJsonPath: Путь для JSON-файлов подписок.
- subJsonURI: URI для JSON подписок.
- subJsonFragment: Включение фрагментации JSON подписок.
- subJsonNoises: Использование шумов в JSON.
- subJsonMux: Мультиплексирование JSON подписок.
- subJsonRules: Правила для JSON подписок.
- datepicker: Формат календаря (например, gregorian).
Пример некоторых команд sqlite3:
Изменение логина или пароля в базе данных 3x-ui через SQLite3
Если вам нужно изменить логин или пароль в базе данных 3x-ui, выполните следующие шаги:
- Открываем базу данных:
Перейдите в каталог db и откройте базу данных с помощью SQLite3:bash
sqlite3 x-ui.db
- Просмотр содержимого таблицы users:
Введите следующую команду, чтобы увидеть текущие записи в таблице users:
Пример вывода:sql
SELECT * FROM users;
1|admin|old_password
- Изменение логина или пароля:
Используйте команду UPDATE, чтобы изменить нужные данные:- Для изменения логина:
sql
UPDATE users SET username = 'new_admin' WHERE id = 1;
- Для изменения пароля:
sql
UPDATE users SET password = 'new_secure_password' WHERE id = 1;
- Для изменения логина:
- Проверка изменений:
После внесения изменений выполните команду еще раз, чтобы убедиться в их правильности:
Пример вывода:sql
SELECT * FROM users;
1|new_admin|new_secure_password
- Завершение работы:
Сохраните изменения и выйдите из SQLite:bash
.exit
- Перезапуск контейнера:
После изменений перезапустите Docker-контейнер, чтобы они применились:bash
docker-compose restart
Важно:
- Создайте резервную копию базы данных перед изменениями:
bash
cp x-ui.db backup_x-ui.db
- Используйте надежные пароли, чтобы защитить панель.
Вывод
Следуя этим инструкциям, вы сможете извлечь логин и пароль из базы данных, а также изменить настройки панели, если это потребуется. Не забывайте делать резервные копии перед внесением изменений и ограничивать доступ к файлам базы данных для повышения безопасности.
Теги
#3x-ui #Docker #sqlite #восстановление_пароля #панель_управления #база_данных #x-ui #настройкиКак восстановить доступ к панели 3x-ui через базу данных?
Инструкция: работа с базой данных 3x-ui в Dockeк
Изменение пароля в 3x-ui: пошаговый гайд
Резервное копирование и редактирование базы данных 3x-ui
Что содержится в настройках панели 3x-ui? Полная расшифровка