Server Valheim na Linuxovém VPS potřebuje stroj s architekturou x86-64, dva vCPU, 4 GB paměti pro skupinu do šesti hráčů (6-8 GB pro deset nebo pro mody), 20 GB nebo víc SSD, Ubuntu LTS nebo Debian a umístění blízko hráčů. Nainstaluj server přes SteamCMD pod neprivilegovaným uživatelem, otevři UDP 2456 a 2457 jak ve vlastním firewallu VPS (sudo ufw allow 2456:2457/udp), tak v síťovém firewallu poskytovatele, pokud nějaký má, a spouštěj server jako službu systemd, ne v tmuxu, aby přežil rebooty a při zastavení se uložil. Pak udržuj dvě věci aktuální v různých rytmech: operační systém automaticky a hru záměrně. To je celá práce; zbytek článku je zdůvodnění, přesné příkazy a problémy, které VPS přidává oproti domácímu PC nebo herním hostingu.
Je VPS správný domov pro server Valheim?#
VPS ti za měsíční cenu dává celý Linuxový stroj: přístup root, veřejnou IP a žádná cizí pravidla. Pro Valheim to znamená libovolný mod, libovolný startovací argument, libovolné schéma záloh, víc světů na jednom stroji a vedle serveru i další věci - Discord bota, malý web, prohlížeč mapy.
Dělá z tebe ale také správce. Nikdo jiný neaktualizuje jádro, nevšimne si plnícího se disku, nerotuje logy ani neobnoví svět, když se poškodí. Pokud ti to zní jako koníček, VPS je výhodná. Pokud jako povinnost, spravovaný herní server dělá stejnou práci s panelem navrch a cenový rozdíl je menší, než lidé čekají. VPS vs VDS vs dedikovaný server vysvětluje rozdíly v tom, co si vlastně pronajímáš.
Dvě věci vylouč, než za cokoli zaplatíš:
- Instance ARM. Dedicated server Valheimu je sestavený jen pro Linux x86-64. Levné ARM tarify, které někteří poskytovatelé nabízejí, ho nativně nespustí a na emulačních vrstvách nechceš stavět svět pro celou skupinu. Zkontroluj architekturu CPU v detailech tarifu.
- Burstable nebo silně sdílené CPU. Tarify, které ti dají zlomek jádra s „burst kredity“, pár minut běží dobře a pak začnou škrtit. Simulace Valheimu je stálá zátěž, ne nárazy, takže kredity vyčerpá a pak se začne sekat.
Dimenzování VPS#
Server Valheimu stojí na jednom hlavním vlákně, takže rychlé jádro je důležitější než mnoho pomalých, ale druhý vCPU se vyplatí - ukládání, síť a aktualizace SteamCMD běží mimo hlavní vlákno a operační systém potřebuje kde běžet. Paměť roste s prozkoumaným světem a s počtem stavebních dílů; zmapovaný svět se čtyřmi velkými základnami potřebuje mnohem víc než čerstvý seed.
Čísla níže jsou za celé VPS, takže zahrnují operační systém, SSH, firewall i špičku paměti při aktualizaci SteamCMD - zhruba 0,5-1 GB navíc k samotné hře.
| Skupina | vCPU | Paměť VPS | Disk |
|---|---|---|---|
| 1-3 hráči, nový svět | 2 | 4 GB | 20 GB |
| 4-6 hráčů, několik základen | 2 | 4-6 GB | 25 GB |
| 7-10 hráčů, zmapovaný svět | 2-4 | 6-8 GB | 30 GB |
| S mody, 10+ modů BepInEx | 4 | 8 GB | 30-40 GB |
Spotřeba disku je skromná: asi 2 GB na server, soubor světa, který obvykle naroste na 20 až 150 MB, a zálohy. Místo navíc v tabulce je pro OS, cache SteamCMD a rozumný počet archivovaných záloh přímo na stroji. Preferuj NVMe nebo SSD; zamrznutí při ukládání světa je zápis na disk.
Umístění záleží víc než jakákoli specifikace. Vyber region s nejnižší latencí k většině skupiny; pro evropskou skupinu porazí německé nebo nizozemské datacentrum rychlejší stroj ve Spojených státech vždycky. Valheim spotřebuje málo přenosové kapacity - desítky až nízké stovky KB/s na hráče - takže rychlost portu v tarifu je nepodstatná. Podrobnosti o tom, jak paměť během života světa roste, jsou v článku kolik RAM potřebuje server Valheim.
Na sdílené virtualizaci zkontroluj CPU steal, jakmile server běží s hráči:
$ vmstat 1 10# the last column, st, is time the hypervisor gave your vCPU to someone elseHodnota steal, která se drží nad pár procenty, zatímco si hráči stěžují na lagy, znamená, že hostitel je přeprodaný a žádné nastavení uvnitř VPS to neopraví. Pomůže tarif s vyhrazenými jádry nebo jiný poskytovatel.
První kroky na čerstvém VPS#
Než uděláš cokoli kolem Valheimu, zabezpeč stroj, aby šel nechat na internetu. Na Ubuntu nebo Debianu, jako root nebo uživatel sudo:
$ sudo apt update && sudo apt full-upgrade -y$ sudo adduser admin && sudo usermod -aG sudo admin# copy your SSH public key to the new user, log in with it, then:$ sudoedit /etc/ssh/sshd_config.d/50-hardening.confPasswordAuthentication noPermitRootLogin no$ sudo sshd -t && sudo systemctl reload sshAktuální relaci nech otevřenou a novému přihlášení vyzkoušej, než ji zavřeš; překlep v konfiguraci SSH tě zamkne venku a na VPS to znamená záchrannou konzoli poskytovatele. Služba SSH se na Ubuntu a Debianu jmenuje ssh, na většině jiných distribucí sshd. Klíče SSH a zabezpečení pokrývají klíče, fail2ban a zbytek.
Pokud má tarif 4 GB nebo míň, přidej malý swapfile. Server nezrychlí - herní server, který swapuje, je herní server, který se sekne - ale dá jádru místo pro nečinnou paměť během aktualizace SteamCMD, místo aby server zabilo:
$ sudo fallocate -l 2G /swapfile$ sudo chmod 600 /swapfile$ sudo mkswap /swapfile && sudo swapon /swapfile$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabSwap v Linuxu a OOM killer vysvětluje, co se stane, když paměť opravdu dojde, a proč svět ztratí všechno, co nebylo uloženo.
Pak nainstaluj samotný server: SteamCMD, vyhrazeného uživatele valheim, app 896660 s anonymním přihlášením a vlastní kopii startovacího skriptu. To je patnáctiminutová práce, popsaná krok za krokem v článku instalace serveru Valheim na Linuxu přes SteamCMD, takže se tady neopakuje.
Otevření portů: ufw#
Valheim potřebuje dva porty UDP: herní port, ve výchozím stavu 2456, a port nad ním, 2457, který odpovídá na dotazy Steamu. Oba jsou UDP. Pravidlo pro TCP nedělá nic.
Na Ubuntu je ufw nejjednodušší nadstavba firewallu. Nejdřív povol SSH, jinak zapnutí firewallu přeruší tvé vlastní spojení:
$ sudo ufw allow OpenSSH$ sudo ufw allow 2456:2457/udp comment 'Valheim'$ sudo ufw default deny incoming$ sudo ufw default allow outgoing$ sudo ufw enable$ sudo ufw status verboseOpenSSH je aplikační profil, který ufw dodává na Ubuntu; na minimální instalaci Debianu, kde chybí, použij místo toho sudo ufw allow 22/tcp nebo port, na který jsi SSH přesunul. Pokud spouštíš druhý svět s -port 2458, přidej i 2458:2459/udp. Každý server používá svůj herní port a ten nad ním, takže servery musí být od sebe aspoň o dva porty. Porty Valheimu 2456-2458 vysvětleně popisují, proč starší návody otevírají 2458 i pro jediný server.
Obecné vzory - výchozí zákaz, omezení SSH, logování - jsou v průvodci firewallem ufw.
Otevření portů: iptables a nftables#
Pokud ufw nepoužíváš nebo ho distribuce neobsahuje, napiš pravidla přímo. S iptables:
$ sudo iptables -A INPUT -i lo -j ACCEPT$ sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT$ sudo iptables -A INPUT -p udp --dport 2456:2457 -j ACCEPT$ sudo iptables -P INPUT DROPPořadí je důležité: pravidla pro SSH a navázaná spojení musí být na místě, než se výchozí politika změní na DROP. Takto nastavená pravidla po rebootu zmizí. Na Debianu a Ubuntu nainstaluj iptables-persistent a ulož je:
$ sudo apt install iptables-persistent$ sudo netfilter-persistent saveNa současném Debianu a Ubuntu je příkaz iptables obvykle kompatibilní vrstva nad nftables. Pokud raději píšeš nftables přímo, ekvivalentní pravidlo uvnitř vstupního řetězce tabulky filtru inet je:
udp dport 2456-2457 acceptAť použiješ jakýkoli nástroj, použij jen jeden. Spuštění ufw spolu s ručně psanými pravidly iptables vytvoří sadu pravidel, o které nikdo nedokáže uvažovat. Pravidla firewallu, na kterých záleží pokrývají širší souvislosti.
Ověření, že server poslouchá:
$ sudo ss -ulpn | grep valheimMěl bys vidět sockety UDP na 2456 a 2457. Testovat UDP zvenku je méně úhledné než TCP - většina kontrol portů umí jen TCP a zavřený port UDP často vypadá stejně jako otevřený, který neodpověděl. Poctivý test je hráč, který se připojí přes IP, a pak kontrola, že se server objeví v seznamu komunity.
tmux nebo screen versus služba#
Většina rychlých návodů spouští server v tmux nebo screen, aby běžel i po odhlášení:
$ tmux new -s valheim$ ./start_valheim.sh# detach: Ctrl+b then d; come back with: tmux attach -t valheim$ screen -S valheim$ ./start_valheim.sh# detach: Ctrl+a then d; come back with: screen -r valheimNa večer testování to stačí. Na server, který necháš běžet, ne, kvůli tomu, co nedělá:
| tmux / screen | Služba systemd | |
|---|---|---|
| Přežije odhlášení | Ano | Ano |
| Startuje při bootu | Ne | Ano |
| Restart po pádu | Ne | Ano, s limitem |
| Čisté uložení při vypnutí | Jen když ho ručně zastavíš předem | Ano, s KillSignal=SIGINT |
| Prohledávatelný log | Jen scrollback | journalctl |
| Připojitelná konzole | Ano | Ne |
Řádek, který ztrácí světy, je čtvrtý. Když se VPS restartuje kvůli aktualizaci jádra, relace tmux se zabije se vším ostatním a svět ztratí všechno od posledního časovaného uložení - při výchozím -saveinterval až třicet minut. Unit systemd zastaví server signálem SIGINT, Valheim se uloží a teprve potom se stroj vypne.
Připojitelná konzole, jediná věc, kterou tmux nabízí a systemd ne, má pro Valheim skoro nulovou cenu: dedicated server nečte žádné příkazy ze standardního vstupu. Admin příkazy se píšou v konzoli F5 herního klienta. Valheim jako služba systemd staví unit, pravidla restartu a timery. Pokud chceš tmux plus nástroje pro správu, vhserver z LinuxGSM obalí server relací tmux a vlastními příkazy pro aktualizace, zálohy a monitoring.
Udržování aktuálnosti: OS a hra#
Na VPS s Valheimem existují dva druhy aktualizací a chtějí opačné zacházení.
Operační systém by se měl aktualizovat sám. Ubuntu zapíná unattended-upgrades pro bezpečnostní aktualizace ve výchozím stavu; na Debianu ho nainstaluj a spusť sudo dpkg-reconfigure -plow unattended-upgrades. Aktualizace jádra se projeví až po rebootu a unattended-upgrades nerestartuje, pokud mu to neřekneš. Nech ho restartovat v klidné hodině:
Unattended-Upgrade::Automatic-Reboot "true";Unattended-Upgrade::Automatic-Reboot-Time "05:00";Bezpečné je to jen proto, že server běží jako služba systemd s čistým zastavením. Se serverem v tmuxu je automatický reboot automatickou ztrátou postupu. Pokud raději restartuješ ručně, zkontroluj zhruba jednou týdně /var/run/reboot-required.
Hra by se měla aktualizovat, když se rozhodneš ty. Když Valheim vydá záplatu, klienti hráčů se aktualizují přes Steam a server musí odpovídat přesně, jinak všichni uvidí Incompatible version. Aktualizace je jeden řádek SteamCMD, spuštěný pod uživatelem valheim při zastaveném serveru:
$ sudo systemctl stop valheim$ sudo -u valheim /usr/games/steamcmd +force_install_dir /home/valheim/server \ +login anonymous +app_update 896660 validate +quit$ sudo systemctl start valheimNa vanilla serveru to můžeš zautomatizovat tím, že unit spustí aktualizaci před každým startem, takže restart záplatu zachytí. Na serveru s mody ne: záplaty rozbíjejí mody pro BepInEx, dokud je autoři nesestaví znovu, a aktualizace, kterou jsi nezvolil, zanechá server, který se nespustí. validate také obnoví start_server.sh na dodanou verzi, a proto server spouštíš z vlastní kopie. Načasování pro skupiny a problém rozjíždějících se verzí jsou v článku aktualizace serveru Valheim a oprava neshody verzí.
Zálohy a každodenní kontroly#
VPS ti dává jeden disk a vestavěné kopie Valheimu -backups leží na něm vedle světa. Chrání před špatným uložením, ne před smazaným adresářem, plným diskem nebo incidentem u poskytovatele. Adresář savů archivuj podle plánu, pokud možno po čistém restartu, a archiv kopíruj mimo stroj - do objektového úložiště nebo na jiný počítač. Zálohy serveru Valheim a poškození světa pokrývají obnovu a zálohy herního serveru na S3 ukazují, jak archivy poslat jinam. Snapshoty poskytovatele jsou užitečný doplněk, ale snapshot pořízený uprostřed ukládání je snapshot napůl zapsaného světa.
Krátká rutina zachytí většinu potíží dřív než hráči:
$ systemctl status valheim$ journalctl -u valheim --since today -g "Exception|Error"$ free -h$ df -h /$ uptimeSleduj tři trendy v průběhu týdnů: paměť plížící se k limitu (týdenní restart ji obvykle udrží rovnou), disk plnící se zálohami nebo logy a průměrné zatížení nad počtem vCPU, zatímco lidé hrají. První dvě se spravují levně. Třetí znamená větší tarif nebo svět, který přerostl své terénní úpravy. Pokud tyhle nástroje neznáš, dobrým začátkem jsou příkazy Linuxu pro správce serverů.
Na RE:NODE#
Pokud chceš celý stroj, linie VDS od RE:NODE je Intel i9-9900K v Německu, od 8 GB paměti a 2 vCPU, nastavený ručně do 24 hodin; platí pro něj všechno v tomto článku. Pokud chceš jen server Valheim, herní tarify začínají na 2 GB, dorazí zhruba do minuty od platby se zapnutým crossplayem a už přidělenými oběma porty UDP a práci s firewallem, službou a aktualizacemi nahradí panel: čisté Stop a Restart, záložka Schedules pro restarty a zálohy a sloty záloh uložené mimo stroj.
FAQ#
Jaké je nejmenší VPS, které Valheim utáhne?
Dva vCPU a 4 GB paměti, na x86-64, pro malou skupinu na čerstvém světě. Hra sama v takové velikosti běží zhruba v 2 GB; zbytek je prostor pro operační systém a aktualizace SteamCMD. VPS s 2 GB ho spustí, ale bez jakékoli rezervy.
Proč se nikdo nemůže připojit, i když ufw porty povoluje?
Zkontroluj síťový firewall poskytovatele v jeho webové konzoli - stojí před VPS a blokuje provoz dřív, než ho ufw uvidí. Pak ověř, že pravidla jsou pro UDP, ne TCP, a že ss -ulpn ukazuje server poslouchající na obou portech.
Můžu spustit Valheim na VPS s ARM?
Nativně ne. Dedicated server je sestavený jen pro x86-64. Emulační vrstvy existují, ale stojí výkon a s aktualizacemi se rozbíjejí, takže nejsou rozumným základem sdíleného světa. Vyber tarif s x86-64.
Stačí tmux, když budu opatrný?
Funguje, dokud se VPS nerestartuje bez varování - okno údržby poskytovatele nebo aktualizace jádra - a svět neztratí všechno od posledního uložení. Unit systemd stojí deset řádků a toto riziko odstraní, a nic užitečného neztratíš, protože Valheim nemá konzoli na stdin.
Jak často mám server aktualizovat?
Kdykoli Valheim vydá záplatu, protože klienti a server musí odpovídat. Vanilla servery se mohou aktualizovat při každém startu. Servery s mody by se měly aktualizovat až ve chvíli, kdy jejich mody novou verzi podporují, takže to před spuštěním SteamCMD zkontroluj.


