mirror of
https://github.com/anten-ka/gotelegram_pro.git
synced 2026-05-19 20:36:04 +00:00
6.2 KiB
6.2 KiB
Предложения по улучшению GoTelegram MTProxy
Анализ текущего скрипта
Скрипт уже хорошо структурирован: проверка root, установка зависимостей, меню, работа с Docker (nineseconds/mtg). Ниже — конкретные улучшения.
1. Безопасность и надёжность
1.1 Валидация порта
- Сейчас: при выборе "свой порт" можно ввести нечисло или порт вне диапазона.
- Предложение: проверять число в диапазоне 1–65535 и повторять запрос при ошибке.
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-бота.