Управление выделенным сервером Factorio в режиме headless требует регулярного выполнения административных задач: сохранения прогресса перед перезагрузкой, информирования игроков о плановом обслуживании, создания резервных копий и мониторинга онлайна. Прямой ввод команд в терминал screen или tmux не поддаётся надёжной автоматизации, поэтому Factorio поддерживает стандартный протокол Source RCON для удалённого управления через сетевой сокет.
В этой статье мы рассмотрим безопасную настройку RCON в Factorio, запуск команд сохранения мира без остановки сервера и создание bash-скрипта с интеграцией Discord-вебхуков.
Настройка RCON-порта и привязки к локальному интерфейсу#
Factorio включает поддержку RCON через параметры командной строки при запуске бинарного файла factorio. По умолчанию порт RCON не шифрует сетевой трафик, поэтому критически важно привязать его исключительно к локальному интерфейсу 127.0.0.1.
Проверьте или добавьте флаги RCON в конфигурационный файл службы systemd (/etc/systemd/system/factorio.service):
cat << 'EOF' > /tmp/factorio_rcon_flags.conf
--rcon-port 27015 \
--rcon-password "StrongSecretKey2026" \
--rcon-bind 127.0.0.1
EOF
cat /tmp/factorio_rcon_flags.conf
Параметр --rcon-bind 127.0.0.1 гарантирует, что порт 27015 останется недоступен для внешних сканеров интернета и будет принимать соединения только от локальных скриптов сервера.
Выполнение команд и создание бэкапов через CLI#
Для отправки команд RCON из консоли Linux используется легковесная утилита mcrcon или rcon-cli. Установите mcrcon и проверьте связь с сервером:
sudo apt-get update && sudo apt-get install -y mcrcon
mcrcon -H 127.0.0.1 -P 27015 -p "StrongSecretKey2026" "/players online"
Команда возвращает текущий список игроков. Для создания резервной точки сохранения без лагов и остановки сервера используется внутренняя команда:
mcrcon -H 127.0.0.1 -P 27015 -p "StrongSecretKey2026" "/silent-command game.server_save()"
Команда /silent-command выполняет метод Lua-движка игры без вывода служебных сообщений в общий чат выживших.
Скрипт автоматических бэкапов с оповещениями в Discord#
Объединим принудительное сохранение через RCON, сжатие файла мира и отправку JSON-уведомления в Discord-канал администраторов в единый скрипт автоматизации:
cat << 'EOF' > /opt/factorio/rcon_backup.sh
#!/usr/bin/env bash
set -euo pipefail
RCON_HOST="127.0.0.1"
RCON_PORT="27015"
RCON_PASS="StrongSecretKey2026"
DISCORD_WEBHOOK="https://discord.com/api/webhooks/your_webhook_id/your_token"
SAVE_NAME="world_$(date +%Y%m%d_%H%M%S)"
# Принудительное сохранение мира через RCON
mcrcon -H "$RCON_HOST" -P "$RCON_PORT" -p "$RCON_PASS" "/server-save"
sleep 2
# Оповещение в Discord
PAYLOAD=$(cat <<JSON
{
"username": "Factorio Server Bot",
"content": "Сохранение мира успешно завершено: \`${SAVE_NAME}\`."
}
JSON
)
curl -s -H "Content-Type: application/json" -X POST -d "$PAYLOAD" "$DISCORD_WEBHOOK"
EOF
chmod +x /opt/factorio/rcon_backup.sh
Скрипт подаёт команду /server-save, ожидает завершения записи дискового кэша и отправляет компактное событие в мониторинг команды.
Настройка периодического запуска через Cron#
Добавьте регулярное расписание запуска скрипта резервного копирования в системный планировщик cron:
(crontab -l 2>/dev/null; echo "0 */4 * * * /opt/factorio/rcon_backup.sh >> /var/log/factorio_backup.log 2>&1") | crontab -
crontab -l | grep rcon_backup
Каждые 4 часа сервер сохраняет карту и отправляет статусное подтверждение, сводя к минимуму риск потери фабричного прогресса при сбоях операционной системы.
Если вы хотите развернуть автоматизированный сервер Factorio Space Age с защищённым веб-RCON, графиками нагрузки UPS/FPS и автоматическими бэкапами по расписанию, профессиональный хостинг серверов Factorio предоставляет готовую инфраструктуру с мгновенной активацией.




