telemt/docs/QUICK_START_GUIDE.ru.md

6.0 KiB
Raw Blame History

Telemt через Systemd

Установка

Это программное обеспечение разработано для ОС на базе Debian: помимо Debian, это Ubuntu, Mint, Kali, MX и многие другие Linux

1. Скачать

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

mv telemt /bin

3. Сделать файл исполняемым

chmod +x /bin/telemt

Как правильно использовать?

Эта инструкция "предполагает", что вы:

  • Авторизовались как пользователь root или выполнил su - / sudo su
  • У вас уже есть исполняемый файл "telemt" в папке /bin. Читайте раздел Установка

0. Проверьте порт и сгенерируйте секреты

Порт, который вы выбрали для использования, должен отсутствовать в списке:

netstat -lnp

Сгенерируйте 16 bytes/32 символа в шестнадцатеричном формате с помощью OpenSSL или другим способом:

openssl rand -hex 16

ИЛИ

xxd -l 16 -p /dev/urandom

ИЛИ

python3 -c 'import os; print(os.urandom(16).hex())'

Полученный результат сохраняем где-нибудь. Он понадобиться вам дальше!


1. Поместите свою конфигурацию в файл /etc/telemt/telemt.toml

Создаём директорию для конфига:

mkdir /etc/telemt

Открываем nano

nano /etc/telemt/telemt.toml

Вставьте свою конфигурацию

# === General Settings ===
[general]
# ad_tag = "00000000000000000000000000000000"
use_middle_proxy = false

[general.modes]
classic = false
secure = false
tls = true

[server]
port = 443

[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 = "petrovich.ru"

[access.users]
# format: "username" = "32_hex_chars_secret"
hello = "00000000000000000000000000000000"

Затем нажмите Ctrl+S -> Ctrl+X, чтобы сохранить

[!WARNING] Замените значение параметра hello на значение, которое вы получили в пункте 0.
Так же замените значение параметра tls_domain на другой сайт.


2. Создайте пользователя для telemt

useradd -d /opt/telemt -m -r -U telemt
chown -R telemt:telemt /etc/telemt

3. Создайте службу в /etc/systemd/system/telemt.service

Открываем nano

nano /etc/systemd/system/telemt.service

Вставьте этот модуль Systemd

[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

Затем нажмите Ctrl+S -> Ctrl+X, чтобы сохранить

перезагрузите конфигурацию systemd

systemctl daemon-reload

4. Для запуска введите команду systemctl start telemt

5. Для получения информации о статусе введите systemctl status telemt

6. Для автоматического запуска при запуске системы в введите systemctl enable telemt

7. Для получения ссылки/ссылок введите

curl -s http://127.0.0.1:9091/v1/users | jq

Одной ссылкой может пользоваться сколько угодно человек.

[!WARNING] Рабочую ссылку может выдать только команда из 7 пункта. Не пытайтесь делать ее самостоятельно или копировать откуда-либо если вы не уверены в том, что делаете!


Telemt через Docker Compose

1. Отредактируйте config.toml в корневом каталоге репозитория (как минимум: порт, пользовательские секреты, tls_domain)
2. Запустите контейнер:

docker compose up -d --build

3. Проверьте логи:

docker compose logs -f telemt

4. Остановите контейнер:

docker compose down

[!NOTE]

  • В docker-compose.yml файл ./config.toml монтируется в /app/config.toml (доступно только для чтения)
  • По умолчанию публикуются порты 443:443, а контейнер запускается со сброшенными привилегиями (добавлена только NET_BIND_SERVICE)
  • Если вам действительно нужна сеть хоста (обычно это требуется только для некоторых конфигураций IPv6), раскомментируйте network_mode: host

Запуск без Docker Compose

docker build -t telemt:local .
docker run --name telemt --restart unless-stopped \
  -p 443:443 \
  -p 9090:9090 \
  -p 9091:9091 \
  -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