Initial BERLOGA GoTelegram MTProxy release
This commit is contained in:
@@ -0,0 +1,43 @@
|
|||||||
|
# BERLOGA GoTelegram MTProxy
|
||||||
|
|
||||||
|
Отдельный установщик и менеджер Telegram MTProto Proxy на базе Docker.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Что изменено
|
||||||
|
|
||||||
|
- удалены рекламные ссылки, промокоды и партнёрский QR-код;
|
||||||
|
- удалён искусственный отсчёт;
|
||||||
|
- добавлена фирменная заставка `BERLOGA`;
|
||||||
|
- полезный QR-код со ссылкой подключения к собственному MTProto Proxy сохранён.
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
|
||||||
|
```bash
|
||||||
|
wget -O setup_gotelegram.sh https://git.chardb.ru/AlexChard/gotelegram-mtproxy-custom/raw/branch/main/setup_gotelegram.sh && chmod +x setup_gotelegram.sh && sudo ./setup_gotelegram.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Повторный запуск менеджера:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo gotelegram
|
||||||
|
```
|
||||||
|
|
||||||
|
## Возможности
|
||||||
|
|
||||||
|
- автоматическая установка Docker и `qrencode`;
|
||||||
|
- выбор домена Fake TLS;
|
||||||
|
- выбор стандартного или собственного порта;
|
||||||
|
- установка и обновление контейнера MTProto Proxy;
|
||||||
|
- показ IP, порта, секрета, ссылки и QR-кода подключения;
|
||||||
|
- удаление прокси.
|
||||||
|
|
||||||
|
## Требования и безопасность
|
||||||
|
|
||||||
|
- Linux VPS;
|
||||||
|
- права `root` или `sudo`;
|
||||||
|
- открытый выбранный TCP-порт в firewall и панели хостинга.
|
||||||
|
|
||||||
|
Секрет MTProto создаётся непосредственно на VPS и в репозитории не хранится.
|
||||||
|
|
||||||
|
Исходный проект: <https://github.com/anten-ka/gotelegram_mtproxy>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="1280" height="500" viewBox="0 0 1280 500" role="img" aria-labelledby="title desc">
|
||||||
|
<title id="title">Заставка BERLOGA в терминале</title>
|
||||||
|
<desc id="desc">Тёмное окно терминала с зелёной блочной надписью BERLOGA.</desc>
|
||||||
|
<rect width="1280" height="500" rx="18" fill="#071521"/>
|
||||||
|
<rect x="18" y="18" width="1244" height="464" rx="12" fill="#06111a" stroke="#17364a" stroke-width="2"/>
|
||||||
|
<circle cx="49" cy="48" r="8" fill="#ff5f57"/>
|
||||||
|
<circle cx="75" cy="48" r="8" fill="#febc2e"/>
|
||||||
|
<circle cx="101" cy="48" r="8" fill="#28c840"/>
|
||||||
|
<text x="138" y="55" fill="#7a93a6" font-family="Consolas, 'Courier New', monospace" font-size="19">root@berloga:~# ./install.sh</text>
|
||||||
|
<g fill="#42e68b" font-family="Consolas, 'Courier New', monospace" font-size="22" font-weight="700" xml:space="preserve">
|
||||||
|
<text x="55" y="145">██████╗ ███████╗██████╗ ██╗ ██████╗ ██████╗ █████╗</text>
|
||||||
|
<text x="55" y="184">██╔══██╗██╔════╝██╔══██╗██║ ██╔═══██╗██╔════╝ ██╔══██╗</text>
|
||||||
|
<text x="55" y="223">██████╔╝█████╗ ██████╔╝██║ ██║ ██║██║ ███╗███████║</text>
|
||||||
|
<text x="55" y="262">██╔══██╗██╔══╝ ██╔══██╗██║ ██║ ██║██║ ██║██╔══██║</text>
|
||||||
|
<text x="55" y="301">██████╔╝███████╗██║ ██║███████╗╚██████╔╝╚██████╔╝██║ ██║</text>
|
||||||
|
<text x="55" y="340">╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝</text>
|
||||||
|
</g>
|
||||||
|
<text x="480" y="410" fill="#7aa8c7" font-family="Consolas, 'Courier New', monospace" font-size="25" letter-spacing="5">VPS INSTALLERS</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -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