Files
autoXRAY/test/telemt-test.sh
2026-07-26 18:27:47 +03:00

119 lines
2.6 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
echo -e "${GRN}Версия телемт: 226 ${NC}"
systemctl stop telemt 2>/dev/null
wget -qO- "https://github.com/telemt/telemt/releases/latest/download/telemt-$(uname -m)-linux-$(ldd --version 2>&1 | grep -iq musl && echo musl || echo gnu).tar.gz" | tar -xz
mv telemt /bin
chmod +x /bin/telemt
telemtHEX16=$(openssl rand -hex 16)
mkdir -p /etc/telemt
cat <<EOF > "/etc/telemt/telemt.toml"
[general]
prefer_ipv6 = false
fast_mode = true
use_middle_proxy = false
[general.modes]
classic = false
secure = false
tls = true
[server]
port = 500
listen_addr_ipv4 = "127.0.0.1"
proxy_protocol = true
# === Timeouts (in seconds) ===
[timeouts]
client_handshake = 15
tg_connect = 10
client_keepalive = 60
client_ack = 300
[server.api]
enabled = true
listen = "127.0.0.1:9091"
# whitelist = ["127.0.0.1/32"]
# read_only = true
# === Anti-Censorship & Masking ===
[censorship]
tls_domain = "$DOMAIN"
mask = true
mask_unix_sock = "/dev/shm/nginx.sock"
mask_proxy_protocol = 2
fake_cert_len = 2048
# mask_port = 500
# mask_host = "127.0.0.1"
[access]
replay_check_len = 65536
ignore_time_skew = false
[access.users]
hello = "$telemtHEX16"
[[upstreams]]
type = "socks5"
address = "127.0.0.1:10443"
username = "$socksUser"
password = "$socksPasw"
weight = 10
enabled = true
EOF
useradd -d /opt/telemt -m -r -U telemt
chown -R telemt:telemt /etc/telemt
cat <<EOF > "/etc/systemd/system/telemt.service"
[Unit]
Description=Telemt
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=telemt
Group=telemt
WorkingDirectory=/opt/telemt
ExecStart=/bin/telemt /etc/telemt/telemt.toml
Restart=on-failure
LimitNOFILE=65536
AmbientCapabilities=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable telemt --now
echo "Ожидание запуска API telemt..."
telemtSecret=""
# Делаем до 15 попыток с интервалом в 1 секунду
for i in {1..15}; do
telemtSecret=$(curl -s http://127.0.0.1:9091/v1/users | jq -r '.data[0].links.tls[0] // empty | split("secret=")[1]' 2>/dev/null)
if [ -n "$telemtSecret" ] && [ "$telemtSecret" != "null" ]; then
break
fi
sleep 1
done
if [ -z "$telemtSecret" ] || [ "$telemtSecret" == "null" ]; then
echo -e "${RED}Ошибка: Не удалось получить секрет от telemt API.${NC}"
echo "Проверьте статус службы: systemctl status telemt"
else
echo "telemtSecret = $telemtSecret"
MTProto="tg://proxy?server=$DOMAIN&port=443&secret=$telemtSecret"
# echo "Ссылка: $MTProto"
fi
sleep 1