This commit is contained in:
user-penguin 2026-03-28 09:00:45 +07:00
parent cc84ee874e
commit 58843ca033

View File

@ -29,6 +29,14 @@ REAL_HOME=$(eval echo "~$REAL_USER")
MTP_DIR="$REAL_HOME/services/mtp" MTP_DIR="$REAL_HOME/services/mtp"
SERVICE_NAME="mtproxy" SERVICE_NAME="mtproxy"
for cmd in curl xxd; do
if ! command -v "$cmd" >/dev/null 2>&1; then
echo "Installing $cmd..."
apt-get update -y -qq
apt-get install -y -qq "$cmd"
fi
done
echo "=== MTProto Proxy Installation ===" echo "=== MTProto Proxy Installation ==="
echo " MTP Domain: $MTP_DOMAIN" echo " MTP Domain: $MTP_DOMAIN"
echo " MTP Port: $MTP_PORT (internal)" echo " MTP Port: $MTP_PORT (internal)"
@ -91,21 +99,24 @@ curl -sf https://core.telegram.org/getProxyConfig -o "$MTP_DIR/proxy-multi.conf"
echo " Downloaded proxy-multi.conf" echo " Downloaded proxy-multi.conf"
if [ -f "$MTP_DIR/secret.txt" ]; then if [ -f "$MTP_DIR/secret.txt" ]; then
SECRET=$(cat "$MTP_DIR/secret.txt") SECRET=$(cat "$MTP_DIR/secret.txt" | tr -d '\n')
echo " Using existing secret: $SECRET" echo " Using existing secret: $SECRET"
else else
if ! command -v xxd >/dev/null 2>&1; then SECRET=$(head -c 16 /dev/urandom | xxd -ps | tr -d '\n')
apt-get install -y -qq xxd
fi
SECRET=$(head -c 16 /dev/urandom | xxd -ps)
echo "$SECRET" > "$MTP_DIR/secret.txt" echo "$SECRET" > "$MTP_DIR/secret.txt"
echo " Generated secret: $SECRET" echo " Generated secret: $SECRET"
fi fi
if [ ${#SECRET} -ne 32 ]; then
echo "ERROR: Secret must be exactly 32 hex chars, got ${#SECRET}: $SECRET"
exit 1
fi
DOMAIN_HEX=$(echo -n "$MTP_DOMAIN" | xxd -ps | tr -d '\n') DOMAIN_HEX=$(echo -n "$MTP_DOMAIN" | xxd -ps | tr -d '\n')
CLIENT_SECRET="ee${SECRET}${DOMAIN_HEX}" CLIENT_SECRET="ee${SECRET}${DOMAIN_HEX}"
echo " Client secret (fake-TLS): $CLIENT_SECRET" echo " Secret for bot: $SECRET (32 hex)"
echo " Client link secret: ee...${MTP_DOMAIN}"
echo "" echo ""
# --- 3. Systemd service --- # --- 3. Systemd service ---
@ -214,19 +225,23 @@ MTP_LINK="tg://proxy?server=${MTP_DOMAIN}&port=443&secret=${CLIENT_SECRET}"
HTTPS_LINK="https://t.me/proxy?server=${MTP_DOMAIN}&port=443&secret=${CLIENT_SECRET}" HTTPS_LINK="https://t.me/proxy?server=${MTP_DOMAIN}&port=443&secret=${CLIENT_SECRET}"
cat > "$MTP_DIR/connection.txt" <<INFO cat > "$MTP_DIR/connection.txt" <<INFO
MTProxy Admin Bot: ${MTP_DOMAIN}:443 === FOR MTPROXY ADMIN BOT (@MTProxybot) ===
Secret: ${SECRET} Host:Port : ${MTP_DOMAIN}:443
Client secret (fake-TLS): ${CLIENT_SECRET} Secret : ${SECRET}
tg:// link: ${MTP_LINK} === FOR USERS (share these links) ===
https: link: ${HTTPS_LINK} tg:// ${MTP_LINK}
https: ${HTTPS_LINK}
INFO INFO
chown "$REAL_USER:$REAL_USER" "$MTP_DIR/connection.txt" chown "$REAL_USER:$REAL_USER" "$MTP_DIR/connection.txt"
echo "=== MTPROTO PROXY READY ===" echo "=== MTPROTO PROXY READY ==="
echo "" echo ""
echo " For MTProxy Admin Bot: ${MTP_DOMAIN}:443" echo " --- For @MTProxybot ---"
echo " Host:Port : ${MTP_DOMAIN}:443"
echo " Secret : ${SECRET}"
echo "" echo ""
echo " --- For users ---"
echo " tg:// ${MTP_LINK}" echo " tg:// ${MTP_LINK}"
echo " https: ${HTTPS_LINK}" echo " https: ${HTTPS_LINK}"
echo "" echo ""