Serwer gry na VPS przez SteamCMD: porty i systemd
Za pomocą SteamCMD, wersji Steama działającej w wierszu poleceń, postawisz serwer dedykowany gier takich jak Valheim, Palworld czy Satisfactory na VPS z Linuksem. Instalujesz pakiet steamcmd, pobierasz serwer poleceniem +login anonymous +app_update z app ID serwera, otwierasz porty gry w firewallu i zlecasz usłudze systemd jego uruchamianie i aktualizację.
Kiedy samodzielnie uruchamiać serwer gry ze Steama na VPS
Własny VPS ma sens, jeśli chcesz czegoś więcej niż jednego serwera: Valheim i Palworld obok siebie, do tego bot Discord, własne skrypty, mody, które sam aktualizujesz, albo po prostu chcesz się nauczyć, jak to działa. Dostajesz dostęp root i o wszystkim decydujesz sam, także o tym, kiedy robisz aktualizację.
Jeśli chcesz przede wszystkim grać, gotowy serwer gier to mniej pracy: panel zajmuje się instalacją, aktualizacjami i ustawieniami. Jak to wygląda w Valheim, przeczytasz w artykule Serwer dedykowany Valheim: kompletny poradnik, a dla Satisfactory w artykule Satisfactory serwer dedykowany: konfiguracja.
Jaki VPS na serwer gry ze Steama?
Wybierz Linuksa, na przykład Ubuntu 22.04 lub nowsze: większość serwerów ze Steama ma wersję na Linuksa, a zostaje Ci więcej pamięci niż z Windows. Co do procesora, obowiązuje to samo, co przy niemal każdym serwerze gier: symulacja świata opiera się na jednym głównym wątku, więc szybki rdzeń liczy się bardziej niż wiele rdzeni. Dlatego dobrze pasuje tu Premium VPS z Ryzen 9: AMD Ryzen 9 9950X*, DDR5 i NVMe. Dla pamięci stosujemy te minima, z około 1 GB dodatkowo na system operacyjny:
| Gra | Pamięć dla serwera | Premium VPS | Miesięcznie |
|---|---|---|---|
| Valheim (do 4 graczy) | od 4 GB, od 5 graczy 1–2 GB więcej | 4 vCore, 8 GB | 66,10 zł |
| Palworld | 12–16 GB | 6 vCore, 16 lub 20 GB | 120,96 zł / 145,15 zł |
| Rust | od 12 GB | 6 vCore, 16 GB | 120,96 zł |
Mały serwer Valheim dla stałej ekipy może też działać na KVM VPS z EPYC: 4 vCore i 8 GB kosztują tam 41,04 zł miesięcznie. EPYC 7443P osiąga do 4,0 GHz, czyli mniej na rdzeń niż Ryzen; odczujesz to głównie wtedy, gdy rośnie świat i liczba graczy. Jeśli uruchamiasz więcej niż jedną grę, zsumuj pamięć; jak się do tego zabrać, opisujemy w artykule Kilka serwerów gier na jednym VPS. Ile pamięci naprawdę potrzebuje Palworld, przeczytasz w artykule Ile RAM potrzebuje serwer Palworld?
* lub AMD Ryzen 9 7950X3D, zależnie od węzła.
Instalacja SteamCMD na Ubuntu
SteamCMD jest w repozytorium multiverse Ubuntu i potrzebuje bibliotek 32-bitowych. Zaloguj się przez SSH i wykonaj:
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmdPodczas instalacji pakiet poprosi Cię o zaakceptowanie licencji Steama. Program trafi do /usr/games/steamcmd. Następnie utwórz osobnego użytkownika dla swoich serwerów, żeby luka w serwerze gry nie dawała od razu dostępu root:
sudo adduser --disabled-password --gecos "" steam
sudo -iu steamPobieranie serwera przez app_update
Każdy serwer dedykowany ma na Steamie własne app ID. Jako użytkownik steam pobierzesz na przykład Valheim tak:
steamcmd +force_install_dir /home/steam/servers/valheim +login anonymous +app_update 896660 validate +quitZawsze stawiaj +force_install_dir przed +login; w odwrotnej kolejności SteamCMD wyświetli ostrzeżenie. Dzięki +login anonymous pobierzesz większość serwerów dedykowanych bez konta Steam, więc Twoje własne hasło nie musi trafiać na VPS. validate sprawdza wszystkie pliki i przywraca zmienione. Używaj go przy pierwszym pobraniu i wtedy, gdy coś wygląda na uszkodzone, ale nie przy każdej aktualizacji, jeśli sam zmieniałeś pliki w katalogu serwera.

| Gra | App ID serwera | Serwer na Linuksa |
|---|---|---|
| Valheim | 896660 | tak |
| Palworld | 2394010 | tak |
| Satisfactory | 1690800 | tak |
| Project Zomboid | 380870 | tak |
| Rust | 258550 | tak |
| 7 Days to Die | 294420 | tak |
| Enshrouded | 2278520 | nie, tylko Windows |
| ARK: Survival Ascended | 2430930 | nie, tylko Windows |
Uczciwie o serwerach tylko na Windows. Enshrouded i ARK: Survival Ascended nie mają serwera na Linuksa. Wersję na Windows możesz pobrać na Linuksie, dodając +@sSteamCmdForcePlatformType windows przed +login, i uruchomić ją pod Protonem albo Wine, ale nie jest to oficjalnie wspierane i aktualizacja gry może to w każdej chwili zepsuć. Wolisz stabilność? Wybierz Windows Server (w KVM VPS i VDS do wyboru przy zamówieniu, w Premium VPS do zainstalowania przez panel VPS) albo gotowy serwer, jak w artykule Jak założyć serwer Enshrouded 1.0.
Porty i firewall
Otwieraj tylko porty, których używa Twoja gra, i zawsze najpierw SSH, inaczej odetniesz sobie dostęp:
sudo ufw allow OpenSSH
sudo ufw allow 2456:2457/udp # Valheim: port i port+1
sudo ufw allow 8211/udp # Palworld
sudo ufw allow 7777 # Satisfactory, TCP i UDP
sudo ufw allow 8888/tcp # Satisfactory, od wersji 1.1
sudo ufw enableJeśli w opcjach startowych wybierzesz inny port, dostosuj też regułę. Jak zabezpieczyć SSH i resztę VPS, przeczytasz w artykule Jak zabezpieczyć serwer VPS: pierwsze 30 minut.
Automatyczny start i aktualizacje przez systemd
Valheim ma w zestawie skrypt startowy start_server.sh, ale według Iron Gate ten plik jest przywracany przy każdej aktualizacji. Dlatego swoje ustawienia umieść we własnej usłudze, /etc/systemd/system/valheim.service:
[Unit]
Description=Valheim dedicated server
Wants=network-online.target
After=network-online.target
[Service]
User=steam
WorkingDirectory=/home/steam/servers/valheim
Environment=LD_LIBRARY_PATH=/home/steam/servers/valheim/linux64
Environment=SteamAppId=892970
ExecStartPre=/usr/games/steamcmd +force_install_dir /home/steam/servers/valheim +login anonymous +app_update 896660 +quit
ExecStart=/home/steam/servers/valheim/valheim_server.x86_64 -name "Nasz swiat" -port 2456 -world "Dedicated" -password "wybierz-cos-dluzszego" -public 1
KillSignal=SIGINT
TimeoutStartSec=600
TimeoutStopSec=60
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now valheim
journalctl -u valheim -fExecStartPreprzy każdym starcie najpierw pobiera najnowszą wersję. To konieczne, bo po aktualizacji gry gracze często mogą się połączyć dopiero wtedy, gdy serwer działa w tej samej wersji. Aktualizacja to więc po prostusudo systemctl restart valheim;TimeoutStartSec=600daje czas na dużą aktualizację.KillSignal=SIGINTzatrzymuje serwer tak jak Ctrl+C w konsoli: w sposób, który zaleca samo Iron Gate.TimeoutStopSec=60daje mu minutę na porządne zamknięcie.Restart=on-failureuruchamia go ponownie po awarii, aenablesprawia, że sam wystartuje po restarcie VPS.
Hasło musi mieć co najmniej 5 znaków i nie może występować w nazwie serwera, inaczej Valheim nie wystartuje. Dla Palworld budujesz usługę w ten sam sposób, z PalServer.sh z katalogu instalacji jako ExecStart i app ID 2394010; w dokumentacji każdej gry sprawdź, jakie zna opcje startowe. Jeśli chcesz co noc świeżego restartu, dodaj do crontaba roota: 0 5 * * * systemctl restart valheim.
Kopie zapasowe i zapisy: gdzie jest Twój świat?
W Valheim na Linuksie świat nie leży w katalogu serwera, tylko w katalogu domowym użytkownika: /home/steam/.config/unity3d/IronGate/Valheim/worlds_local. Valheim sam też robi automatyczne kopie zapasowe, ale leżą one na tym samym dysku. Dlatego zadbaj o własną kopię, na przykład co noc przez cron jako użytkownik steam (najpierw utwórz ~/backups):
30 4 * * * tar -czf /home/steam/backups/valheim-$(date +\%F).tar.gz -C /home/steam/.config/unity3d/IronGate/Valheim worlds_localW crontabie znak procentu musi mieć przed sobą backslash, stąd \%F. Usuwaj stare archiwa, na przykład poleceniem find /home/steam/backups -mtime +14 -delete, i regularnie kopiuj je na inną maszynę albo własny komputer, na przykład przez SFTP. Kopia zapasowa, która leży tylko na tym samym VPS, to nie jest kopia zapasowa. W innych grach zapisy leżą gdzie indziej; zanim cokolwiek usuniesz albo zainstalujesz od nowa, sprawdź dla każdej gry, który katalog musisz zabrać.
Najczęściej zadawane pytania
Co to jest SteamCMD?
SteamCMD to wersja klienta Steam od Valve działająca w wierszu poleceń. Używasz jej do pobierania i aktualizowania serwerów dedykowanych gier ze Steama, bez środowiska graficznego. Na Ubuntu instalujesz ją jako pakiet steamcmd z repozytorium multiverse.
Czy muszę logować się na własne konto Steam?
W przypadku większości serwerów dedykowanych nie: z +login anonymous pobierzesz bez konta m.in. Valheim, Palworld, Satisfactory i Rust. Dzięki temu na VPS nie musi leżeć hasło do Twojego własnego konta Steam. Jeśli serwer jednak wymaga konta, znajdziesz to w dokumentacji danej gry.
Które serwery gier nie działają na Linuksie?
Enshrouded i ARK: Survival Ascended mają tylko serwer na Windows. Na Linuksie da się je uruchomić pod Protonem albo Wine, ale nie jest to oficjalnie wspierane i może przestać działać po aktualizacji gry. Dla tych gier wybierz Windows Server na swoim VPS albo gotowy serwer gier.
Ile pamięci potrzebuje serwer gry ze Steama?
To zależy od gry. Zakładamy co najmniej 4 GB dla Valheim (od 5 graczy 1 do 2 GB więcej), od 12 do 16 GB dla Palworld i co najmniej 12 GB dla Rust i ARK. Dolicz około 1 GB na system operacyjny, a przy kilku serwerach zsumuj pamięć.