VPS для Telegram-userbot: Telethon и Pyrogram
Userbot работает от имени обычного аккаунта, а не бота BotFather — он видит все чаты, может автоматизировать рассылки, парсить каналы и отвечать за вас. Чтобы сессия жила круглосуточно и не отваливалась, userbot держат на VPS. Разберём деплой на Telethon и Pyrogram.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Чем userbot отличается от обычного бота
Обычный бот создаётся через @BotFather и ограничен API ботов: он не видит историю чата до подключения, не может вступать в группы сам и работает только там, куда его добавили. Userbot же авторизуется как живой аккаунт через MTProto и получает те же возможности, что и человек в приложении Telegram.
Это открывает автоматизацию, недоступную ботам: мониторинг закрытых каналов, автоответы в личке, парсинг участников групп, пересылку по правилам. Обратная сторона — userbot должен быть онлайн постоянно, иначе он пропустит события. Именно поэтому его место на VPS, а не на домашнем ПК.
- Полный доступ к аккаунту — все чаты, каналы, история.
- MTProto-сессия — авторизация как у обычного клиента.
- Нужен аптайм 24/7 — иначе события проходят мимо.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для userbotВажное про безопасность аккаунта
Userbot использует ваш реальный номер и API-ключи с my.telegram.org. Агрессивные рассылки и массовое добавление в чаты Telegram расценивает как спам и может ограничить или заблокировать аккаунт. Держите автоматизацию в рамках здравого смысла: паузы между действиями, никаких массовых инвайтов.
Файл сессии (.session у Telethon, .session у Pyrogram) — это фактически ключ от аккаунта без пароля. Кто получил файл, тот вошёл в ваш Telegram. Храните его на сервере с правами 600 и никогда не коммитьте в git.
chmod 600 ~/userbot/*.session
echo '*.session' >> ~/userbot/.gitignore
Установка Telethon или Pyrogram
Обе библиотеки асинхронные и лёгкие. Ставим Python, создаём окружение и выбираем одну из них.
sudo apt update && sudo apt install -y python3 python3-venv git
sudo useradd -r -m -s /bin/bash ubot
sudo -u ubot bash -c 'cd ~ && python3 -m venv venv && venv/bin/pip install telethon'
# или Pyrogram + TgCrypto для скорости:
sudo -u ubot bash -c '~/venv/bin/pip install pyrogram tgcrypto'
API_ID и API_HASH берутся на my.telegram.org в разделе API development tools. Держите их в .env вместе с номером телефона.
Первый вход и создание сессии
Авторизацию с вводом кода нужно пройти один раз — интерактивно. Запустите скрипт вручную по SSH, введите код из Telegram, и библиотека сохранит session-файл. Дальше вход будет автоматическим.
from telethon import TelegramClient, events
import os
client = TelegramClient('userbot', int(os.environ['API_ID']), os.environ['API_HASH'])
@client.on(events.NewMessage(pattern='ping'))
async def handler(e):
await e.reply('pong с VPS')
client.start()
client.run_until_disconnected()
cd ~/userbot && ../venv/bin/python userbot.py
# вводим код подтверждения из Telegram один раз
После успешного входа появится файл userbot.session — с ним бот заходит без кода.
Автозапуск через systemd
Когда сессия создана, оформляем userbot как сервис, чтобы он работал круглосуточно и переживал ребут.
sudo tee /etc/systemd/system/userbot.service > /dev/null <<'EOF'
[Unit]
Description=Telegram userbot
After=network-online.target
Wants=network-online.target
[Service]
User=ubot
WorkingDirectory=/home/ubot/userbot
EnvironmentFile=/home/ubot/userbot/.env
ExecStart=/home/ubot/venv/bin/python userbot.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now userbot
journalctl -u userbot -f
Пауза перед перезапуском здесь чуть больше (10 секунд) — при флаппинге соединения не стоит частить переподключениями, чтобы Telegram не счёл это подозрительной активностью.
Ресурсы, сервер и частые ошибки
Userbot почти не потребляет ресурсов — хватает младшего тарифа. Важнее стабильная сеть и постоянный IP: частая смена IP при переподключениях выглядит для Telegram подозрительно. У MAATRIX фиксированный IP, локации UK, США и РФ близки к сети Telegram, а AMD EPYC + NVMe гарантируют мгновенный отклик. Оплата картой РФ, СБП, криптой или MAAT — удобно из России.
- Session-файл в git — полная компрометация аккаунта.
- Массовые рассылки — Telegram ограничит или заблокирует номер.
- Запуск сессии в двух местах — конфликт, аккаунт может разлогиниться.
- Нет Restart — после разрыва связи userbot не переподключится сам.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для userbotОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Telethon или Pyrogram — что лучше?
Обе зрелые. Telethon даёт более низкоуровневый доступ к MTProto, Pyrogram с TgCrypto чуть быстрее и с приятным API. Для большинства задач выбор непринципиален.
Могут ли забанить аккаунт за userbot?
Да, за спам, массовые инвайты и агрессивную автоматизацию. Держите разумные паузы и не рассылайте по незнакомым — тогда риск минимален.
Нужно ли вводить код при каждом запуске?
Нет. Код вводится один раз при создании session-файла. Дальше userbot заходит автоматически, пока сессия действительна.