144 lines
5.3 KiB
Bash
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
|