2026-04-07 22:39:39 +03:00
# Очень быстрый старт
### Установка одной командой / обновление при повторном запуске
``` bash
curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh
```
### Установка нужной версии
``` bash
curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh -s -- 3.3.39
```
### Удаление с полной очисткой
``` bash
curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh -s -- purge
```
# Telemt через Systemd вручную
2026-02-28 17:17:50 +03:00
## Установка
Это программное обеспечение разработано для ОС на базе Debian: помимо Debian, это Ubuntu, Mint, Kali, MX и многие другие Linux
**1. Скачать **
``` bash
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
```
**2. Переместить в папку Bin **
``` bash
mv telemt /bin
```
**3. Сделать файл исполняемым **
``` bash
chmod +x /bin/telemt
```
## Как правильно использовать?
**Эта инструкция "предполагает", что вы: **
- Авторизовались как пользователь root или выполнил `su -` / `sudo su`
- У вас уже есть исполняемый файл "telemt" в папке /bin. Читайте раздел * * [Установка ](#установка )**
---
**0. Проверьте порт и сгенерируйте секреты **
Порт, который вы выбрали для использования, должен отсутствовать в списке:
``` bash
netstat -lnp
```
Сгенерируйте 16 bytes/32 символа в шестнадцатеричном формате с помощью OpenSSL или другим способом:
``` bash
openssl rand -hex 16
```
ИЛИ
``` bash
xxd -l 16 -p /dev/urandom
```
ИЛИ
``` bash
python3 -c 'import os; print(os.urandom(16).hex())'
```
Полученный результат сохраняем где-нибудь. Он понадобиться вам дальше!
---
2026-03-09 19:39:55 +03:00
**1. Поместите свою конфигурацию в файл /etc/telemt/telemt.toml **
Создаём директорию для конфига:
``` bash
mkdir /etc/telemt
```
2026-02-28 17:17:50 +03:00
Открываем nano
``` bash
2026-03-09 19:39:55 +03:00
nano /etc/telemt/telemt.toml
2026-02-28 17:17:50 +03:00
```
Вставьте свою конфигурацию
``` toml
2026-04-08 15:52:55 +03:00
### Конфигурационный файл на основе Telemt
# Мы полагаем, что этих настроек достаточно для большинства сценариев,
# где не требуются передовые методы, параметры или специальные решения
# === Общие настройки ===
2026-02-28 17:17:50 +03:00
[ general ]
2026-04-08 15:52:55 +03:00
use_middle_proxy = true
# Глобальный ad_tag, если у пользователя нет индивидуального тега в [access.user_ad_tags]
2026-02-28 17:17:50 +03:00
# ad_tag = "00000000000000000000000000000000"
2026-04-08 15:52:55 +03:00
# Индивидуальный ad_tag в [access.user_ad_tags] (32 шестнадцатеричных символа от @MTProxybot)
# === Уровень логирования ===
# Уровень логирования: debug | verbose | normal | silent
# Можно переопределить с помощью флагов командной строки --silent или --log-level
# Переменная окружения RUST_LOG имеет абсолютный приоритет над всеми этими настройками
log_level = "normal"
2026-02-28 17:17:50 +03:00
[ general . modes ]
classic = false
secure = false
tls = true
2026-04-08 15:52:55 +03:00
[ general . links ]
show = "*"
# show = ["alice", "bob"] # Показывать ссылки только для alice и bob
2026-04-09 01:12:27 +03:00
# show = "*" # Показывать ссылки для всех пользователей
# public_host = "proxy.example.com" # Хост (IP-адрес или домен) для ссылок tg://
# public_port = 443 # Порт для ссылок tg:// (по умолчанию: server.port)
2026-04-08 15:52:55 +03:00
# === Привязка сервера ===
2026-03-16 13:40:20 +03:00
[ server ]
port = 443
2026-04-09 01:12:27 +03:00
# proxy_protocol = false # Включите, если сервер находится за HAProxy/nginx с протоколом PROXY
2026-04-08 15:52:55 +03:00
# metrics_port = 9090
2026-04-09 01:12:27 +03:00
# metrics_listen = "127.0.0.1:9090" # Адрес прослушивания для метрик (переопределяет metrics_port)
# metrics_whitelist = ["127.0.0.1/32", "::1/128"]
2026-03-16 13:40:20 +03:00
2026-03-06 21:03:45 +03:00
[ server . api ]
enabled = true
2026-04-09 01:12:27 +03:00
listen = "127.0.0.1:9091"
whitelist = [ "127.0.0.1/32" , "::1/128" ]
2026-04-08 15:52:55 +03:00
minimal_runtime_enabled = false
minimal_runtime_cache_ttl_ms = 1000
# Прослушивание на нескольких интерфейсах/IP-адресах - IPv4
[ [ server . listeners ] ]
ip = "0.0.0.0"
2026-03-06 21:03:45 +03:00
2026-04-08 15:52:55 +03:00
# === Обход блокировок и маскировка ===
2026-02-28 17:17:50 +03:00
[ censorship ]
2026-04-09 01:12:27 +03:00
tls_domain = "petrovich.ru" # Домен Fake-TLS / SNI, который будет использоваться в сгенерированных ee-ссылках
2026-04-08 15:52:55 +03:00
mask = true
2026-04-09 01:12:27 +03:00
tls_emulation = true # Получить реальную длину сертификата и эмулировать запись TLS
2026-04-08 15:52:55 +03:00
tls_front_dir = "tlsfront" # Директория кэша для эмуляции TLS
2026-02-28 17:17:50 +03:00
[ access . users ]
2026-04-08 15:52:55 +03:00
# формат: "имя_пользователя" = "секрет_из_32_шестнадцатеричных_символов"
2026-02-28 17:17:50 +03:00
hello = "00000000000000000000000000000000"
```
2026-03-06 21:03:45 +03:00
2026-03-01 15:05:25 +03:00
Затем нажмите Ctrl+S -> Ctrl+X, чтобы сохранить
2026-02-28 17:39:12 +03:00
2026-02-28 17:17:50 +03:00
> [!WARNING]
2026-04-09 01:12:27 +03:00
> Замените значение параметра `hello` на значение, которое вы получили в пункте 0.
> Так же замените значение параметра `tls_domain` на другой сайт.
> Изменение параметра `tls_domain` сделает нерабочими все ссылки, использующие старый домен!
2026-02-28 17:17:50 +03:00
---
2026-03-09 19:39:55 +03:00
**2. Создайте пользователя для telemt **
``` bash
useradd -d /opt/telemt -m -r -U telemt
chown -R telemt:telemt /etc/telemt
```
**3. Создайте службу в /etc/systemd/system/telemt.service **
2026-02-28 17:17:50 +03:00
Открываем nano
``` bash
nano /etc/systemd/system/telemt.service
```
Вставьте этот модуль Systemd
``` bash
[ Unit]
Description = Telemt
2026-03-09 19:39:55 +03:00
After = network-online.target
Wants = network-online.target
2026-02-28 17:17:50 +03:00
[ Service]
Type = simple
2026-03-09 19:39:55 +03:00
User = telemt
Group = telemt
WorkingDirectory = /opt/telemt
ExecStart = /bin/telemt /etc/telemt/telemt.toml
2026-02-28 17:17:50 +03:00
Restart = on-failure
LimitNOFILE = 65536
2026-04-05 18:53:16 +03:00
AmbientCapabilities = CAP_NET_ADMIN CAP_NET_BIND_SERVICE
CapabilityBoundingSet = CAP_NET_ADMIN CAP_NET_BIND_SERVICE
2026-03-09 19:39:55 +03:00
NoNewPrivileges = true
2026-02-28 17:17:50 +03:00
[ Install]
WantedBy = multi-user.target
```
2026-03-01 15:05:25 +03:00
Затем нажмите Ctrl+S -> Ctrl+X, чтобы сохранить
2026-02-28 17:17:50 +03:00
2026-03-09 19:39:55 +03:00
перезагрузите конфигурацию systemd
``` bash
systemctl daemon-reload
```
2026-02-28 17:17:50 +03:00
2026-03-09 19:39:55 +03:00
**4. ** Для запуска введите команду `systemctl start telemt`
2026-02-28 17:17:50 +03:00
2026-03-09 19:39:55 +03:00
**5. ** Для получения информации о статусе введите `systemctl status telemt`
2026-02-28 17:17:50 +03:00
2026-03-09 19:39:55 +03:00
**6. ** Для автоматического запуска при запуске системы в введите `systemctl enable telemt`
2026-02-28 17:17:50 +03:00
2026-03-09 19:39:55 +03:00
**7. ** Для получения ссылки/ссылок введите
2026-03-06 21:03:45 +03:00
``` bash
2026-04-07 13:53:12 +03:00
curl -s http://127.0.0.1:9091/v1/users | jq -r '.data[] | "[\(.username)]", (.links.classic[]? | "classic: \(.)"), (.links.secure[]? | "secure: \(.)"), (.links.tls[]? | "tls: \(.)"), ""'
2026-03-06 21:03:45 +03:00
```
2026-03-07 14:48:02 +01:00
> Одной ссылкой может пользоваться сколько угодно человек.
2026-03-06 21:03:45 +03:00
2026-03-03 15:16:22 +03:00
> [!WARNING]
2026-03-14 11:07:12 +03:00
> Рабочую ссылку может выдать только команда из 7 пункта. Не пытайтесь делать ее самостоятельно или копировать откуда-либо если вы не уверены в том, что делаете!
2026-02-28 17:17:50 +03:00
---
# Telemt через Docker Compose
**1. Отредактируйте `config.toml` в корневом каталоге репозитория (как минимум: порт, пользовательские секреты, tls_domain) **
**2. Запустите контейнер: **
``` bash
docker compose up -d --build
```
**3. Проверьте логи: **
``` bash
docker compose logs -f telemt
```
**4. Остановите контейнер: **
``` bash
docker compose down
```
> [!NOTE]
> - В `docker-compose.yml` файл `./config.toml` монтируется в `/app/config.toml` (доступно только для чтения)
> - По умолчанию публикуются порты 443:443, а контейнер запускается со сброшенными привилегиями (добавлена только `NET_BIND_SERVICE`)
> - Если вам действительно нужна сеть хоста (обычно это требуется только для некоторых конфигураций IPv6), раскомментируйте `network_mode: host`
2026-03-20 22:23:36 +02:00
**Запуск без Docker Compose **
2026-02-28 17:17:50 +03:00
``` bash
docker build -t telemt:local .
docker run --name telemt --restart unless-stopped \
-p 443:443 \
2026-03-19 15:54:01 +03:00
-p 9090:9090 \
-p 9091:9091 \
2026-02-28 17:17:50 +03:00
-e RUST_LOG = info \
-v " $PWD /config.toml:/app/config.toml:ro " \
--read-only \
--cap-drop ALL --cap-add NET_BIND_SERVICE \
--ulimit nofile = 65536:65536 \
telemt:local
```