mirror of
https://github.com/xVRVx/autoXRAY.git
synced 2026-08-26 08:35:34 +00:00
119 lines
2.6 KiB
Bash
119 lines
2.6 KiB
Bash
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
|