Как запустить торгового бота 24/7 на VPS
Автор: команда ApexVPS • Обновлено: июль 2026 • 8 мин чтения
Автоматические стратегии должны реагировать на рынок, независимо от того, бодрствуете ли вы. Запуск торгового бота на VPS 24/7 — это стандартный способ поддерживать его в сети: виртуальный выделенный сервер остается включенным, подключенным и физически близко к вашей бирже круглосуточно, поэтому ваш бот никогда не пропустит сигнал из-за того, что ноутбук уснул или домашнее соединение прервалось. Это руководство объясняет, почему VPS лучше домашнего ПК, как выбрать расположение, как поддерживать процесс в работающем состоянии и как контролировать ключи и логи. Это только техническое руководство, а не финансовая консультация, и оно сохраняет нейтралитет в отношении используемого фреймворка или стратегии бота.
Почему VPS лучше домашнего ПК для ботов
Торговый бот — это долго работающий процесс, который не должен останавливаться в неподходящий момент. Домашний компьютер — плохой хост по трем практическим причинам.
Аптайм и постоянная работа
Домашние машины засыпают, устанавливают обновления и перезагружаются по собственному расписанию. Перебои с питанием и перезагрузки роутера добавляют еще больше простоев. VPS работает в дата-центре с резервным питанием и сетью и опубликованной целью доступности — тарифы ApexVPS имеют SLA от 99,9% до 99,99% в зависимости от уровня, — поэтому процесс, который размещает и управляет вашими ордерами, продолжает работать, пока вы спите, путешествуете или работаете.
Задержка до вашей биржи
Каждый ордер и обновление рыночных данных проходит по сетевому пути между вашим сервером и биржей. Чем короче этот путь, тем быстрее ваш бот получает исполнения и реагирует. Домашнее подключение сначала проходит через вашего интернет-провайдера; хорошо расположенный сервер находится на высокоскоростных магистральных каналах. ApexVPS располагает 39 дата-центрами с низкозадержной сетью в ключевых регионах, что сокращает время прохождения ордеров и обновлений котировок.
Без перебоев
На VPS вы сами управляете временем обслуживания. Никаких принудительных обновлений ОС посреди сессии, никаких антивирусных сканирований, нагружающих процессор, и никто из семьи не закроет крышку ноутбука. У бота стабильное выделенное окружение, которое меняется только по вашему желанию.
Выберите местоположение рядом с биржей
Задержка в первую очередь определяется физическим расстоянием, поэтому самый важный фактор — выбор дата-центра, близкого к месту размещения вашей биржи или брокера. Многие криптобиржи запускают свои торговые движки в нескольких хабах или рядом с ними, а фондовые и фьючерсные площадки сосредоточены в определенных мегаполисах. Как правило, выбирайте регион сервера, соответствующий бирже:
- Биржи, ориентированные на Европу: Франкфурт, Лондон или Амстердам.
- Рынки США: Нью-Йорк, Майами или Лос-Анджелес.
- Азиатско-Тихоокеанский регион: Токио, Сингапур или Сидней.
Если вы не уверены, проверьте время кругового пути с помощью простого ping или mtr к API-хосту биржи из нескольких возможных регионов и выберите наименьшее значение. На наших специальных страницах об VPS для торговых ботов и крипто-дружественном VPS с оплатой без карты подробно перечислены доступные регионы.
Поддерживайте бота в работе 24/7
Запуск бота в обычной SSH-сессии недостаточен — когда сессия закрывается, процесс умирает. Используйте один из следующих способов, чтобы он продолжал работать и автоматически перезапускался после сбоя или перезагрузки.
tmux или screen (быстрый старт)
Терминальный мультиплексор поддерживает процесс после отключения. Это самый быстрый способ начать работу, пока вы тестируете:
sudo apt update && sudo apt install -y tmux
tmux new -s bot
# start your bot inside the session, e.g.
python3 main.py
# detach without stopping it: press Ctrl-b, then d
# reattach later:
tmux attach -t bot
tmux отлично подходит для интерактивного тестирования, но сам по себе не перезапускает упавший бот. Для того, что вы оставляете работать, переходите на менеджер процессов ниже.
systemd (рекомендуется на Linux)
systemd встроен в современные Ubuntu и Debian и перезапустит бота при сбое и запустит его при загрузке. Создайте unit-файл:
# /etc/systemd/system/tradingbot.service
[Unit]
Description=Trading Bot
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=botuser
WorkingDirectory=/home/botuser/bot
ExecStart=/usr/bin/python3 /home/botuser/bot/main.py
Restart=always
RestartSec=5
EnvironmentFile=/home/botuser/bot/.env
[Install]
WantedBy=multi-user.target
Затем включите и запустите:
sudo systemctl daemon-reload
sudo systemctl enable --now tradingbot
sudo systemctl status tradingbot
Restart=always возвращает бота после сбоя, а enable запускает его автоматически после любой перезагрузки.
pm2 для Node.js ботов
Если ваш бот написан на JavaScript или TypeScript, pm2 — это простой менеджер процессов со встроенными журналами и перезапуском при загрузке:
npm install -g pm2
pm2 start bot.js --name trading-bot
pm2 save
pm2 startup # run the command it prints, then reboot to verify
Docker для воспроизводимых развертываний
Контейнеры упаковывают вашего бота с точными зависимостями, поэтому он работает одинаково везде. Политика --restart обрабатывает сбои и перезагрузки:
docker run -d --name trading-bot \
--restart unless-stopped \
--env-file /home/botuser/bot/.env \
my-bot:latest
Контейнеры также упрощают обновления и откаты; официальная документация Docker подробно описывает создание образов и управление политиками перезапуска.
Ротируйте и управляйте журналами
Бот, работающий неделями, может заполнить диск журналами и в конечном итоге привести к сбою всего сервера. Ротируйте журналы, чтобы старые файлы сжимались и удалялись автоматически. На Ubuntu и Debian logrotate уже установлен — добавьте правило для вашего бота:
# /etc/logrotate.d/tradingbot
/home/botuser/bot/logs/*.log {
daily
rotate 14
compress
missingok
notifempty
copytruncate
}
Если вы работаете под systemd, журнал уже захватывает вывод; ограничьте его размер в /etc/systemd/journald.conf с помощью параметра, такого как SystemMaxUse=500M. В любом случае периодически просматривайте журналы и предупреждайте об ошибках, чтобы незаметный сбой не остался незамеченным днями.
Защитите бота и ваши ключи API
На вашем VPS хранятся учетные данные, которые могут перемещать деньги, поэтому относитесь к безопасности как к части настройки, а не как к послесловию. Принцип наименьших привилегий OWASP напрямую применим здесь.
- Ограничьте ключи своей биржи. Создавайте API-ключи только с правами, необходимыми для стратегии. Полностью отключите права на вывод средств, и, если биржа это поддерживает, привяжите ключ к IP-адресу вашего сервера.
- Никогда не храните секреты в коде. Держите ключи в файле окружения, загружаемом во время выполнения, а не в системе контроля версий. Ограничьте доступ только пользователем бота:
chmod 600 /home/botuser/bot/.env. - Запускайте от непривилегированного пользователя. Создайте отдельную учетную запись для бота, чтобы при компрометации процесса злоумышленник не получил доступ ко всей системе.
- Укрепите SSH. Используйте SSH-ключи для входа, отключите аутентификацию по паролю и регулярно обновляйте систему с помощью
sudo apt update && sudo apt upgrade. - Закройте неиспользуемые порты. Простой межсетевой экран уменьшает поверхность атаки:
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status
ApexVPS предоставляет полный root-доступ, защиту от DDoS и возможность создания приватной сети, так что вы можете применять эти меры без борьбы с платформой.
Определите размер ресурсов VPS
Боты обычно нетребовательны к CPU, но чувствительны к нехватке ресурсов в неподходящий момент — именно это происходит на перепроданном общем хостинге. Поскольку ресурсы ApexVPS действительно выделенные — без перепродажи, без шумных соседей — вы получаете ровно те ядра, которые оплачиваете. Примерное руководство:
- Один бот, несколько рынков: тариф Starter Pro (2 выделенных vCPU, 4 ГБ RAM, 80 ГБ NVMe SSD) будет комфортным.
- Несколько стратегий или бэктестинг: тариф Business (4 vCPU, 8 ГБ RAM, 160 ГБ NVMe, 1 выделенный IPv4) добавляет запас производительности и IP-адрес, который можно внести в белый список на бирже.
- Набор ботов с приватной сетью: тариф Enterprise (8 vCPU, 16 ГБ RAM, NVMe RAID, 2 выделенных IPv4) подходит для более тяжелых и многокомпонентных установок.
Следите за htop и задержками в течение недели после запуска и увеличивайте ресурсы только при реальной конкуренции. Сравнить характеристики можно на нашей странице с тарифами VPS.
Начало работы
Настройка быстрая: выберите тариф, регион рядом с биржей и укажите email — без имени, адреса и KYC. Оплата только в криптовалюте через OxaPay: принимаются Bitcoin, Ethereum, USDT и более 30 криптовалют, кредитная карта или банковский счет не нужны. Как только платеж подтверждается в блокчейне, начинается предоставление сервера, и вы получаете полный root-доступ для установки бота, добавления systemd-службы и запуска.
Часто задаваемые вопросы
Зачем запускать торгового бота на VPS, а не на домашнем ПК?
VPS остается включенным и подключенным круглосуточно в дата-центре с резервным питанием и сетью. В отличие от домашнего ПК, на него не влияют режимы сна, принудительные перезагрузки ОС, отключения электроэнергии или проблемы с интернет-провайдером, поэтому бот работает без перебоев.
Как поддерживать бота в живых, если он упадет или сервер перезагрузится?
Используйте менеджер процессов, а не просто терминал. Systemd-служба с Restart=always перезапускает бота при сбое и запускает его после перезагрузки. Пользователи Node.js могут использовать pm2 с pm2 startup, а Docker-контейнеры — --restart unless-stopped для того же эффекта.
Сколько CPU и RAM нужно торговому боту?
Один бот, опрашивающий несколько рынков, нетребователен — 2 выделенных vCPU и 4 ГБ RAM справляются без проблем. Для одновременного запуска нескольких стратегий, индикаторов или бэктестов лучше иметь 4 vCPU и 8 ГБ или больше. Поскольку ресурсы выделенные, вы получаете полное ядро без замедлений от соседей.
Как защитить ключи API биржи?
Создайте ключи с минимальными правами, необходимыми для стратегии, отключите разрешение на вывод средств и добавьте IP-allowlist, привязанный к адресу вашего сервера. Храните ключи в файле окружения, доступном только пользователю бота, никогда не встраивайте их в исходный код, и входите по SSH-ключам, а не по паролям.