Files
gotelegram-mtproxy-custom/setup_gotelegram.sh
T

144 lines
5.3 KiB
Bash

#!/bin/bash
# --- КОНФИГУРАЦИЯ ---
BINARY_PATH="/usr/local/bin/gotelegram"
# --- ЦВЕТА ---
RED='\033[0;31m'
GREEN='\033[0;32m'
CYAN='\033[0;36m'
YELLOW='\033[1;33m'
MAGENTA='\033[0;35m'
BLUE='\033[0;34m'
NC='\033[0m'
# --- СИСТЕМНЫЕ ПРОВЕРКИ ---
check_root() {
if [ "$EUID" -ne 0 ]; then echo -e "${RED}Ошибка: запустите через sudo!${NC}"; exit 1; fi
}
install_deps() {
if ! command -v docker &> /dev/null; then
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
fi
if ! command -v qrencode &> /dev/null; then
apt-get update && apt-get install -y qrencode || yum install -y qrencode
fi
cp "$0" "$BINARY_PATH" && chmod +x "$BINARY_PATH"
}
get_ip() {
local ip
ip=$(curl -s -4 --max-time 5 https://api.ipify.org || curl -s -4 --max-time 5 https://icanhazip.com || echo "0.0.0.0")
echo "$ip" | grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}' | head -n 1
}
# --- ЗАСТАВКА ---
show_berloga() {
clear
echo -e "${GREEN}"
cat <<'BERLOGA'
██████╗ ███████╗██████╗ ██╗ ██████╗ ██████╗ █████╗
██╔══██╗██╔════╝██╔══██╗██║ ██╔═══██╗██╔════╝ ██╔══██╗
██████╔╝█████╗ ██████╔╝██║ ██║ ██║██║ ███╗███████║
██╔══██╗██╔══╝ ██╔══██╗██║ ██║ ██║██║ ██║██╔══██║
██████╔╝███████╗██║ ██║███████╗╚██████╔╝╚██████╔╝██║ ██║
╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝
VPS INSTALLERS
BERLOGA
echo -e "${NC}"
read -p "Нажмите [ENTER], чтобы войти в меню управления..."
}
# --- ПАНЕЛЬ ДАННЫХ ---
show_config() {
if ! docker ps | grep -q "mtproto-proxy"; then echo -e "${RED}Прокси не найден!${NC}"; return; fi
SECRET=$(docker inspect mtproto-proxy --format='{{range .Config.Cmd}}{{.}} {{end}}' | awk '{print $NF}')
IP=$(get_ip)
PORT=$(docker inspect mtproto-proxy --format='{{range $p, $conf := .HostConfig.PortBindings}}{{(index $conf 0).HostPort}}{{end}}' 2>/dev/null)
PORT=${PORT:-443}
LINK="tg://proxy?server=$IP&port=$PORT&secret=$SECRET"
echo -e "\n${GREEN}=== ПАНЕЛЬ ДАННЫХ (RU) ===${NC}"
echo -e "IP: $IP | Port: $PORT"
echo -e "Secret: $SECRET"
echo -e "Link: ${BLUE}$LINK${NC}"
qrencode -t ANSIUTF8 "$LINK"
}
# --- УСТАНОВКА ---
menu_install() {
clear
echo -e "${CYAN}--- Выберите домен для маскировки (Fake TLS) ---${NC}"
domains=(
"google.com" "wikipedia.org" "habr.com" "github.com"
"coursera.org" "udemy.com" "medium.com" "stackoverflow.com"
"bbc.com" "cnn.com" "reuters.com" "nytimes.com"
"lenta.ru" "rbc.ru" "ria.ru" "kommersant.ru"
"stepik.org" "duolingo.com" "khanacademy.org" "ted.com"
)
for i in "${!domains[@]}"; do
printf "${YELLOW}%2d)${NC} %-20s " "$((i+1))" "${domains[$i]}"
[[ $(( (i+1) % 2 )) -eq 0 ]] && echo ""
done
read -p "Ваш выбор [1-20]: " d_idx
DOMAIN=${domains[$((d_idx-1))]}
DOMAIN=${DOMAIN:-google.com}
echo -e "\n${CYAN}--- Выберите порт ---${NC}"
echo -e "1) 443 (Рекомендуется)"
echo -e "2) 8443"
echo -e "3) Свой порт"
read -p "Выбор: " p_choice
case $p_choice in
2) PORT=8443 ;;
3) read -p "Введите свой порт: " PORT ;;
*) PORT=443 ;;
esac
echo -e "${YELLOW}[*] Настройка прокси...${NC}"
SECRET=$(docker run --rm nineseconds/mtg:2 generate-secret --hex "$DOMAIN")
docker stop mtproto-proxy &>/dev/null && docker rm mtproto-proxy &>/dev/null
docker run -d --name mtproto-proxy --restart always -p "$PORT":"$PORT" \
nineseconds/mtg:2 simple-run -n 1.1.1.1 -i prefer-ipv4 0.0.0.0:"$PORT" "$SECRET" > /dev/null
clear
show_config
read -p "Установка завершена. Нажмите Enter..."
}
# --- ВЫХОД ---
show_exit() {
clear
show_config
exit 0
}
# --- СТАРТ СКРИПТА ---
check_root
install_deps
show_berloga
while true; do
echo -e "\n${MAGENTA}=== GoTelegram Manager ===${NC}"
echo -e "1) ${GREEN}Установить / Обновить прокси${NC}"
echo -e "2) Показать данные подключения${NC}"
echo -e "3) ${YELLOW}Показать заставку BERLOGA${NC}"
echo -e "4) ${RED}Удалить прокси${NC}"
echo -e "0) Выход${NC}"
read -p "Пункт: " m_idx
case $m_idx in
1) menu_install ;;
2) clear; show_config; read -p "Нажмите Enter..." ;;
3) show_berloga ;;
4) docker stop mtproto-proxy && docker rm mtproto-proxy && echo "Удалено" ;;
0) show_exit ;;
*) echo "Неверный ввод" ;;
esac
done