Перейти к основному содержимому
Вернуться в категорию

Установка SteamCMD: Инструмент управления игровыми серверами Steam

Установка SteamCMD на Linux, загрузка и обновление игровых серверов, скрипт автоматического обновления, анонимный вход и распространённые проблемы.

Время чтения: 12 мин. Настройка игровых серверов
steamcmdsteamигровой серверlinuxустановкаобновление

Содержание

Введение

SteamCMD (Steam Console Client) — это консольный клиент Steam, разработанный Valve. Он используется для загрузки, обновления и управления файлами игровых серверов. Установка выделенных серверов CS2, Garry's Mod, Rust, ARK, Palworld и многих других игр выполняется через SteamCMD. В этом руководстве описана установка SteamCMD на Linux, использование и настройка автоматического обновления.

Системные требования

РесурсМинимум
ОСUbuntu 20.04+ / Debian 11+
RAM512 МБ
Диск500 МБ (SteamCMD) + место для игрового сервера
Архитектура64-бит (требуются 32-битные библиотеки)

Методы установки

Метод 1: Установка через APT (Ubuntu/Debian)

hljs bash
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd

Метод 2: Ручная установка (Рекомендуется)

hljs bash
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 wget tar

sudo adduser steam --disabled-login --gecos ""
sudo su - steam

mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzf steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz

Проверьте установку:

hljs bash
./steamcmd.sh +quit

Ручная установка позволяет создавать отдельных пользователей для каждого игрового сервера и лучше управлять правами.

Основное использование

Структура команд SteamCMD

hljs bash
./steamcmd.sh +login <пользователь> +force_install_dir <каталог> +app_update <app_id> +quit

Анонимный вход

Большинство игровых серверов можно загрузить с анонимным входом:

hljs bash
./steamcmd.sh +login anonymous +quit

Вход с аккаунтом

Некоторые серверы требуют аккаунт Steam:

hljs bash
./steamcmd.sh +login имя_пользователя +quit

При включённом Steam Guard потребуется ввести код подтверждения. Токен кэшируется после первого входа.

Популярные игровые серверы и App ID

ИграApp IDАнонимный вход
Counter-Strike 2730Да
Garry's Mod4020Да
Rust258550Да
ARK: Survival Evolved376030Да
Palworld2394010Да
Unturned1110390Да
Terraria (tShock)105600Да
Valheim896660Да
Project Zomboid380870Да
V Rising1829350Да
Enshrouded2278520Да

Примеры загрузки серверов

Сервер CS2

hljs bash
./steamcmd.sh \
  +force_install_dir ~/cs2-server \
  +login anonymous \
  +app_update 730 validate \
  +quit

Сервер Rust

hljs bash
./steamcmd.sh \
  +force_install_dir ~/rust-server \
  +login anonymous \
  +app_update 258550 validate \
  +quit

Скрипт автоматического обновления

hljs bash
nano ~/steamcmd/update_all.sh
hljs bash
#!/bin/bash
STEAMCMD="/home/steam/steamcmd/steamcmd.sh"
LOG_FILE="/home/steam/update.log"

echo "========================================" >> $LOG_FILE
echo "$(date): Обновление начато" >> $LOG_FILE

$STEAMCMD +force_install_dir /home/steam/cs2-server \
  +login anonymous +app_update 730 +quit >> $LOG_FILE 2>&1

$STEAMCMD +force_install_dir /home/steam/rust-server \
  +login anonymous +app_update 258550 +quit >> $LOG_FILE 2>&1

echo "$(date): Обновление завершено" >> $LOG_FILE
hljs bash
chmod +x ~/steamcmd/update_all.sh
crontab -e
0 4 * * * /home/steam/steamcmd/update_all.sh

Скриптовые файлы SteamCMD

hljs bash
nano ~/steamcmd/cs2_update.txt
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
login anonymous
force_install_dir /home/steam/cs2-server
app_update 730 validate
quit

Запуск:

hljs bash
./steamcmd.sh +runscript ~/steamcmd/cs2_update.txt

Установка бета-ветки

hljs bash
./steamcmd.sh \
  +force_install_dir ~/game-server \
  +login anonymous \
  +app_update APP_ID -beta BETA_NAME \
  +quit

Загрузка контента Workshop

hljs bash
./steamcmd.sh \
  +login anonymous \
  +workshop_download_item APP_ID WORKSHOP_ID \
  +quit

Распространённые проблемы

Ошибка 32-битных библиотек

hljs bash
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6

Недостаточно места на диске

hljs bash
df -h
rm -rf ~/steamcmd/steamapps/downloading/*
rm -rf ~/steamcmd/steamapps/temp/*

Ошибки загрузки

hljs bash
./steamcmd.sh +force_install_dir ~/game-server \
  +login anonymous +app_update APP_ID validate +quit

Рекомендации по безопасности

  1. Отдельные пользователи: Создавайте отдельного пользователя Linux для каждого сервера
  2. Не используйте root: Никогда не запускайте SteamCMD от root
  3. Файрвол: Открывайте только необходимые порты
  4. Обновления: Регулярно обновляйте
  5. Резервные копии: Регулярно создавайте резервные копии

Заключение

SteamCMD — основной инструмент управления игровыми серверами на Linux. С анонимным входом вы можете легко загрузить большинство серверов, а с автоматическими скриптами обновления — поддерживать их в актуальном состоянии. Мощная инфраструктура REXE VDS обеспечивает бесперебойную работу ваших серверов на базе SteamCMD.