mirror of
https://github.com/telemt/telemt.git
synced 2026-04-15 01:24:09 +03:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9303c7854a | ||
|
|
afc07345f5 | ||
|
|
a965b38bd4 | ||
|
|
f0ebbac338 | ||
|
|
286662fc51 | ||
|
|
c5390baaf1 | ||
|
|
1cd1e96079 | ||
|
|
2b995c31b0 | ||
|
|
442320302d | ||
|
|
ac0dde567b | ||
|
|
b2fe9b78d8 | ||
|
|
f039ce1827 |
@@ -2,6 +2,8 @@
|
||||
|
||||
   [](https://t.me/telemtrs)
|
||||
|
||||
[🇷🇺 README на русском](https://github.com/telemt/telemt/blob/main/README.ru.md)
|
||||
|
||||
***Löst Probleme, bevor andere überhaupt wissen, dass sie existieren*** / ***It solves problems before others even realize they exist***
|
||||
|
||||
> [!NOTE]
|
||||
|
||||
21
README.ru.md
21
README.ru.md
@@ -85,4 +85,25 @@ telemt config.toml
|
||||
- Безопасность памяти;
|
||||
- Асинхронная архитектура Tokio.
|
||||
|
||||
## Поддержать Telemt
|
||||
|
||||
Telemt — это бесплатное программное обеспечение с открытым исходным кодом, разработанное в свободное время.
|
||||
Если оно оказалось вам полезным, вы можете поддержать дальнейшую разработку.
|
||||
|
||||
Принимаемые криптовалюты (BTC, ETH, USDT, 350+ и другие):
|
||||
|
||||
<p align="center">
|
||||
<a href="https://nowpayments.io/donation?api_key=2bf1afd2-abc2-49f9-a012-f1e715b37223" target="_blank" rel="noreferrer noopener">
|
||||
<img src="https://nowpayments.io/images/embeds/donation-button-white.svg" alt="Cryptocurrency & Bitcoin donation button by NOWPayments" height="80">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
Monero (XMR) напрямую:
|
||||
|
||||
```
|
||||
8Bk4tZEYPQWSypeD2hrUXG2rKbAKF16GqEN942ZdAP5cFdSqW6h4DwkP5cJMAdszzuPeHeHZPTyjWWFwzeFdjuci3ktfMoB
|
||||
```
|
||||
|
||||
Все пожертвования пойдут на инфраструктуру, разработку и исследования.
|
||||
|
||||

|
||||
|
||||
@@ -2106,7 +2106,7 @@ Note: This section also accepts the legacy alias `[server.admin_api]` (same sche
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[server.listeners]
|
||||
[[server.listeners]]
|
||||
ip = "0.0.0.0"
|
||||
```
|
||||
## announce
|
||||
@@ -2115,7 +2115,7 @@ Note: This section also accepts the legacy alias `[server.admin_api]` (same sche
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[server.listeners]
|
||||
[[server.listeners]]
|
||||
ip = "0.0.0.0"
|
||||
announce = "proxy.example.com"
|
||||
```
|
||||
@@ -2125,7 +2125,7 @@ Note: This section also accepts the legacy alias `[server.admin_api]` (same sche
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[server.listeners]
|
||||
[[server.listeners]]
|
||||
ip = "0.0.0.0"
|
||||
announce_ip = "203.0.113.10"
|
||||
```
|
||||
@@ -2138,7 +2138,7 @@ Note: This section also accepts the legacy alias `[server.admin_api]` (same sche
|
||||
[server]
|
||||
proxy_protocol = false
|
||||
|
||||
[server.listeners]
|
||||
[[server.listeners]]
|
||||
ip = "0.0.0.0"
|
||||
proxy_protocol = true
|
||||
```
|
||||
@@ -2149,7 +2149,7 @@ Note: This section also accepts the legacy alias `[server.admin_api]` (same sche
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[server.listeners]
|
||||
[[server.listeners]]
|
||||
ip = "0.0.0.0"
|
||||
reuse_allow = false
|
||||
```
|
||||
@@ -2907,7 +2907,7 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
```
|
||||
|
||||
|
||||
# [upstreams]
|
||||
# [[upstreams]]
|
||||
|
||||
|
||||
| Key | Type | Default |
|
||||
@@ -2926,18 +2926,18 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
|
||||
## type
|
||||
- **Constraints / validation**: Required field. Must be one of: `"direct"`, `"socks4"`, `"socks5"`, `"shadowsocks"`.
|
||||
- **Description**: Selects the upstream transport implementation for this `[upstreams]` entry.
|
||||
- **Description**: Selects the upstream transport implementation for this `[[upstreams]]` entry.
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "direct"
|
||||
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "127.0.0.1:9050"
|
||||
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "shadowsocks"
|
||||
url = "ss://2022-blake3-aes-256-gcm:BASE64PASSWORD@127.0.0.1:8388"
|
||||
```
|
||||
@@ -2947,7 +2947,7 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "direct"
|
||||
weight = 10
|
||||
```
|
||||
@@ -2957,7 +2957,7 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "127.0.0.1:9050"
|
||||
enabled = false
|
||||
@@ -2968,7 +2968,7 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks4"
|
||||
address = "10.0.0.10:1080"
|
||||
scopes = "me, fetch, dc2"
|
||||
@@ -2982,11 +2982,11 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "direct"
|
||||
interface = "eth0"
|
||||
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "203.0.113.10:1080"
|
||||
interface = "192.0.2.10" # explicit local bind IP
|
||||
@@ -2999,7 +2999,7 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "direct"
|
||||
bind_addresses = ["192.0.2.10", "192.0.2.11"]
|
||||
```
|
||||
@@ -3015,7 +3015,7 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
[general]
|
||||
use_middle_proxy = false
|
||||
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "shadowsocks"
|
||||
url = "ss://2022-blake3-aes-256-gcm:BASE64PASSWORD@127.0.0.1:8388"
|
||||
```
|
||||
@@ -3025,7 +3025,7 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "127.0.0.1:9050"
|
||||
```
|
||||
@@ -3035,7 +3035,7 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks4"
|
||||
address = "127.0.0.1:1080"
|
||||
user_id = "telemt"
|
||||
@@ -3046,7 +3046,7 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "127.0.0.1:9050"
|
||||
username = "alice"
|
||||
@@ -3057,7 +3057,7 @@ If your backend or network is very bandwidth-constrained, reduce cap first. If p
|
||||
- **Example**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "127.0.0.1:9050"
|
||||
username = "alice"
|
||||
|
||||
@@ -2112,7 +2112,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[server.listeners]
|
||||
[[server.listeners]]
|
||||
ip = "0.0.0.0"
|
||||
```
|
||||
## announce
|
||||
@@ -2121,7 +2121,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[server.listeners]
|
||||
[[server.listeners]]
|
||||
ip = "0.0.0.0"
|
||||
announce = "proxy.example.com"
|
||||
```
|
||||
@@ -2131,7 +2131,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[server.listeners]
|
||||
[[server.listeners]]
|
||||
ip = "0.0.0.0"
|
||||
announce_ip = "203.0.113.10"
|
||||
```
|
||||
@@ -2144,7 +2144,7 @@
|
||||
[server]
|
||||
proxy_protocol = false
|
||||
|
||||
[server.listeners]
|
||||
[[server.listeners]]
|
||||
ip = "0.0.0.0"
|
||||
proxy_protocol = true
|
||||
```
|
||||
@@ -2155,7 +2155,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[server.listeners]
|
||||
[[server.listeners]]
|
||||
ip = "0.0.0.0"
|
||||
reuse_allow = false
|
||||
```
|
||||
@@ -2912,7 +2912,7 @@
|
||||
```
|
||||
|
||||
|
||||
# [upstreams]
|
||||
# [[upstreams]]
|
||||
|
||||
|
||||
| Ключ | Тип | По умолчанию |
|
||||
@@ -2931,18 +2931,18 @@
|
||||
|
||||
## type
|
||||
- **Ограничения / валидация**: Обязательный параметр.`"direct"`, `"socks4"`, `"socks5"`, `"shadowsocks"`.
|
||||
- **Описание**: Выбирает реализацию upstream-транспорта для этой записи в `[upstreams]`.
|
||||
- **Описание**: Выбирает реализацию upstream-транспорта для этой записи в `[[upstreams]]`.
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "direct"
|
||||
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "127.0.0.1:9050"
|
||||
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "shadowsocks"
|
||||
url = "ss://2022-blake3-aes-256-gcm:BASE64PASSWORD@127.0.0.1:8388"
|
||||
```
|
||||
@@ -2952,7 +2952,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "direct"
|
||||
weight = 10
|
||||
```
|
||||
@@ -2962,7 +2962,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "127.0.0.1:9050"
|
||||
enabled = false
|
||||
@@ -2973,7 +2973,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks4"
|
||||
address = "10.0.0.10:1080"
|
||||
scopes = "me, fetch, dc2"
|
||||
@@ -2987,11 +2987,11 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "direct"
|
||||
interface = "eth0"
|
||||
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "203.0.113.10:1080"
|
||||
interface = "192.0.2.10" # explicit local bind IP
|
||||
@@ -3004,7 +3004,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "direct"
|
||||
bind_addresses = ["192.0.2.10", "192.0.2.11"]
|
||||
```
|
||||
@@ -3020,7 +3020,7 @@
|
||||
[general]
|
||||
use_middle_proxy = false
|
||||
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "shadowsocks"
|
||||
url = "ss://2022-blake3-aes-256-gcm:BASE64PASSWORD@127.0.0.1:8388"
|
||||
```
|
||||
@@ -3030,7 +3030,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "127.0.0.1:9050"
|
||||
```
|
||||
@@ -3040,7 +3040,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks4"
|
||||
address = "127.0.0.1:1080"
|
||||
user_id = "telemt"
|
||||
@@ -3051,7 +3051,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "127.0.0.1:9050"
|
||||
username = "alice"
|
||||
@@ -3062,7 +3062,7 @@
|
||||
- **Пример**:
|
||||
|
||||
```toml
|
||||
[upstreams]
|
||||
[[upstreams]]
|
||||
type = "socks5"
|
||||
address = "127.0.0.1:9050"
|
||||
username = "alice"
|
||||
|
||||
@@ -36,8 +36,11 @@ hello2 = "ad_tag2"
|
||||
On April 1, 2026, we became aware of a method for detecting MTProxy Fake-TLS,
|
||||
based on the ECH extension and the ordering of cipher suites,
|
||||
as well as an overall unique JA3/JA4 fingerprint
|
||||
that does not occur in modern browsers:
|
||||
we have already submitted initial changes to the Telegram Desktop developers and are working on updates for other clients.
|
||||
that does not occur in modern browsers.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> TLS fingerprint has been fixed in latest version of clients for Desktop / Android / iOS.
|
||||
> Please update your client for MTProxy Fake-TLS to work correctly.
|
||||
|
||||
- We consider this a breakthrough aspect, which has no stable analogues today
|
||||
- Based on this: if `telemt` configured correctly, **TLS mode is completely identical to real-life handshake + communication** with a specified host
|
||||
@@ -154,6 +157,24 @@ Keep-Alive: timeout=60
|
||||
### Why do you need a middle proxy (ME)
|
||||
https://github.com/telemt/telemt/discussions/167
|
||||
|
||||
## How clients interact with Telegram DCs
|
||||
When you register a Telegram account, it gets permanently bound to one of Telegram's data centers (DCs).
|
||||
It is deciced beforehand by Telegram based on the phone number's region.
|
||||
This DC becomes your **home DC**: all content you upload (photos, videos, files, messages) is stored there.
|
||||
Your client authenticates on it with every connection.
|
||||
|
||||
For example, if your account is registered on **DC2**, your client will always connect to DC2 first.
|
||||
When you open a chat with another user whose home DC is **DC5**, your client opens an additional connection to DC5 to download their media.
|
||||
Those cross-DC requests are normal and happen constantly.
|
||||
|
||||
> [!WARNING]
|
||||
> Because every session is anchored to your home DC, an outage there causes other DCs to be unavaliable.
|
||||
> If your home DC is DC2 and DC2 goes down, you **cannot** reach DC5 even though DC5 itself is perfectly healthy.
|
||||
> The client has no valid session to route the request through.
|
||||
|
||||
This is also why an MTProxy only needs to reach Telegram's DC infrastructure as a whole.
|
||||
The proxy itself doesn't care which DC your account lives on. The client negotiates the correct DC through the proxy after connecting.
|
||||
|
||||
### How many people can use one link
|
||||
By default, an unlimited number of people can use a single link.
|
||||
However, you can limit the number of unique IP addresses for each user:
|
||||
@@ -161,7 +182,8 @@ However, you can limit the number of unique IP addresses for each user:
|
||||
[access.user_max_unique_ips]
|
||||
hello = 1
|
||||
```
|
||||
This parameter sets the maximum number of unique IP addresses from which a single link can be used simultaneously. If the first user disconnects, a second one can connect. At the same time, multiple users can connect from a single IP address simultaneously (for example, devices on the same Wi-Fi network).
|
||||
This parameter sets the maximum number of unique IP addresses from which a single link can be used simultaneously. If the first user disconnects, a second one can connect.
|
||||
At the same time, multiple users can connect from a single IP address simultaneously (for example, devices on the same Wi-Fi network).
|
||||
|
||||
### How to create multiple different links
|
||||
1. Generate the required number of secrets using the command: `openssl rand -hex 16`.
|
||||
|
||||
@@ -33,9 +33,12 @@ hello = "ad_tag"
|
||||
hello2 = "ad_tag2"
|
||||
```
|
||||
## Распознаваемость для DPI и сканеров
|
||||
1 апреля 2026 года нам стало известно о методе обнаружения MTProxy Fake-TLS, основанном на расширении ECH и порядке набора шифров,
|
||||
а также об общем уникальном отпечатке JA3/JA4, который не встречается в современных браузерах.
|
||||
|
||||
1 апреля 2026 года нам стало известно о методе обнаружения MTProxy Fake-TLS, основанном на расширении ECH и порядке набора шифров,
|
||||
а также об общем уникальном отпечатке JA3/JA4, который не встречается в современных браузерах: мы уже отправили первоначальные изменения разработчикам Telegram Desktop и работаем над обновлениями для других клиентов.
|
||||
> [!IMPORTANT]
|
||||
> Проблема с TLS отпечатком исправлена в последних версиях клиентов Telegram для Desktop / Android / iOS.
|
||||
> Обновите свой клиент для корректной работы с MTProxy Fake-TLS!
|
||||
|
||||
- Мы считаем это прорывом, которому на сегодняшний день нет стабильных аналогов;
|
||||
- Исходя из этого: если `telemt` настроен правильно, **режим TLS полностью идентичен реальному «рукопожатию» + обмену данными** с указанным хостом;
|
||||
@@ -152,6 +155,23 @@ Keep-Alive: timeout=60
|
||||
## Зачем нужен middle proxy (ME)
|
||||
https://github.com/telemt/telemt/discussions/167
|
||||
|
||||
## Как клиенты взаимодействуют с дата-центрами Telegram
|
||||
При регистрации аккаунта Telegram он навсегда привязывается к одному из дата-центров (DC).
|
||||
Telegram заранее определяет к какому DC привязать аккаунт исходя из региона, к которому относиться номер телефона.
|
||||
Этот DC становится вашим **домашним**: именно там хранится весь контент, который вы загружаете (фото, видео, файлы, сообщения).
|
||||
И именно на нем клиент авторизуется при каждом подключении.
|
||||
|
||||
Например, если ваш аккаунт зарегистрирован на **DC2**, клиент всегда будет подключаться в первую очередь к DC2.
|
||||
Когда вы открываете переписку с пользователем, чей домашний DC — **DC5**, клиент устанавливает доп. соединение с DC5, чтобы загрузить его контент.
|
||||
Такие кросс-запросы к DC — это нормальная часть работы Telegram.
|
||||
|
||||
> [!WARNING]
|
||||
> Поскольку аккаунт всегда привязан к домашнему DC, при его падении контент с других DC будет недоступен.
|
||||
> Если ваш домашний DC — DC2, и DC2 лежит, вы **не сможете** достучаться и до DC5, даже если сам DC5 полностью исправен.
|
||||
> У клиента просто нет валидной сессии, через которую можно было бы направить запрос.
|
||||
|
||||
По той же причине MTProxy достаточно иметь доступ к инфраструктуре Telegram в целом.
|
||||
Cамому MTProxy всё равно, на каком DC живёт ваш аккаунт. Клиент cам договаривается о нужном DC через прокси уже после подключения.
|
||||
|
||||
## Что такое dd и ee в контексте MTProxy?
|
||||
|
||||
|
||||
@@ -1,9 +1,36 @@
|
||||
# Installation Options
|
||||
There are three options for installing Telemt:
|
||||
- [Automated installation using a script](#very-quick-start).
|
||||
- [Manual installation of Telemt as a service](#telemt-via-systemd).
|
||||
- [Installation using Docker Compose](#telemt-via-docker-compose).
|
||||
|
||||
# Very quick start
|
||||
|
||||
### One-command installation / update on re-run
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh
|
||||
```
|
||||
|
||||
After starting, the script will prompt for:
|
||||
- Your language (1 - English, 2 - Russian);
|
||||
- Your TLS domain (press Enter for petrovich.ru).
|
||||
|
||||
The script checks if the port (default **443**) is free. If the port is already in use, installation will fail. You need to free up the port or use the **-p** flag with a different port to retry the installation.
|
||||
|
||||
To modify the script’s startup parameters, you can use the following flags:
|
||||
- **-d, --domain** - TLS domain;
|
||||
- **-p, --port** - server port (1–65535);
|
||||
- **-s, --secret** - 32 hex secret;
|
||||
- **-a, --ad-tag** - ad_tag;
|
||||
- **-l, --lan**g - language (1/en or 2/ru);
|
||||
|
||||
Providing all options skips interactive prompts.
|
||||
|
||||
After completion, the script will provide a link for client connections:
|
||||
```bash
|
||||
tg://proxy?server=IP&port=PORT&secret=SECRET
|
||||
```
|
||||
|
||||
### Installing a specific version
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh -s -- 3.3.39
|
||||
|
||||
@@ -1,9 +1,35 @@
|
||||
# Варианты установки
|
||||
Имеется три варианта установки Telemt:
|
||||
- [Автоматизированная установка с помощью скрипта](#очень-быстрый-старт).
|
||||
- [Ручная установка Telemt в качестве службы](#telemt-через-systemd-вручную).
|
||||
- [Установка через Docker Compose](#telemt-через-docker-compose).
|
||||
|
||||
# Очень быстрый старт
|
||||
|
||||
### Установка одной командой / обновление при повторном запуске
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh
|
||||
```
|
||||
После запуска скрипт запросит:
|
||||
- ваш язык (1 - English, 2 - Русский);
|
||||
- ваш TLS-домен (нажмите Enter для petrovich.ru).
|
||||
|
||||
Во время установки скрипт проверяет, свободен ли порт (по умолчанию **443**). Если порт занят другим процессом - установка завершится с ошибкой. Для повторной установки необходимо освободить порт или указать другой через флаг **-p**.
|
||||
|
||||
Для изменения параметров запуска скрипта можно использовать следующие флаги:
|
||||
- **-d, --domain** - TLS-домен;
|
||||
- **-p, --port** - порт (1–65535);
|
||||
- **-s, --secret** - секрет (32 hex символа);
|
||||
- **-a, --ad-tag** - ad_tag;
|
||||
- **-l, --lang** - язык (1/en или 2/ru).
|
||||
|
||||
Если заданы флаги для языка и домена, интерактивных вопросов не будет.
|
||||
|
||||
После завершения установки скрипт выдаст ссылку для подключения клиентов:
|
||||
```bash
|
||||
tg://proxy?server=IP&port=PORT&secret=SECRET
|
||||
```
|
||||
|
||||
### Установка нужной версии
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh -s -- 3.3.39
|
||||
|
||||
Reference in New Issue
Block a user