RE:NODE

BeamMP server se nezobrazuje nebo se hráči nepřipojí: řešení

Text: Tým RE:NODE
15 min čtení


BeamMP server, který „nefunguje“, je skoro vždy jedna ze dvou samostatných chyb, které z místa hráče vypadají stejně. Buď se server nikdy nezaregistroval u backendu BeamMP, takže chybí v seznamu - problém s auth key nebo s Private - nebo se zaregistroval, ale nejde se k němu dostat na portu 30814, takže se v seznamu objeví a pak všechny odmítne. Třetí skupina chyb se odehrává výhradně na PC hráče: launcher, verze hry, cache modů. Nejrychleji poznáš, o kterou jde, když zkusíš přímé připojení podle adresy a portu a pošleš port serveru přes nástroj CheckBeamMP. Tyhle dva testy problém rozdělí dřív, než upravíš jediný soubor.

Tento článek je postup diagnostiky i s tím, co ti který krok prozradí. Jak server vůbec nastavit - ServerConfig.toml řádek po řádku, mapy, Lua - najdeš v průvodci BeamMP serverem. Obecnou verzi tohoto kontrolního seznamu pro libovolnou hru najdeš v článku proč se hráči nemohou připojit k tvému serveru.

Chybí v seznamu, nebo je nedostupný? Nejdřív problém rozděl#

Při každém připojení hráče jsou zapojeny dva systémy a selhávají nezávisle na sobě.

odchozí, registracenačte seznam, přihlásíjen lokálněTCP a UDP 30814BeamNG.driveklientský mod BeamMPLauncher hráčelocalhost port 4444Server BeamMPServer.logBackend BeamMPauth key, seznam serverů
Zobrazení v seznamu a připojení jsou dvě samostatné cesty

Server se připojuje ven k backendu, aby prokázal, kdo je, a objevil se v seznamu. Launcher hráče si od backendu vyžádá seznam a ověří hráče, a pak se připojí přímo k tvému serveru na jeho port. Seznam je jen adresář; to, že v něm jsi, neříká nic o tom, jestli je port otevřený, a to, že v něm nejsi, neříká nic o tom, jestli je port zavřený.

Co vidíšNejpravděpodobnější vrstva
Server není v seznamu, přímé připojení fungujeAuth key, Private, registrace u backendu
Server je v seznamu, nikdo se nepřipojíPort, protokol, firewall
Server není v seznamu a přímé připojení také selháváServer neběží, nebo obojí z předchozího
Selhává jeden hráč, ostatní se připojíLauncher, hra nebo síť toho hráče
Všichni selhávají hned po patchi BeamNGNesoulad verzí
Hráči se připojí a pak visí na stahování modůVelikost balíčku modů nebo vadný soubor v cache

Pokud se z osmi hráčů nepřipojí jeden, server nech být. Sedm úspěšných připojení dokazuje, že klíč, seznam i port jsou v pořádku.

Pořadí diagnostiky#

Projdi tyhle kroky popořadě. Každý zabere minutu a vyloučí jednu vrstvu a přeskakování - přepisování pravidel firewallu dřív, než přečteš log - je způsob, jak o sobě večer zmizí.

  1. Přečti log serveru. Spustil se a ověřil se?
  2. Zkontroluj Private a registraci v seznamu.
  3. Přímé připojení podle adresy a portu zvenčí, z jiné sítě než server.
  4. Otestuj port přes CheckBeamMP.
  5. Zkontroluj verze: BeamNG, klient BeamMP, build serveru.
  6. Zkontroluj balíček modů v Resources/Client.
  7. Teprve potom se podívej na launcher a PC hráče.

Zbytek článku rozebírá jednotlivé kroky.

Krok 1: nejdřív přečti Server.log#

Server zapisuje všechno, co vypíše, do souboru Server.log ve svém adresáři. Soubor zrcadlí konzoli a nikdy neobsahuje tvůj auth key, takže ho můžeš bez úprav vložit do kanálu podpory.

Hledáš, jestli server došel do bodu, kdy přijímá hráče. Server, který skončí vteřinu po startu, nikdy není problém sítě. Obvyklé příčiny, všechny vidět v logu:

  • Chybějící auth key, nebo zástupný text. Klíč je ve výchozím stavu prázdný a bez něj server nepoběží. Je to zdaleka nejčastější chyba při prvním startu.
  • Syntaktická chyba v TOML. Chybějící uvozovka kolem řetězce v ServerConfig.toml server zastaví, místo aby ji ignoroval. Log uvádí číslo řádku.
  • Starý `Server.cfg` vedle nového souboru. Starší servery BeamMP používaly Server.cfg, současné buildy používají ServerConfig.toml a upozorní, pokud starý soubor pořád leží vedle. Formáty nejsou kompatibilní, takže úprava špatného souboru nezmění nic.
  • Chyba při navázání portu. Kódy 10022 a 10048 znamenají, že server nemohl obsadit svůj port, obvykle proto, že ho už drží jiný program - často druhý server BeamMP. Dej každému serveru na stroji vlastní port.

Na RE:NODE konzole ukazuje živý log a správce souborů otevře Server.log i ServerConfig.toml v prohlížeči, takže tenhle krok jsou dvě záložky. Pokud se server restartuje ve smyčce, čtení takového vzorce popisuje článek pády herního serveru ve smyčce.

Krok 2: chyby auth key#

Každý server BeamMP, i soukromý, potřebuje auth key z BeamMP Keymasteru na keymaster.beammp.com. Klíč identifikuje server vůči backendu; bez platného klíče server nenastartuje, nebo se nezaregistruje. Chyby autentizace mají několik podob.

  • Překlep nebo zkrácený klíč. Klíč je dlouhý řetězec s pomlčkami. Při kopírování z Discord zprávy nebo z telefonu se často ztratí znak nebo se uvnitř uvozovek přidá mezera na konci. Vlož ho znovu přímo z Keymasteru.
  • Přegenerovaný nebo smazaný. Pokud jsi klíč v Keymasteru přegeneroval ty, nebo někdo s přístupem k tvému účtu, starý řetězec okamžitě přestane fungovat. Každý server, který ho ještě drží, při dalším startu selže.
  • Sdílený mezi dvěma servery. Jeden klíč na jeden server. Dva běžící servery se stejným klíčem se nebudou chovat správně a příznak - server, který se v seznamu objevuje a mizí - je dost matoucí na to, aby stálo za to ho vyloučit hned na začátku. Testovací server drž na vlastním klíči.
  • Došly klíče. Účty mají omezený počet klíčů serverů; vlastní FAQ BeamMP uvádí výhody pro podporovatele, které jich přidávají. Pokud nemůžeš vytvořit nový klíč, je to tím a řešením je použít klíč ze serveru, který jsi vyřadil.
  • Unikl. Klíč zveřejněný ve veřejném kanálu může použít cizí server. Přegeneruj ho v Keymasteru a pokud je napadený samotný účet, BeamMP to řeší přes tiket Account Support na svém oficiálním Discordu.
ServerConfig.toml
[General]AuthKey = "paste-the-whole-key-here"Private = falsePort = 30814

Klíč musí být v dvojitých uvozovkách, na jednom řádku a nic jiného mezi nimi. Zacházej s ním jako s heslem, ze stejných důvodů jako s jakýmkoli jiným tajemstvím, které server drží - obecně to rozebírá článek proměnné prostředí a tajné údaje.

Krok 3: server běží, ale není v seznamu#

Pokud log ukazuje čistý start a server přesto v seznamu ve hře chybí, zkontroluj v tomto pořadí.

`Private` je `true`. Toto nastavení skryje server ze seznamu a nedělá nic jiného. Není to heslo. Nastav false, restartuj a počkej pár minut.

Server se nedostane k backendu. Registrace je odchozí spojení ze serveru k backendu BeamMP. Na domácím stroji ho potichu zastaví odchozí pravidlo firewallu nebo bezpečnostní balík, který blokuje BeamMP-Server. Na VPS s odchozí politikou default-deny platí totéž. Hostované herní panely odchozí provoz povolují, takže je to hlavně problém vlastního hostingu.

Hledáš ho ze stejné sítě. Vlastní FAQ BeamMP na to upozorňuje: připojit se k vlastnímu serveru hostovanému doma přes seznam vyžaduje NAT loopback na routeru, který mnoho domácích routerů nepodporuje. Z PC, na kterém server běží, použij Direct Connect s 127.0.0.1 a portem; z jiného PC v domě použij adresu serveru v LAN. Kamarádi venku použijí veřejnou adresu. Tvůj vlastní pohled na seznam je nejméně spolehlivý test, který máš.

Vyhledávání ho skrývá. Seznam je dlouhý. Hledej nezvyklé slovo z Name svého serveru, ne běžné jako „freeroam“. Formátovací kódy v názvu nevadí, ale ztěžují hledání očima.

Právě nastartoval. Novému nebo restartovanému serveru dej pár minut, než usoudíš, že chybí. Pokud tam pořád není a přímé připojení funguje, server je v pořádku pro každého, kdo zná adresu - tu rozdej, zatímco řešíš zobrazení v seznamu.

Obecnou mechaniku fungování master listů a prohlížečů serverů napříč hrami popisuje doprovodný článek proč se server nezobrazuje v seznamu serverů.

Krok 4: porty, protokoly a firewally#

BeamMP potřebuje jedno číslo portu na dvou protokolech a oba musí dosáhnout na server.

PortProtokolPřenáší
30814TCPHandshake při připojení, stahování modů
30814UDPPoloha a stav vozidel

Pokud jsi změnil Port v ServerConfig.toml, toto číslo nahrazuje 30814 všude níže. Platné hodnoty jsou nad 1024 a pod 65535.

Otestuj port zvenčí

BeamMP provozuje kontrolní nástroj, který se pokusí dostat k tvému serveru z internetu. Když server běží, otevři v prohlížeči tuhle adresu s použitím své veřejné IPv4 adresy a portu:

code
https://check.beammp.com/api/v2/beammp/203.0.113.10/30814

Hodnota status rovná ok znamená, že port je dostupný. Chyba znamená, že spojení selhalo - zavřený port, firewall, špatné přesměrování, nebo žádná veřejná adresa. BeamMP nepodporuje hostování přes IPv6, takže použij adresu IPv4. Test ze samotného serveru nebo z PC ve stejné síti nedokazuje nic; kontrolní nástroj existuje právě proto, abys nemusel hledat kamaráda na mobilních datech.

Co znamenají chybové kódy launcheru

Hráči při neúspěšném připojení vidí v launcheru kódy soketů Windows. Jsou užitečnější, než vypadají.

KódVýznamPodívej se na
10060Vypršel čas, nikdo neodpovědělPřesměrování, firewall, protokol
10061Odmítnuto, stroj odpověděl, nic neposloucháServer nejede nebo špatný port
10038Operace se soketem selhalaFirewall, pak přesměrování
10051 / 10065Síť nebo hostitel nedostupnýAdresa, přesměrování, směrování
10048Port je už používánJiný program na tom portu

Rozdíl mezi 10060 a 10061 je nejlepší vodítko, které dostaneš. Odmítnuto znamená, že pakety dorazily na nějaký stroj a ten je odmítl, takže adresa je správná a server tam neposlouchá - špatný port, nebo server neběží. Vypršení času znamená, že pakety cestou něco zahodilo.

Otevření portu na vlastním stroji

Ve Windows povol oba protokoly příchozí. FAQ BeamMP uvádí, že úplné vypnutí firewallu obvykle nepomůže, takže raději přidej pravidla:

PowerShell jako správce
New-NetFirewallRule -DisplayName "BeamMP TCP" -Direction Inbound `    -Protocol TCP -LocalPort 30814 -Action AllowNew-NetFirewallRule -DisplayName "BeamMP UDP" -Direction Inbound `    -Protocol UDP -LocalPort 30814 -Action Allow

Na Linuxovém VPS s ufw:

bash
$ sudo ufw allow 30814/tcp$ sudo ufw allow 30814/udp$ sudo ufw status

Doma musí přesměrování na routeru platit také pro oba protokoly - některé routery chtějí dvě samostatná pravidla - a mířit na adresu serveru v LAN, která by měla být pevná, aby se po restartu nezměnila. Žádné přesměrování nikdy nezafunguje za CGNAT a mobilní připojení 4G a 5G přesměrování nepodporují vůbec. Jak poznat, jestli má tvé připojení veřejnou adresu, vysvětluje článek NAT a CGNAT pro hostitele her a stranu VPS podrobněji pokrývá průvodce firewallem ufw.

Klasický příznak napůl otevřeného portu: TCP otevřené, UDP blokované. Hráči se připojí, stáhnou mody, mapa se načte a pak je každé další auto zamrzlé nebo neviditelné, protože proud stavových dat nedorazí. Pokud lidé popisují právě tohle, zkontroluj konkrétně pravidlo pro UDP.

Na hostovaném panelu

Není tu žádný router ani firewall Windows, se kterým bys bojoval, ale existuje jedna odpovídající chyba: Port v ServerConfig.toml nastavený na číslo, které serveru není přidělené. Na RE:NODE je přidělený port uvedený na záložce Network; pokud konfigurace uvádí jiný port, server poslouchá tam, kam nic nesměruje. Sjednoť obojí, restartuj a spusť kontrolní nástroj znovu. Proč na přidělení záleží, vysvětluje článek porty herních serverů vysvětleně.

Krok 5: nesoulad verzí po aktualizaci BeamNG#

Velký podíl hlášení „nikdo se nemůže připojit“ přichází v den, kdy se BeamNG.drive aktualizuje. Tři pohyblivé části se musí shodovat: hra, mod klienta BeamMP s launcherem na PC každého hráče a build serveru.

  • Hra se aktualizovala dřív než BeamMP. BeamMP musí po aktualizaci BeamNG vydat kompatibilní klient. Dokud to neudělá, hráči na nové verzi hry nemohou hrát multiplayer nikde a nic, co změníš na serveru, to neopraví. Než začneš ladit, zkontroluj oznámení BeamMP.
  • Server je starší než klienti. Když BeamMP aktualizuje svůj protokol, starý build serveru aktualizované klienty odmítá nebo mate. Aktualizuj server; je to malá binárka a na panelu je to obvykle přeinstalování nebo restart se zapnutými aktualizacemi. Nejdřív si zazálohuj ServerConfig.toml a Resources/Server.
  • Jeden hráč zaostává. Hráč, jehož launcher se neaktualizoval nebo který má zastaralou hru, selhává, zatímco ostatní se připojí. FAQ BeamMP výslovně říká, že nefunguje s pirátskými ani zastaralými kopiemi BeamNG.drive.
  • Mod se s patchem rozbil. Mody vozidel a map v Resources/Client se s aktualizacemi BeamNG pravidelně rozbíjejí. Server nastartuje, hráči se připojí a pak spadnou nebo zamrznou při načítání. Odsuň složku s mody stranou a spusť server načisto, abys to dokázal.

Neaktualizuj fungující server večer, kdy na něj lidé čekají s jízdou. Zvyky z kontrolního seznamu pro den aktualizace herního serveru platí i tady beze změny.

Krok 6: stahování modů, které se zasekne nebo nikdy nedoběhne#

Když se hráč připojí, server mu přes TCP pošle každý .zip z Resources/Client, než může jet. Právě při tomto přenosu vzniká většina hlášení „zaseklé na načítání“.

  • Balíček je příliš velký. Balíček o několika gigabajtech přes upload serveru, rozdělený mezi několik lidí připojujících se současně, trvá minuty. Hráči si myslí, že se to zaseklo, a odejdou, čímž se stahování příště spustí znovu. Zmenši balíček a uveď jeho velikost na svém Discordu, aby lidé věděli, že mají počkat.
  • Jeden poškozený zip. Soubor useknutý při nahrávání se věrně odešle každému hráči a u všech selže při načtení. Nahraj ho znovu přes SFTP, ne přes vrtkavý upload v prohlížeči; porovnej velikosti souborů s originálem.
  • Věci v `Resources/Client`, které nejsou mody. Patří tam jen zipy modů. Pluginy v Lua patří do Resources/Server, které se klientům nikdy neposílá; plugin vhozený do špatné složky se rozešle každému hráči jako mod.
  • Špatná cesta k mapě. Pokud Map ukazuje na složku levelu, která neexistuje v žádné nainstalované mapě ani zipu modu, server nastartuje a hráči se načtou do ničeho užitečného. Otevři zip mapy a přečti název složky pod levels/.
  • Vadný soubor v cache hráče. Launcher ukládá stažené mody serveru do složky Resources uvnitř vlastního instalačního adresáře. Pokud jeden hráč visí na modu, který se všem ostatním načte, ať zavře hru i launcher a tu složku Resources smaže; při dalším připojení se naplní znovu.
  • Vlastní mody hráče. Mody třetích stran nainstalované lokálně mohou BeamMP rušit. Zdokumentovaná metoda BeamMP pro čistý stav je zavřít hru a přejmenovat složku current v uživatelské složce BeamNG na něco jako current_old, což dá čerstvý profil a starý zůstane k vrácení zpět.

Velké balíčky nahrávej pořádným klientem - podrobnosti jsou v článku SFTP a správce souborů - a po každé změně modů si sám vyzkoušej připojení s prázdnou cache.

Krok 7: launcher a PC hráče#

Když je server v pořádku a jeden hráč se přesto nepřipojí, chyba je na jeho straně. Klient BeamMP má dvě části: launcher BeamMP a mod uvnitř BeamNG.drive, který s ním komunikuje přes lokální port na stejném PC.

  • Hra byla spuštěna samostatně. Multiplayer potřebuje běžící launcher; hru spouštěj přes BeamMP-Launcher, ne přímo ze Steamu.
  • Antivirus launcher odstranil nebo zablokoval. Protože komunikuje po síti, bezpečnostní software ho někdy dá do karantény. FAQ BeamMP to řeší a popisuje přidání výjimky do Windows Defenderu. Pokud launcher po stažení zmizí, zkontroluj karanténu.
  • Lokální port launcheru je obsazený. Hra a launcher spolu ve výchozím stavu komunikují přes port 4444 na stroji hráče. Pokud ho drží jiný program, launcher ukáže chybu navázání portu jako 10013 nebo 10048 a hra se nikdy nepřipojí. Změň ho na dvou místech tak, aby se shodovala: v BeamNG Options, Multiplayer, show advanced options, Launcher port; a pak hodnotu Port v launcher.cfg vedle launcheru. Funguje jakékoli číslo zhruba od 2000 výš.
  • VPN, školní nebo hotelová síť. VPN s BeamMP dělají potíže a omezující sítě často zahazují UDP. Ať hráč zkusí jiné připojení.
  • Účty hostů. S AllowGuests = false jsou hráči bez účtu BeamMP odmítnuti. Na většině serverů je to záměr; řekni jim, ať se přihlásí.
  • Server je plný. Dosažen MaxPlayers. Zpětně zřejmé, ale z věty „nepustí mě to dovnitř v devět večer“ to zřejmé málokdy je.

Klient pro Linux není oficiálně podporovaný, takže hráč na Linuxu, který narazí na chyby launcheru, je mimo to, s čím mu BeamMP samo pomůže.

FAQ#

Proč se mohu k BeamMP serveru připojit podle IP, ale nevidím ho v seznamu?

Protože připojení a zobrazení v seznamu jsou oddělené věci. Přímé připojení dokazuje, že port je otevřený; seznam závisí na tom, že se server zaregistruje u backendu pomocí auth key a že Private je false. Pokud jsi ve stejné domácí síti jako server, můžeš ho v seznamu jednoduše nevidět bez NAT loopbacku.

Potřebuje BeamMP TCP, nebo UDP?

Obojí, na stejném čísle portu - 30814, pokud jsi ho nezměnil. TCP přenáší připojení a stahování modů, UDP stav vozidel. Při otevřeném jen TCP se hráči načtou, ale ostatní auta zamrznou nebo se nikdy neobjeví.

Mohu provozovat dva servery BeamMP na jeden klíč?

Ne. Každý server potřebuje vlastní klíč z Keymasteru. Opakované použití způsobí, že se servery nezaregistrují nebo v seznamu blikají, a řešením je druhý klíč nebo vyřazení prvního serveru.

Hráči se zasekli při stahování modů. Je server příliš malý?

Zřídka. Server je nenáročný na CPU i paměť; stahování omezuje upload, velikost balíčku a to, kolik lidí se připojuje najednou. Nejdřív zmenši balíček. Pokud se zasekl jeden hráč a ostatní ne, vymaž tomu hráči cache Resources v launcheru.

Musí hráči otevírat porty, aby se připojili?

Ne. Hráči se připojují směrem ven. Jediný port, který by hráč mohl měnit, je lokální port launcheru 4444, a to jen když ho na jeho PC už používá jiný program.

Všichni se po aktualizaci BeamNG přestali připojovat. Co teď?

Počkej, až BeamMP vydá aktualizaci klienta pro novou verzi hry, pak aktualizuj build serveru a zkontroluj klientské mody. Dokud BeamMP nedožene hru, multiplayer nefunguje nikomu na nové verzi, na žádném serveru.