Server Counter-Strike 2 je bezhlavá binárka Source 2, jeden port UDP, velmi velká instalace a jedno přihlašovací oprávnění, které si musíš obstarat sám. Tím oprávněním je Game Server Login Token od Valve, vydaný účtu, který hru vlastní, a je to důvod, proč většina prvních serverů funguje ve všem kromě toho, že je nikdo nenajde. Všechno ostatní je server.cfg, pár souborů, které ho potichu přepisují, a - pokud chceš cokoli, co základní hra neumí - Metamod a CounterStrikeSharp.
Tento návod pokrývá celou cestu: token, instalaci přes SteamCMD, spouštěcí řádek a matici herních režimů, cvary, které stojí za nastavení, porty a RCON, GOTV, mapy z workshopu, pluginy a chyby, na které lidé skutečně narážejí.
Co je server CS2 a co potřebuješ, než začneš#
Dedikovaný server se dodává pod stejným ID aplikace Steamu jako hra, 730. Žádnou samostatnou aplikaci „server“ hledat nemusíš. Provozuje jeden zápas, na jedné mapě, v jednom režimu, a konfiguruje se konzolovými proměnnými, ne jedním souborem s nastavením: to, co vypadá jako konfigurace, je ve skutečnosti zásobník souborů .cfg, které se při načtení mapy spouštějí v pevném pořadí.
Než začneš, potřebuješ čtyři věci.
- Stroj nebo tarif. Jedno rychlé jádro procesoru udělá pro server CS2 víc než čtyři pomalá. Paměť je málokdy limit.
- Game Server Login Token. Popsaný v další části. Pro veřejný server není volitelný.
- Disk, mnohem větší, než čekáš. Instalace serveru CS2 má zhruba 60 GB a SteamCMD si místo rezervuje dopředu, místo aby zaplnil disk a selhal v půlce. Server Source 1 měl dva gigabajty; tohle to není. Počítej s rezervou navíc na aktualizace, dema a pluginy.
- Jeden port UDP, plus druhý, pokud chceš GOTV.
Už teď stojí za to rozhodnout, který ze tří serverů stavíš, protože se rychle rozcházejí. Soukromý trénink 5v5 nepotřebuje téměř žádnou konfiguraci kromě pravidel zápasu a hesla. Komunitní server - deathmatch, retakes, surf, minihry - potřebuje pluginy a pluginy jsou ta část, která se láme s harmonogramem aktualizací Valve. Veřejný soutěžní server, na který se připojují cizí lidé, potřebuje token, moderaci a rotaci map. Vše níže platí pro všechny tři; část o pluginech se týká jen druhého.
Získání Game Server Login Tokenu#
Valve vydává jeden token na server, na účet Steamu, ze stránky Game Server Account Management na steamcommunity.com/dev/managegameservers. Přihlas se účtem, který vlastní CS2, zadej ID aplikace 730 a poznámku, kterou za půl roku poznáš, a dostaneš 32znakový token.
Tři pravidla o tom tokenu, všechna se kdosi naučil po zlém:
- Patří účtu, ne serveru. Pokud token získá ban, ban dopadne na účet Steamu, který ho vytvořil. Proto ti ho žádný hoster nevytváří a proto ho žádný rozumný člověk nesdílí mezi servery.
- Jeden token na server. Provoz dvou serverů na jednom tokenu způsobí, že oba budou odregistrovány z hlavních serverů, obvykle v nejhorší chvíli.
- Nepoužívaný token může být zrušen. Tokeny, které se dlouho nepoužívají, se mažou. Pokud se server, který byl měsíce vypnutý, přestane zobrazovat, podívej se nejdřív na stránku s tokeny.
Token se zadává na spouštěcí řádek jako +sv_setsteamaccount <token>, nebo na kartu Startup či Setup v panelu. Nenastavuj ho zároveň v server.cfg. Dva zdroje téže hodnoty znamenají, že jeden z nich je špatně, a nepoznáš který.
Token je přihlašovací údaj. Pokud ho vložíš do kanálu na Discordu s prosbou o pomoc, zruš ho a vytvoř nový dřív, než si přečteš odpovědi.
Bez tokenu server běží dál a lidé se na něj mohou připojit příkazem connect 203.0.113.10:27015 z konzole. Co nedokáže, je zaregistrovat se na hlavních serverech Valve, což znamená, že se nikdy neobjeví v komunitním prohlížeči a obsah z workshopu se nemusí stáhnout. To je zdaleka nejčastější hlášení „můj server je rozbitý“ a server rozbitý není. Tokeny herních serverů Steamu vysvětleny popisují bany, ID aplikací a co se stane, když je token zrušen uprostřed zápasu.
Instalace serveru přes SteamCMD#
Instalace je jeden příkaz SteamCMD. Na tvém vlastním stroji s Linuxem:
$ steamcmd +force_install_dir /home/cs2/server +login anonymous \ +app_update 730 validate +quitAnonymní přihlášení dnes pro aplikaci 730 funguje. Na začátku života CS2 ne, a proto starší návody říkají přihlásit se účtem, který hru vlastní - to teď můžeš ignorovat. U aktualizací nech v řádku validate: znovu zkontroluje každý soubor, což je pomalé, ale je to jediná spolehlivá oprava napůl provedené aktualizace.
Rozložení souborů, které z toho vyjde, je důležité, protože téměř každá cesta v tomto návodu je vůči němu relativní:
server/ game/ bin/linuxsteamrt64/cs2 the server binary csgo/ the mod folder, still named csgo cfg/ server.cfg and the gamemode configs addons/ Metamod and plugins, if you add them maps/ workshop maps land here gameinfo.gi the search paths Metamod has to be added toAno, složka se pořád jmenuje csgo. Valve to jméno zachovalo i při přechodu na Source 2 a stejně tak každý plugin, který ho očekává. SteamCMD vysvětleno pokrývá ID aplikací, bety a skripty aktualizací, pokud je to tvůj první server pro Steam.
Spouštěcí řádek, herní režimy a první mapa#
$ ./game/bin/linuxsteamrt64/cs2 -dedicated -usercon \ -port 27015 \ +game_type 0 +game_mode 1 \ +sv_setsteamaccount YOUR_TOKEN_HERE \ +exec server.cfg \ +map de_dust2-dedicated spustí server bez grafiky. -usercon zapíná RCON a snadno se zapomene, protože si nikdo nestěžuje, dokud se nepokusíš připojit vzdálenou konzoli. -port nastavuje herní port. +map dej nakonec: cvary režimu se čtou při načtení mapy, takže argument mapy dřív v řádku načte mapu dřív, než je režim nastaven, a dostaneš soutěžní server s pravidly casual.
Režim samotný jsou dvě čísla, převzatá z CS:GO:
| Režim | game_type | game_mode |
|---|---|---|
| Casual | 0 | 0 |
| Competitive | 0 | 1 |
| Wingman (2v2) | 0 | 2 |
| Arms Race | 1 | 0 |
| Deathmatch | 1 | 2 |
| Custom | 3 | 0 |
Ne každá kombinace z CS:GO přechod přežila a Valve od té doby režimy přesouvalo. Server během načítání mapy vypíše režim, který zvolil, takže při prvním startu čti konzoli a nevěř tabulce - včetně této. Custom (3 0) je ten, který použij, když pravidla vlastní plugin a chceš, aby hra přestala uplatňovat ta svoje.
U hostingu s panelem ten řádek nepíšeš vůbec. Stejné argumenty jsou pole na kartě Startup, token jde na kartu Setup a cesta k binárce je už správná. To je většina hodnoty panelu pro tuto hru: instalace má 60 GB souborů Valve a nic z toho není zajímavé.
server.cfg a konfigurace, které ho přepisují#
game/csgo/cfg/server.cfg se spouští při každém načtení mapy. Stejně tak konfigurace herních režimů - gamemode_competitive.cfg, gamemode_casual.cfg a další - a ty běží po server.cfg. Tohle chytí každého jednou: nastavíš mp_maxrounds v server.cfg, mapa se změní a konfigurace režimu to resetuje.
Řešením je doprovodný soubor. Ke každému gamemode_<mode>.cfg existuje gamemode_<mode>_server.cfg, který Valve dodává prázdný přesně pro tento účel a spouští ho jako poslední. Pravidla specifická pro režim patří tam; vše ostatní do server.cfg.
hostname "Longship 5v5 - EU"rcon_password "a-long-random-string"sv_password ""sv_cheats 0sv_hibernate_when_empty 1sv_allow_votes 1bot_quota 0mp_autokick 0mp_autoteambalance 1mp_limitteams 2mp_friendlyfire 1sv_deadtalk 0mp_maxrounds 24mp_overtime_enable 1mp_overtime_maxrounds 6mp_overtime_startmoney 10000mp_match_can_clinch 1mp_roundtime 1.92mp_roundtime_defuse 1.92mp_freezetime 15mp_startmoney 800mp_maxmoney 16000mp_buytime 20mp_warmuptime 60Pár z nich si zaslouží větu navíc.
| Cvar | Běžná hodnota | Co dělá |
|---|---|---|
mp_maxrounds | 24 | Kola v základní hrací době. 24 je MR12, současný soutěžní formát |
mp_roundtime_defuse | 1.92 | Délka kola v minutách na mapách s bombou. 1.92 je 115 sekund |
mp_overtime_maxrounds | 6 | Prodloužení MR3, opakované, dokud někdo nevyhraje |
mp_match_can_clinch | 1 | Ukončí zápas, když je skóre nedostižné, místo aby se dohrával |
mp_autokick | 0 | Vypnuto. Jinak jsou nečinní hráči nebo hráči, kteří škodí týmu, automaticky odstraněni |
bot_quota | 0 | Boti. Každý stojí skutečné CPU, takže drž nulu, pokud je nechceš |
sv_hibernate_when_empty | 1 | Spánek s téměř nulovým CPU, když není nikdo připojený |
sv_deadtalk | 0 | Zda mrtví hráči slyší živé |
sv_hibernate_when_empty je ten s vedlejším účinkem, který stojí za znalost. Hibernující server nespotřebovává téměř nic, což je na sdíleném tarifu celý smysl, ale také přestane pracovat: plánovaná změna mapy se během spánku neprovede a první hráč, který se připojí, chvíli čeká, než se probudí. Pokud provozuješ rotaci na časovač, hibernaci vypni a smiř se s CPU. Úplný seznam cvarů, včetně těch, které existují jen v CS2, je v příkazech a cvarech serveru CS2.
Porty, RCON a GOTV#
| Port | Protokol | Účel |
|---|---|---|
27015 | UDP | Herní provoz a dotazy Steamu, které používá prohlížeč serverů |
27015 | TCP | RCON, pokud je nastaven -usercon |
27020 | UDP | GOTV, nastavuje se přes tv_port |
Herní port nese hru i dotaz, který čte prohlížeč serverů, a proto díra ve firewallu jen pro UDP stačí k tomu, aby se na server šlo připojit i aby byl nalezitelný, a proto pravidlo jen pro TCP nedá ani jedno. Pokud změníš -port, nic jiného se s ním nepohne; GOTV si drží vlastní číslo. Porty herních serverů vysvětleny popisují, co dotazový port dělá a jak ho otestovat zvenčí.
RCON je prosté spojení TCP na herním portu, ověřované heslem posílaným nešifrovaně. Nemá žádné omezování počtu pokusů, které by za to stálo. Dej mu dlouhé náhodné heslo, nikdy ne to, které používáš jinde, a pokud máš tu možnost, raději spouštěj příkazy z konzole panelu, která mluví přímo s procesem a ne přes síť. Bezpečné používání RCON je krátké a ty dvě minuty stojí za to.
GOTV je přenos pro diváky a nahrávač dem v jednom:
tv_enable 1tv_port 27020tv_delay 105tv_autorecord 1tv_delaymapchange 1tv_maxclients 10tv_delay v sekundách je to, co brání divákům v hlášení pozic; 105 je soutěžní konvence. tv_autorecord 1 zapisuje .dem do game/csgo/ pro každý zápas, což je nejlevnější anti-cheat opatření dostupné komunitnímu serveru a jediný způsob, jak rozsoudit spor o 14. kolo. Dema jsou malá, ale hromadí se, takže složku pravidelně čisti podle plánu.
Dimenzování: co skutečně stojí CPU a paměť#
Začni tím, za co můžeš přestat platit. CS2 nemá tick rate, který by šel koupit. Spor 64 proti 128 patřil CS:GO. CS2 opatřuje vstup hráče časovými značkami mezi ticky - systém sub-tick - takže argument -tickrate se nedodržuje a hoster, který inzeruje „server CS2 se 128 tick“, prodává číslo, které engine ignoruje. Pokud chceš delší verzi toho, proč tick rate nikdy nebyl celý příběh, najdeš ji v co tick rate doopravdy znamená.
Co CPU stojí, zhruba podle pořadí:
- Boti. Hledání cest je drahé a plná sestava botů může stát víc než lidští hráči, které nahrazuje.
- Časovače pluginů. Plugin CounterStrikeSharp, který pracuje v každém snímku serveru místo každou sekundu, je obvyklou příčinou serveru, který je v pořádku se čtyřmi hráči a špatný se šestnácti.
- Počet hráčů v režimech s neustálým respawnem. Deathmatch a retakes jsou na hráče náročnější než soutěžní hra.
- GOTV, mírně, plus šířka pásma na každého diváka.
| Server | RAM | CPU | Poznámky |
|---|---|---|---|
| 10 slotů, soutěžní nebo trénink | 1 GB | 1 rychlé jádro | Běžný případ a opravdu je to takhle malé |
| 12-16 casual | 2 GB | 1,5 jádra | Víc entit, víc respawnů |
| 20-24 deathmatch nebo retakes | 2-3 GB | 2 jádra | Cenou je neustálý respawn |
| Komunitní server s pluginy | 3-4 GB | 2-3 jádra | Závisí zcela na pluginech |
Paměť je u CS2 téměř nikdy limit; limitem je taktovací frekvence jednoho jádra. Než koupíš víc kteréhokoli z nich, zjisti, který je skutečně vytížený na maximum - CPU vs RAM pro herní servery vysvětluje, jak to vyčíst z grafu zátěže, ne z pocitu.
Na RE:NODE začínají tarify CS2 na 1 GB a jdou do 6 GB, od 7 $ měsíčně, se dvěma přidělenými porty, aby měl GOTV vlastní číslo, a s heslem RCON generovaným pro každý server, ne ponechaným prázdným. Instalaci a její aktualizace za tebe zajišťujeme; ty dodáš token na kartě Setup a instalace tam na něj čeká.
Mapy z workshopu a pluginy#
Mapy z workshopu se načítají podle ID, ne podle souboru:
host_workshop_map 3070394480Tím se mapa stáhne, pokud chybí, udržuje se aktuální a načte se. host_workshop_collection <id> dělá totéž pro kolekci a ds_workshop_changelevel <mapname> přepíná mezi mapami, které v ní už jsou. Stahování z workshopu jde přes účet Steamu za tvým tokenem, takže server bez platného tokenu se často projeví jako „mapa z workshopu se nestáhne“, ne jako problém s tokenem.
Pluginy jsou dvouvrstvý zásobník a ani jedna vrstva není SourceMod. SourceMod CS2 nepodporuje a nic nenaznačuje, že by podporoval.
- Metamod:Source je zavaděč. Rozbalí se do
game/csgo/addons/metamoda pak - to je ten krok - je třeba upravitgame/csgo/gameinfo.gia přidatcsgo/addons/metamoddo jeho cest hledání. Dokud to neuděláš, nenačte se nic. - CounterStrikeSharp je běhové prostředí pro pluginy, vůči kterému je napsáno téměř všechno. Pluginy jsou sestavení .NET v
addons/counterstrikesharp/plugins, každý ve vlastní složce.
Nad tím sedí to, co jsi skutečně chtěl: MatchZy pro zápasy 5v5 s nožovými koly, pauzami, zálohami po kolech a automatickým nahráváním dem; pluginy pro retakes a deathmatch; menu pro adminy. Metamod a CounterStrikeSharp na CS2 provede instalací a konfigurace soutěžního zápasového serveru pokrývá nastavení scrimů a tréninku od začátku do konce.
Řešení potíží#
Server se neobjevuje v komunitním prohlížeči. Postupně: je token nastaven a platný, je UDP 27015 otevřený zvenčí a dokončil server načítání mapy. Vyzkoušej connect <ip>:27015 z konzole klienta - pokud to funguje, server je v pořádku a problém je v seznamu.
„Your server needs to be restarted in order to receive the latest update.“ Valve vydalo aktualizaci klienta. Server se musí aktualizovat, aby odpovídal, než se kdokoli může připojit. Spusť znovu řádek SteamCMD s validate.
Server naběhne a během pár sekund skončí. Téměř vždy disk. SteamCMD si rezervuje místo pro aktualizaci a vzdá se a zanechá instalaci, která nemůže naběhnout. Zkontroluj nejdřív volné místo, pak spusť validate.
„Invalid Game Server Login Token“. Token byl znovu vygenerován, zrušen pro nečinnost, nebo ho zároveň používá druhý server. Vytvoř nový a vyměň ho jen na jednom místě.
Všude jsou boti, nebo se týmy pořád míchají. bot_quota 0 a mp_autoteambalance, a zkontroluj, který soubor je nastavuje - obvyklým viníkem je konfigurace režimu, která se spouští po server.cfg.
Warmup nikdy neskončí. mp_warmuptime odpočítává, ale je nastaveno mp_warmup_pausetimer, nebo plugin drží warmup otevřený kvůli startu zápasu, který nikdy nedostal. mp_warmup_end v RCON ho vynutí ukončit.
Pluginy po aktualizaci přestaly fungovat. gameinfo.gi. Viz varování výše.
FAQ#
Potřebuji Game Server Login Token pro soukromý server?
Ne, pokud se všichni připojují přes IP příkazem connect <address>. Token je to, co server registruje u Valve, aby se objevil v prohlížeči a mohl stahovat obsah z workshopu. Soukromý tréninkový server s heslem funguje i bez něj.
Mohu provozovat server CS2 se 128 tick?
Ne, a nikdo jiný také ne. CS2 nahradilo tick rate časovými značkami vstupu sub-tick a argument -tickrate engine ignoruje. Každý hoster, který prodává CS2 se 128 tick, prodává štítek.
Kolik RAM potřebuje server CS2?
Soutěžní server na 10 slotů se pohodlně vejde do 1 GB. Servery s deathmatchem a retakes s 20 a více sloty chtějí 2-3 GB a komunitní server plný pluginů 3-4 GB. Taktovací frekvence CPU limituje server CS2 mnohem dřív než paměť.
Funguje SourceMod na CS2?
Ne. Zásobník pluginů pro CS2 je Metamod:Source plus CounterStrikeSharp a pluginy se pro něj musí napsat nebo portovat. Pluginy SourceMod z CS:GO nefungují.
Proč je instalace serveru tak velká?
Protože dedikovaný server dodává stejnou sadu assetů jako hra, ne okleštěnou verzi. Počítej zhruba s 60 GB a pamatuj, že SteamCMD si místo rezervuje předem, takže disk s menším volným místem instalaci rovnou odmítne, místo aby se zasekl v půlce.
Mohu použít jeden token na dvou serverech?
Ne. Valve vydává jeden token na server a provoz dvou na tomtéž oba odregistruje. Na téže stránce vytvoř druhý token s vlastní poznámkou.




Komentáře
Zcela anonymně: žádný účet, žádný e-mail, žádné cookie. Ukládáme jen jméno, které napíšeš, text a čas - nic dalšího. Počet odkazů je omezený a značkování se nevykresluje.