Виділений сервер CS2 ставиться через SteamCMD (app 730, близько 60 ГБ) і запускається через cs2.sh. Підготуйте свіжий VPS з Ubuntu або ПК з Windows, пів години на встановлення та токен сервера (GSLT), щоб сервер був видимий онлайн. Джерела: посібник Hetzner Community, гайди хостингів і вікі Valve (під час написання була недоступна — звірте).
Покрокове встановлення
Підготуйте машину: Ubuntu 24.04 (або Windows), щонайменше 4 vCPU, 8 ГБ ОЗУ та 80 ГБ диска для 10–32 гравців.
Створіть користувача без root (steam) і встановіть SteamCMD з 32-бітними бібліотеками.
Створіть токен GSLT для AppID 730 на steamcommunity.com/dev/managegameservers (один токен на сервер).
Завантажте сервер командою app_update 730 validate (10–30 хвилин).
Створіть посилання steamclient.so для 64-бітного SDK і запустіть сервер через ./cs2.sh з папки game/.
Покладіть server.cfg у game/csgo/cfg/ (див. інструмент «Генератор server.cfg для CS2»).
Відкрийте 27015 (UDP і TCP), 27005 (UDP) та 27020 (UDP) в ufw, брандмауері провайдера й на роутері.
Підключіться з CS2 через консоль гри: connect IP:27015.
Створіть службу systemd для автозапуску та заплануйте бекапи й оновлення.
Вимоги
- ОС: Ubuntu 24.04 (у посібнику Hetzner) або Windows 10/11 і Windows Server.
- Ресурси: 4 vCPU, 8 ГБ ОЗУ, 80 ГБ диска для 10–32 гравців (рекомендація Hetzner); завантаження важить близько 60 ГБ.
- Облікові записи: акаунт Steam для створення токена GSLT (AppID 730). Без токена сервер обмежений локальною мережею.
- Увага: старий сервер CS:GO використовував app 740; CS2 використовує 730.
Локальне встановлення у Windows
Завантажте SteamCMD з офіційної документації Valve, розпакуйте в C:\steamcmd і встановіть сервер. Точний шлях до cs2.exe у Windows не вдалося підтвердити офіційним джерелом: знайдіть його в папці game\bin після встановлення, запустіть з -dedicated -console і перевірте в грі командою connect 127.0.0.1.
cd C:\steamcmd
steamcmd +force_install_dir C:\cs2-server +login anonymous +app_update 730 validate +quitLinux VPS: користувач і залежності
Команди з посібника Hetzner Community (Ubuntu 24.04). Акаунту steam у продакшені sudo не потрібен: приберіть це право після встановлення.
sudo apt update && sudo apt upgrade -y
sudo adduser steam
sudo usermod -aG sudo steam
su - steam
sudo apt-get install lib32gcc-s1 -y
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update -y
sudo apt install steamcmd -yLinux VPS: завантаження сервера
Посібник Hetzner також радить один раз увійти з окремим акаунтом Steam (steamcmd +login ВАШ_АКАУНТ); анонімне встановлення працює в низці гайдів — перевірте, що підходить вам.
mkdir -p ~/cs2-server && cd ~/cs2-server
steamcmd +login anonymous +force_install_dir ~/cs2-server +app_update 730 validate +quit
# SDK 64 bits (ignorer si le lien existe déjà)
mkdir -p ~/.steam/sdk64
ln -s ~/.local/share/Steam/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.soLinux VPS: перший запуск
Завжди запускайте ./cs2.sh (а не бінарник напряму) з папки game/. Замініть YOUR_GSLT_TOKEN. Режими: casual 0/0, competitive 0/1, deathmatch 1/2 (+game_type/+game_mode). Прапорець -insecure вимикає VAC: лише для приватних серверів. Для тестів використовуйте screen або tmux (screen -S cs2).
cd ~/cs2-server/game
./cs2.sh -dedicated -port 27015 -maxplayers 10 \
+hostname "My CS2 Server" +map de_dust2 \
+game_type 0 +game_mode 1 \
+sv_setsteamaccount YOUR_GSLT_TOKENПорти для відкриття та брандмауер Linux (ufw)
Щоб змінити ігровий порт, додайте -port N до рядка запуску (свій порт на кожен екземпляр) і відкрийте його замість 27015.
Відкривайте лише необхідне й перевіряйте з іншого підключення (не з самого сервера).
- 27015/udp: ігровий трафік
- 27015/tcp: RCON і пінги
- 27005/udp: зв'язок із клієнтом
- 27020/udp: SourceTV (запис демо)
- Інші порти з посібника Hetzner: 27036/tcp (Steam Remote Play), 3478/udp (NAT traversal), 4379-4380/udp (матчмейкінг), 22/tcp (SSH).
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27005/udp
sudo ufw allow 27020/udp
sudo ufw enable
sudo ufw statusБрандмауер Windows (netsh)
У командному рядку адміністратора створіть вхідне правило для кожного порту (або відкрийте «Брандмауер Windows Defender у режимі підвищеної безпеки»).
netsh advfirewall firewall add rule name="Counter-Strike 2 27015 UDP" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Counter-Strike 2 27015 TCP" dir=in action=allow protocol=TCP localport=27015
netsh advfirewall firewall add rule name="Counter-Strike 2 27005 UDP" dir=in action=allow protocol=UDP localport=27005
netsh advfirewall firewall add rule name="Counter-Strike 2 27020 UDP" dir=in action=allow protocol=UDP localport=27020Брандмауер провайдера та проброс портів (роутер)
У хостера (OVH, Hetzner, Scaleway…) відкрийте ті самі порти й у брандмауері або «security group» провайдера: ufw недостатньо, якщо є зовнішній брандмауер. Вдома налаштуйте на роутері проброс (NAT) кожного порту на локальну IP-адресу машини (статичну або зарезервовану через DHCP).
Перевірка: з іншого підключення додайте сервер як «IP:порт» у браузері серверів Counter-Strike 2 або в консолі. Якщо не виходить, перевірте по черзі: чи запущено службу, локальний брандмауер, брандмауер провайдера, NAT.
Автозапуск: служба systemd
Створіть /etc/systemd/system/cs2.service (від root) і ввімкніть його. Підставте свого користувача та шляхи; логи — journalctl -u cs2 -f.
[Unit]
Description=Counter-Strike 2 dedicated server
After=network-online.target
Wants=network-online.target
[Service]
User=steam
WorkingDirectory=/home/steam/cs2-server/game
ExecStart=/home/steam/cs2-server/game/cs2.sh -dedicated -port 27015 -maxplayers 10 +game_type 0 +game_mode 1 +map de_dust2 +sv_setsteamaccount YOUR_GSLT_TOKEN
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
# then:
# sudo systemctl daemon-reload
# sudo systemctl enable --now cs2Windows: завдання планувальника під час запуску
У Windows завдання планувальника запускає ваш .bat під час старту системи (виконайте команду в командному рядку адміністратора).
schtasks /Create /TN "Counter-Strike 2 server" /TR "C:\cs2-server\start-cs2.bat" /SC ONSTART /RU SYSTEM /RL HIGHESTОновлення, резервні копії та планові перезапуски
Зупиняйте службу перед оновленням (та сама команда SteamCMD, що й під час встановлення), регулярно робіть бекап конфігурації та даних і плануйте щоденний перезапуск, якщо сервер із часом деградує.
sudo systemctl stop cs2
steamcmd +force_install_dir /home/steam/cs2-server +login anonymous +app_update 730 validate +quit
sudo systemctl start cs2
# backup
tar czf ~/cs2-$(date +%F).tar.gz -C /home/steam/cs2-server game/csgo/cfg game/csgo/gamemodes_server.txt
# daily restart at 05:00 (root crontab: sudo crontab -e)
0 5 * * * systemctl restart cs2Додавання та пошук сервера
Додайте сервер на https://game-rank.com/jeux/counter-strike, щоб його побачила спільнота. У грі шукайте його в браузері серверів або підключайтеся напряму за IP:порт.
Усунення несправностей: часті помилки
- Сервер стартує в режимі LAN або невидимий: токен GSLT відсутній, недійсний або використаний на іншому сервері. Рішення: створіть окремий токен для AppID 730 і передайте його через +sv_setsteamaccount.
- Сервер падає або не знаходить steamclient.so: немає посилання 64-бітного SDK. Рішення: створіть ~/.steam/sdk64/steamclient.so за інструкцією й запускайте ./cs2.sh з game/.
- Сервер не видно ззовні: служба працює, але ніхто не може підключитися. Причина: закритий порт (ufw, брандмауер провайдера або немає NAT). Рішення: відкрийте перелічені порти на всіх трьох рівнях і перевірте з іншого підключення.
- Порт зайнятий під час запуску: порт утримує інший екземпляр. Рішення: перегляньте процеси командою ss -lunp | grep 27015, зупиніть старий екземпляр або задайте кожному серверу свій порт через -port.
- SteamCMD «Failed to install app» або завантаження зависло: часта причина — заповнений диск або брак прав на теку. Рішення: перевірте df -h і власника теки, потім повторіть команду з validate (за потреби кілька разів).
Поширені запитання
- Чи використовує CS2 досі команди та файли CS:GO?
- Частково: папка конфігів залишилась game/csgo/cfg/ і більшість cvar mp_* існує, але сервер — інший застосунок (730), і частина речей (плагіни SourceMod, API Workshop із CS:GO) напряму не переноситься. У разі сумнівів перевіряйте на своїй збірці.
- Скільки гравців і яка машина потрібні для сервера CS2?
- Посібник Hetzner розрахований на 10–32 гравці при 4 vCPU, 8 ГБ ОЗУ та 80 ГБ диска; обмежити слоти можна параметром -maxplayers у рядку запуску.
- Чи можна запускати сервер від root?
- Не рекомендується: створіть окремого користувача (наприклад, steam) без прав адміністратора й встановлюйте та запускайте сервер від нього. Тоді вразливість сервера чи плагіна не скомпрометує всю машину.
- Мій сервер Counter-Strike 2 не відображається в списку: що перевірити?
- Спочатку перевірте, що порти відкриті на всіх рівнях, сервер не в режимі LAN (sv_lan 0) і, якщо гра вимагає, вказано дійсний токен сервера (GSLT). Список Steam може оновлюватися кілька хвилин; поки підключайтеся за IP:порт.
