mirror of
https://github.com/anten-ka/gotelegram_pro.git
synced 2026-05-19 19:06:07 +00:00
100 lines
6.2 KiB
Markdown
100 lines
6.2 KiB
Markdown
# Предложения по улучшению GoTelegram MTProxy
|
||
|
||
## Анализ текущего скрипта
|
||
|
||
Скрипт уже хорошо структурирован: проверка root, установка зависимостей, меню, работа с Docker (nineseconds/mtg). Ниже — конкретные улучшения.
|
||
|
||
---
|
||
|
||
## 1. Безопасность и надёжность
|
||
|
||
### 1.1 Валидация порта
|
||
- **Сейчас:** при выборе "свой порт" можно ввести нечисло или порт вне диапазона.
|
||
- **Предложение:** проверять число в диапазоне 1–65535 и повторять запрос при ошибке.
|
||
|
||
```bash
|
||
while true; do
|
||
read -p "Введите порт (1-65535): " PORT
|
||
[[ "$PORT" =~ ^[0-9]+$ ]] && (( PORT >= 1 && PORT <= 65535 )) && break
|
||
echo "Неверный порт."
|
||
done
|
||
```
|
||
|
||
### 1.2 Проверка занятости порта
|
||
- Перед запуском контейнера проверять, что порт свободен (например, `ss -tlnp | grep -q ":$PORT "`), и выводить понятное сообщение, если порт занят.
|
||
|
||
### 1.3 Остановка только своего контейнера
|
||
- В пункте 4 (удаление) использовать `docker stop mtproto-proxy 2>/dev/null; docker rm mtproto-proxy 2>/dev/null` и проверять код возврата, чтобы не путать с отсутствием контейнера.
|
||
|
||
---
|
||
|
||
## 2. Функциональность
|
||
|
||
### 2.1 Свой домен для Fake TLS
|
||
- В списке доменов добавить пункт "Свой домен" с вводом произвольной строки и базовой проверкой (например, наличие точки, длина).
|
||
|
||
### 2.2 Рестарт прокси
|
||
- Отдельный пункт меню "Перезапустить прокси" без пересоздания контейнера: `docker restart mtproto-proxy`.
|
||
|
||
### 2.3 Логи
|
||
- Пункт "Показать логи" (последние N строк): `docker logs --tail 50 mtproto-proxy`.
|
||
|
||
### 2.4 Обновление образа mtg
|
||
- Пункт "Обновить образ mtg": `docker pull nineseconds/mtg:2`, затем предложить пересоздать прокси с теми же параметрами (сохранить secret/порт из текущего контейнера).
|
||
|
||
### 2.5 Сохранение конфигурации
|
||
- Сохранять выбранные домен и порт в файл (например, `/etc/gotelegram.conf` или `~/.gotelegram`), чтобы при обновлении/переустановке не вводить заново.
|
||
|
||
---
|
||
|
||
## 3. Удобство и совместимость
|
||
|
||
### 3.1 Поддержка RHEL/CentOS
|
||
- В `install_deps` для установки `qrencode` использовать `command -v apt-get` / `command -v yum` или `dnf`, а не только `apt-get` и `yum`, чтобы корректно работало на RHEL 8+.
|
||
|
||
### 3.2 Неинтерактивный режим
|
||
- Поддержка аргументов для автоматической установки, например:
|
||
`./setup_gotelegram.sh --domain wikipedia.org --port 443 --no-promo`
|
||
- Полезно для скриптов развёртывания и для бота.
|
||
|
||
### 3.3 Отключение промо
|
||
- Переменная окружения или флаг, например `SKIP_PROMO=1` или `--no-promo`, чтобы при первом запуске не показывать промо (для автоматизации и бота).
|
||
|
||
---
|
||
|
||
## 4. Вывод и интерфейс
|
||
|
||
### 4.1 Текстовый вывод ссылки для копирования
|
||
- В `show_config` выводить ссылку в одну строку без переносов, чтобы удобно копировать из терминала и отправлять в бота/чат.
|
||
|
||
### 4.2 Сообщение при отсутствии прокси
|
||
- В пункте 2 при отсутствии контейнера не только "Прокси не найден!", но и подсказка: "Выберите пункт 1 для установки."
|
||
|
||
### 4.3 Версия скрипта
|
||
- В начале или в меню выводить версию (например, из переменной `VERSION="1.0"`), чтобы при обновлениях было проще отлаживать.
|
||
|
||
---
|
||
|
||
## 5. Мелкие правки
|
||
|
||
### 5.1 Заголовок промо
|
||
- В рамке промо текст "ХОСТИНГ СО СКИДКОЙ..." разной длины — выровнять по ширине рамки или центрировать, чтобы рамка не "прыгала".
|
||
|
||
### 5.2 Имя контейнера
|
||
- Сейчас жёстко `mtproto-proxy`. Имеет смысл вынести в переменную в начале скрипта (например, `CONTAINER_NAME="mtproto-proxy"`), чтобы при необходимости можно было менять в одном месте.
|
||
|
||
### 5.3 Таймауты curl
|
||
- В `get_ip` уже есть `--max-time 5`. Можно добавить резервный источник (например, `ifconfig.me` или `ipecho.net/plain`) на случай недоступности основных.
|
||
|
||
---
|
||
|
||
## Приоритеты внедрения
|
||
|
||
| Приоритет | Улучшение |
|
||
|-----------|-----------|
|
||
| Высокий | Валидация порта, проверка занятости порта, неинтерактивный режим / отключение промо |
|
||
| Средний | Свой домен, рестарт, логи, сохранение конфигурации |
|
||
| Низкий | Версия скрипта, выравнивание промо, дополнительные источники IP |
|
||
|
||
Эти изменения улучшат устойчивость скрипта в автоматизации и при использовании через Telegram-бота.
|