stealth: telemt on 0.0.0.0:443, nginx on 127.0.0.1:8443, domain-based proxy link with ee-secret

This commit is contained in:
anten-ka
2026-04-08 20:18:25 +03:00
parent 16ef3564f9
commit 7f81c21d8e
3 changed files with 68 additions and 25 deletions

48
install.sh Normal file → Executable file
View File

@@ -192,24 +192,32 @@ install_stealth_mode() {
template_dir=$(interactive_template_selection)
[ $? -ne 0 ] && return
# Внутренний порт для telemt (только localhost, не открыт наружу)
# nginx принимает весь трафик на внешнем 443 и проксирует MTProxy-соединения на localhost:8443
# Внешний порт 8443 НЕ затрагивается и НЕ открывается — telemt слушает только 127.0.0.1
local telemt_port=8443
# Архитектура Stealth:
# telemt слушает на 0.0.0.0:443 (принимает ВСЕ подключения)
# nginx слушает на 127.0.0.1:8443 с SSL (обслуживает сайт)
# MTProxy клиент → :443 → telemt (проксирует)
# Обычный браузер → :443 → telemt → 127.0.0.1:8443 → nginx (сайт)
# Провайдер видит только HTTPS на 443 к домену
local nginx_internal_port=8443
echo ""
echo -e " ${DIM}telemt будет слушать на localhost:$telemt_port (только внутренний, не открыт наружу)${NC}"
echo -e " ${DIM}nginx принимает трафик на 443 (внешний) и проксирует к telemt${NC}"
echo -e " ${DIM}telemt принимает весь трафик на 443 (маскировка под HTTPS)${NC}"
echo -e " ${DIM}nginx обслуживает сайт на внутреннем порту $nginx_internal_port${NC}"
echo -e " ${DIM}Провайдер видит только HTTPS-трафик к ${user_domain}:443${NC}"
# Генерация секрета
local secret
secret=$(generate_hex 32)
# Генерация fake-TLS секрета (ee + secret + hex domain)
# Префикс ee говорит Telegram-клиенту маскировать трафик под TLS к домену
local raw_secret
raw_secret=$(generate_hex 32)
local domain_hex
domain_hex=$(printf '%s' "$user_domain" | xxd -p | tr -d '\n')
local faketls_secret="ee${raw_secret}${domain_hex}"
# Подтверждение
echo ""
echo -e " ${BOLD}${WHITE}📋 Конфигурация:${NC}"
echo -e " Домен: ${CYAN}${user_domain}${NC}"
echo -e " Порт: ${CYAN}443 (nginx) → $telemt_port (telemt)${NC}"
echo -e " Режим: ${MAGENTA}Stealth${NC}"
echo -e " Порт: ${CYAN}443 (telemt + nginx внутри)${NC}"
echo -e " Режим: ${MAGENTA}Stealth (fake-TLS)${NC}"
echo ""
if ! confirm "Установить прокси + сайт?"; then
@@ -220,11 +228,15 @@ install_stealth_mode() {
ensure_deps
install_telemt_full || return
# Конфиг telemt: маскировка на localhost (nginx)
generate_telemt_toml "$secret" "$telemt_port" "stealth" "127.0.0.1" "443"
# Конфиг telemt: слушает 443, маскировка на локальный nginx
generate_telemt_toml "$raw_secret" "443" "stealth" "127.0.0.1" "$nginx_internal_port"
# Настройка сайта (nginx + certbot + шаблон)
setup_stealth_mode "$user_domain" "$template_dir" "$telemt_port" "$ssl_email" || return
# Настройка сайта (nginx на внутреннем порту + certbot + шаблон)
setup_stealth_mode "$user_domain" "$template_dir" "$nginx_internal_port" "$ssl_email" || return
# Останавливаем nginx на 443 перед запуском telemt (telemt займёт 443)
# nginx уже перенастроен на внутренний порт
systemctl restart nginx 2>/dev/null
# Запуск telemt
start_telemt || return
@@ -232,10 +244,10 @@ install_stealth_mode() {
# Сохраняем конфиг
local tpl_id
tpl_id=$(basename "$template_dir")
save_gotelegram_config "telemt" "stealth" "443" "$secret" "127.0.0.1" "$user_domain" "$tpl_id"
save_gotelegram_config "telemt" "stealth" "443" "$raw_secret" "$user_domain" "$user_domain" "$tpl_id"
# Результат
show_proxy_info
# Результат — используем домен и fake-TLS ссылку
show_proxy_info_stealth "$user_domain" "$faketls_secret"
echo -e " ${WHITE}Сайт:${NC} ${GREEN}https://${user_domain}${NC}"
log_success "GoTelegram v${GOTELEGRAM_VERSION} установлен! (Stealth-режим)"
}