Використання SteamCMD: встановлення, команди, автоматизація та помилки

Останнє оновлення: 15/10/2025
Автор: Ісаак
  • SteamCMD керує встановленням та оновленням виділених серверів за допомогою SteamPipe та замінює старий HLDSUpdateTool.
  • Дозволяє анонімну або облікову автентифікацію, підтримує бета-гілки та перевірку файлів для забезпечення цілісності.
  • Підтримує автоматизацію командного рядка та скриптів, а також завантаження схрещено з @sSteamCmdForcePlatformType.
  • Містить виправлення поширених помилок (32-бітні бібліотеки, вхід, ulimit) та утиліти, такі як LGSM та графічний інтерфейс SteamCMD.

Посібник користувача SteamCMD та виділених серверів

Якщо ви хочете налаштувати або обслуговувати виділені ігрові сервери, використовуючи інфраструктуру Valve, рано чи пізно ви зіткнетеся зі SteamCMD. Ця утиліта є онлайн-версією Команди клієнта Steam і став стандартним інструментом для завантаження, встановлення та оновлення серверів. Оскільки SteamPipe замінив старий HLDSUpdateTool, практично всі ігри, що підтримують виділені сервери, проходять через цю сторінку.

У цьому повному посібнику я дуже детально пояснюю, як завантажити SteamCMD у Windows, Linux та macOS, як виконувати базові та розширені команди, входити в систему (анонімно або з обліковим записом), встановлювати та перевіряти сервери, автоматизувати завдання за допомогою скриптів, примусово завантажувати різні платформи та як вирішувати поширені помилки. Крім того, я інтегрую практичний кейс з Palworld. і я роблю огляди зовнішніх утиліт та скриптів, які спрощують ваше життя.

Що таке SteamCMD і для чого він використовується?

Що таке SteamCMD

SteamCMD — це клієнтська консоль Steam: додаток без графічного інтерфейсу, який розуміє текстові команди. Його основна функція — встановлення та оновлення програм і виділених серверів, що використовують систему розповсюдження контенту SteamPipe. Усі ігри, які раніше використовували HLDSUpdateTool, перейшли на SteamCMD., тому це офіційний спосіб керування серверами, що підтримується Valve.

Завантажте та встановіть SteamCMD

Процес залежить від операційної системи, але він завжди простий. Спочатку створіть окремий каталог для SteamCMD і звідти працювати, щоб усе було організовано.

Windows

У Windows просто підготуйте папку, завантажте офіційний ZIP-архів та розпакуйте його. Приклад зручного шляху: C:\steamcmd.

1) Crea la carpeta, por ejemplo: C:\steamcmd
2) Descarga: http://media.steampowered.com/installer/steamcmd.zip
3) Extrae el ZIP dentro de C:\steamcmd

Linux

У Linux рекомендується спочатку встановити 32-бітні бібліотеки, оскільки SteamCMD — це 32-бітний бінарний файл. Конкретні пакети залежать від дистрибутива..

Ubuntu/Debian 64-bit:
apt-get install lib32gcc1

RedHat/CentOS:
yum install glibc libstdc++

RedHat/CentOS 64-bit:
yum install glibc.i686 libstdc++.i686

Наполегливо рекомендується створити спеціального користувача (наприклад, «steam») для встановлення та запуску серверів. Не запускайте SteamCMD як корінь; не є зайвим і може спричинити проблеми з дозволами.

# Como root, crea un usuario y su home (o usa sudo)
useradd -m steam
su - steam

# Crea el directorio de trabajo y entra en él
mkdir ~/steamcmd
cd ~/steamcmd

# Descarga y extrae SteamCMD
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

macOS (OS X)

У macOS процес аналогічний: папка, завантаження та вилучення з термінал. Використайте curl для запуску інсталятора.

mkdir ~/steamcmd
cd ~/steamcmd
curl -O http://media.steampowered.com/client/installer/steamcmd_osx.tar.gz
tar -xvzf steamcmd_osx.tar.gz

Як запустити SteamCMD

До першого завантаження Інструмент оновлюється самостійно та залишає вас у вікні запиту Steam>. Введіть help, щоб переглянути доступні команди і почніть орієнтуватися.

Windows

У консолі Windows перейдіть до папки, куди ви розпакували архів, і запустіть його. Основні команди прості:

cd C:\steamcmd
steamcmd

Linux і macOS

У системах типів Юнекс, увійдіть до робочого каталогу та запустіть сценарій. Не забудьте використовувати ./ перед виконуваним файлом:

cd ~/steamcmd
./steamcmd.sh

Вхід до SteamCMD

SteamCMD дозволяє входити в систему двома способами: анонімно або за допомогою облікових даних Steam. багато додатка з сервера завантажуються в анонімному режимі, але не всі.

Анонімний доступ

Для серверів, які це дозволяють, найшвидший: вхід анонімний.

login anonymous

Увійдіть за допомогою свого облікового запису Steam

Деякі сервери вимагають автентифікації, а іноді й покупки гри. У таких випадках увійдіть, використовуючи своє ім'я користувача. З міркувань безпеки рекомендується створювати додатковий обліковий запис лише для серверів. і уникайте використання особистого облікового запису для ігор.

login <tu_usuario>

Введіть свій пароль, коли буде запропоновано. Якщо у вас є Steam Guard, ви отримаєте код електронною поштою, і його потрібно буде ввести вперше (або якщо ви видалите файли, де SteamCMD зберігає вашу інформацію для входу). Зверніть увагу, що обліковий запис можна використовувати лише в одному місці одночасно., або в графічному клієнті, або в SteamCMD.

  Як отримати Nautilus Shells Minecraft

Встановлення та оновлення серверів за допомогою SteamCMD

Типовий процес такий: увійти, вибрати папку встановлення та використати app_update з ідентифікатором програми. Ви також можете перевіряти файли та вибирати бета-гілки. якщо вони є в наявності.

Спочатку визначте каталог призначення (звичайна коса риска в Linux/macOS та зворотна коса риска в Windows): примусова_каталог_встановлення

# Ejemplo: subcarpeta "cs_go" en el directorio actual
force_install_dir ./cs_go/

Потім запустіть встановлення або оновлення за допомогою app_update. Ви можете додати validate для перевірки цілісності та -beta з -betapassword, якщо вам потрібна захищена гілка. Загальний синтаксис такий:

app_update <app_id> [-beta <rama_beta>] [-betapassword <clave>] [validate]

HLDS — це особливий випадок: його App ID завжди дорівнює 90, і перед оновленням потрібно вибрати мод за допомогою app_set_config. Параметр, який потрібно встановити, це mod:

app_set_config <app_id> <opcion> <valor>

Деякі широко використовувані практичні приклади. Присвячений CS:GO:

app_update 740 validate

HLDS з Team Fortress Classic:

app_set_config 90 mod tfc
app_update 90 validate

Зверніть увагу, що HLDS (appid 90) може вимагати запуску app_update кілька разів, поки не завантажить усі необхідні файли. Повторюйте перевірку app_update 90, доки не закінчаться оновлення..

HLDS (Half-Life) у бета-версії:

app_update 90 -beta beta validate

Counter-Strike: Присвячена вихідному коду (гілка передрелізу):

app_update 232330 -beta prerelease validate

Природний відбір 2 у закритому бета-тестуванні (гілка "альфа", код "natsel"):

app_update 4940 -beta alpha -betapassword natsel validate

Коли ви закінчите, вийдіть належним чином, виконавши такі дії: вихід.

quit

Перевірка файлів

Перемикач validate примусово перевіряє, чи всі файли відповідають офіційним. Це корисно, якщо ви підозрюєте, що є пошкоджені файли або відсутній після невдачі.

Примітка: Перевірка перезаписує змінені файли відносно стану за замовчуванням. Якщо ви налаштували, наприклад, файл mapcycle.txt, буде відновлено оригінальну версію. Файли, які не входять до стандартної інсталяції, залишаться незмінними.

Автоматизація SteamCMD

Ви можете автоматизувати завдання, об'єднуючи команди в командному рядку або за допомогою скриптів з +runscript. У Linux та macOS замініть steamcmd на ./steamcmd.sh у прикладах.

З командного рядка

Щоб створити ланцюжок з кількох дій, перед кожною інструкцією ставте знак +. Є одна особливість бета-гілок у CLI: має бути укладено у спеціальні лапки якщо передається всередині app_update.

Приклад для виділеного CS:GO з власним шляхом встановлення: з анонімним входом

steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 +quit

Щоб встановити мод HL1, такий як Condition Zero, не забудьте спочатку закріпити мод: використовувати app_set_config 90 mod czero

steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit

Якщо гра вимагає входу, введіть ім'я користувача та пароль у такому порядку: приклад з Killing Floor

steamcmd +login <usuario> <contraseña> +force_install_dir c:\KFServer\ +app_update 215350 +quit

У бета-гілках у CLI спробуйте такі формати, як: +оновлення_додатку «90-бета-версія бета-версії» або «+оновлення_додатку 90 -бета бета» якщо перший не спрацює.

  Найкраща броня Zelda Tears of the Kingdom: повний посібник

Зі сценарієм

Помістіть ваші команди SteamCMD у текстовий файл та запустіть їх за допомогою +runscript. Ви можете додавати коментарі за допомогою // у самому скрипті.

steamcmd +runscript csgo_ds.txt

Міжплатформне завантаження

SteamCMD дозволяє примусово вибрати цільову платформу за допомогою змінної @sSteamCmdForcePlatformType. Підтримувані значення включають Windows, macOS та Linux. Так, змінна починається з двох літер s: @sSteamCmd…

# Ejemplo: descargar el servidor dedicado de CS:GO para Windows desde Linux
./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit

Програмне забезпечення та утиліти для Windows

Існують інструменти, які діють як міст або інтерфейс через SteamCMD. Деякі з найбільш використовуваних у Windows є:

  • конденсатор: завантажувач для встановлення, налаштування та запуску виділених серверів Steam.
  • Графічний інтерфейс SteamCMDГрафічний інтерфейс для використання SteamCMD без bat або команд. Репозиторій: https://github.com/DioJoestar/SteamCMD-GUI
  • SteamCMD Guardian 1.2утиліти та скрипти; завантажити за посиланням: http://pastebin.com/BRUbsGQh

Корисні скрипти для Linux

Якщо ви працюєте в Linux, існують проекти, які автоматизують управління серверами. Основні функції менеджерів ігрових серверів Linux (LGSM), набір скриптів командного рядка для швидкого розгортання та керування серверами.

Серед його функцій: Інсталятор SteamCMD, запуск/зупинка/перезапуск, оновлення, моніторинг за допомогою сповіщень електронною поштою, резервних копій та консолі сервера.

LGSM підтримує широкий спектр ігор, таких як ARMA 3, Blade Symphony, Counter-Strike (різні видання), Day of Defeat, Fistful of Frags, Garry's Mod, Half-Life DM Classic, HL2 DM, Insurgency, Just Cause 2, Killing Floor, Left 4 Dead (1 та 2), No More Room in Hell, Natural Selection 2, Red Orchestra: Ostfront 41-45, Team Fortress (різні видання) та інші.

Більше інформації та повний список: http://danielgibbs.co.uk/lgsm — репозиторій на GitHub: https://github.com/dgibbs64/linuxgameservers

Також є скрипт під назвою SteamCMD Guardian 1.2, протестовано на Debian Wheezy. Ви можете переглянути та завантажити його за адресою: http://pastebin.com/hcpMpmaZ

Типова інсталяція (сеанс від імені виділеного користувача, наприклад, steam): створити файл та відредагувати його

  1. Створіть файл: nano updateserver.sh
  2. Вставте наданий код.
  3. Відрегулюйте вміст і додайте хоча б одну гру в рядки DL_SV*=.
  4. Зберегти за допомогою Ctrl + O, натисніть Enter і вийти з Ctrl + X.
  5. Надати дозволи на виконання: chmod u+x ./updateserver.sh
  6. Виконати: ./updateserver.sh

Цей скрипт завантажить SteamCMD, якщо він ще не завантажений, оновить його та встановить вибрані сервери (до 4 одночасно). Після перезапуску оновлюються вже встановлені ігри. автоматично.

Типові помилки та способи їх усунення

Як і з будь-яким інструментом, є типові інциденти, які слід враховувати. Це найпоширеніші з них та їх рішення.

ПОМИЛКА! Не вдалося встановити програму «xxxxxx» (без підписки)

Це повідомлення вказує на те, що сервер, який ви намагаєтеся завантажити, вимагає входу в систему або що ви придбали гру. Спробуйте увійти за допомогою облікового запису Steam, і якщо це не спрацює, придбайте гру. Для безпеки створіть окремий обліковий запис для виділених серверів і уникайте використання особистого.

32-розрядні бібліотеки на 64-розрядному Linux

Оскільки SteamCMD 32-бітний, він вимагає еквівалентних бібліотек. Типова помилка: libstdc++.so.6: неможливо відкрити спільний об'єктний файлВстановіть правильні пакети для вашого дистрибутива.

Debian/Ubuntu (y derivadas):
apt-get install lib32gcc1
# Nota: no hace falta ia32-libs; lib32gcc1 basta.
# En Debian 7 "Wheezy" puedes toparte con dependencias no satisfechas para ia32-libs.

Red Hat/Fedora/CentOS:
yum install glibc.i686 libstdc++.i686

Arch Linux (activa multilib primero):
pacman -S lib32-gcc-libs

Помилка входу: Немає з'єднання

У Linux деякі сервери вимагають відповідних правил iptables для роботи входу. Перевірте порти за адресою: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english та додає необхідні правила.

У Windows, якщо ви бачите помилки на кшталт «SteamUpdater: Помилка: Не вдалося завантажити: помилка http 0» або «Steam потрібно бути онлайн для оновлення», це зазвичай можна виправити, увімкнувши автоматичне виявлення в Internet Explorer (Властивості браузера > Підключення > Налаштування локальної мережі). Кроки:

  1. Відкрийте Internet Explorer.
  2. Інструменти → Властивості браузера.
  3. Вкладка «З’єднання».
  4. У розділі «Налаштування локальної мережі (LAN)» натисніть «Налаштування».
  5. Бренд "Автоматичне визначення налаштувань".
  6. Прийняти та застосувати. Якщо проблема не зникає, знизьте рівень безпеки до середнього або нижчого.
  Найкращі трюки та стратегії, щоб виграти в Mahjong

Помилки запуску SteamCMD

У Linux ви можете побачити: [S_API FAIL] Помилка SteamAPI_Init(); не вдалося знайти запущений екземпляр Steam або локальний steamclient.dllРішення: З’єднайте steamclient.so з ~/.steam/sdk32/steamclient.so.

ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so

Деякі скрипти відображають помилку з параметром ulimit під час запуску (немає прав/неможливо відкрити файл), спричинену низьким лімітом дескриптора файлу (-n). Підвищте його до розумного значення:

ulimit -n 2048
# Comprueba con: ulimit -a  (busca: open files (-n) 1024)

Якщо у вас немає дозволів, увійдіть як root, щоб змінити або редагувати це /etc/security/limits.confУ багатьох випадках ви побачите лише попередження, а SteamCMD продовжить працювати.

Завантажується лише двигун HLDS.

Під час спроби завантажити мод HL1 (наприклад, TFC), спочатку нормально відображатися лише файли движка. Продовжуйте запускати app_update кілька разів, поки все не завантажиться. Тут є задокументований спосіб вирішення проблемиhttp://danielgibbs.co.uk/2013/11/hlds-steamcmd-workaround-appid-90/

Інший варіант – видалити маніфест програми та дозволити SteamCMD створити його заново. Спочатку ви побачите помилку, але зазвичай вона вирішується. Зверніть увагу, що іноді також встановлюється CS. навіть якщо ти про це не просиш.

Тематичне дослідження: Виділений сервер Palworld на Windows

На комп'ютері з Windows ви можете досить просто розгорнути сервер Palworld за допомогою SteamCMD. Це працює шляхом анонімного входу та використання відповідного ідентифікатора програми.

Базова інсталяція: запустіть SteamCMD.exe (залиште каталог за замовчуванням для спрощення; він встановить власні програми SteamCMD) та вставте цю команду: завантажить та перевірить PalServer

login anonymous +app_update 2394010 validate +quit

Файли будуть зберігатися за адресою: …/SteamCMD/steamapps/common/PalServerОсь у вас є PalServer.exe; ви можете запустити його як є, але без налаштування ви не зможете приєднатися. Завантажте його один раз, щоб згенерувати конфігурацію і закрийте його.

Перейдіть до Pal > Збережено > Конфігурація > WindowsServer та відкрийте файл PalWorldSettings.ini. Якщо його немає, створіть його після одноразового запуску сервера. Вставте наступний рядок в один рядок (без розривів або зайвих пробілів) та замініть позначені значення своїми власними:

[/Script/Pal.PalGameWorldSettings]OptionSettings=(Difficulty=None,DayTimeSpeedRate=1.000000,NightTimeSpeedRate=1.000000,ExpRate=1.000000,PalCaptureRate=1.000000,PalSpawnNumRate=1.000000,PalDamageRateAttack=1.000000,PalDamageRateDefense=1.000000,PlayerDamageRateAttack=1.000000,PlayerDamageRateDefense=1.000000,PlayerStomachDecreaceRate=1.000000,PlayerStaminaDecreaceRate=1.000000,PlayerAutoHPRegeneRate=1.000000,PlayerAutoHpRegeneRateInSleep=1.000000,PalStomachDecreaceRate=1.000000,PalStaminaDecreaceRate=1.000000,PalAutoHPRegeneRate=1.000000,PalAutoHpRegeneRateInSleep=1.000000,BuildObjectDamageRate=1.000000,BuildObjectDeteriorationDamageRate=1.000000,CollectionDropRate=1.000000,CollectionObjectHpRate=1.000000,CollectionObjectRespawnSpeedRate=1.000000,EnemyDropItemRate=1.000000,DeathPenalty=All,bEnablePlayerToPlayerDamage=False,bEnableFriendlyFire=False,bEnableInvaderEnemy=True,bActiveUNKO=False,bEnableAimAssistPad=True,bEnableAimAssistKeyboard=False,DropItemMaxNum=3000,DropItemMaxNum_UNKO=100,BaseCampMaxNum=128,BaseCampWorkerMaxNum=15,DropItemAliveMaxHours=1.000000,bAutoResetGuildNoOnlinePlayers=False,AutoResetGuildTimeNoOnlinePlayers=72.000000,GuildPlayerMaxNum=20,PalEggDefaultHatchingTime=72.000000,WorkSpeedRate=1.000000,bIsMultiplay=False,bIsPvP=False,bCanPickupOtherGuildDeathPenaltyDrop=False,bEnableNonLoginPenalty=True,bEnableFastTravel=True,bIsStartLocationSelectByMap=True,bExistPlayerAfterLogout=False,bEnableDefenseOtherGuildPlayer=False,CoopPlayerMaxNum=4,ServerPlayerMaxNum=32,ServerName="xxxx",ServerDescription="",AdminPassword="",ServerPassword="",PublicPort=8211,PublicIP="xx.xxx.xxx.xxx",RCONEnabled=False,RCONPort=25575,Region="",bUseAuth=True,BanListURL="https://api.palworldgame.com/api/banlist.txt")

Налаштувати: Ім'я_сервера (видиме ім'я), PublicIP (ваш публічний IPv4: перевірте його в Google з "яка моя IP-адреса") та паролі, якщо хочете. Залиште порт 8211, якщо у вас немає причин його змінювати. Відкрити та перенаправити у вашому маршрутизатор порти 8211 та 27015.

Якщо ваш маршрутизатор запитує внутрішній хост, використовуйте свою приватну IP-адресу (ipconfig у КМД, приймає IPv4). Переконайтеся, що ви зберегли INI-файл після зупинки сервера. Запустіть PalServer.exe та підключіться, використовуючи вашу публічну IP-адресу з портом на клієнті: формат xxx.xxx.xxx.xxx:8211.

Ця процедура спрацювала для особи, яка нею поділилась, і має бути дійсною для інших середовищ. Не забудьте перевірити брандмауер системи та маршрутизатора. якщо ви не можете зробити це видимим ззовні.