Initial BERLOGA GoTelegram MTProxy release
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user