Jak postawić serwer dedykowany Rust
Postaw własny serwer Rust z wybraną przez siebie wielkością mapy, dniami wipe'ów i zasadami. Program serwera od Facepunch jest darmowy i działa na Windows i Linuksie.
Czego potrzebujesz
Komputera z Windows lub Linuksem, który jest włączony, gdy ludzie grają, oraz SteamCMD, darmowego narzędzia wiersza poleceń od Valve do serwerów Steam. Serwer Rust to aplikacja Steam 258550, 6,1 GB pobierane z anonimowym logowaniem, więc PC z serwerem nie potrzebuje ani Rusta, ani konta Steam.
Każdy gracz potrzebuje własnej kopii Rusta na Steam. Po stronie serwera Facepunch podaje minimum 12 GB wolnego RAM i 15 GB na dysku, najlepiej SSD; duże mapy podnoszą obie wartości.
Dla skali: na naszym testowym PC świat 1000 m bez graczy ustabilizował się na około 2,8 GB RAM i był gotowy po 3 minutach 18 sekundach. Mapa pełnej wielkości ładuje się dłużej i potrzebuje więcej.
Do grania potrzebny jest jeden otwarty port, UDP 28015. Lista serwerów i aplikacja Rust+ na telefon używają dwóch kolejnych, opisanych w sekcji Porty i zapora.
Sprawdzone na buildzie serwera Rust z 22 października 2026 (protokół 2635.289.1).
Instalacja serwera
1. Pobierz SteamCMD od Valve i rozpakuj do C:\steamcmd.
2. Otwórz PowerShell albo wiersz polecenia i pobierz serwer do C:\rust-server:
C:\steamcmd\steamcmd.exe +force_install_dir C:\rust-server +login anonymous +app_update 258550 validate +quit3. Linia startowa Rusta jest długa, więc trzymaj ją w pliku. Zapisz to jako C:\rust-server\start-server.bat i kliknij dwukrotnie:
cd /d "%~dp0"
RustDedicated.exe -batchmode +server.identity main +server.port 28015 +server.queryport 28017 +rcon.port 28016 +rcon.password "YOUR-ADMIN-PASSWORD" +rcon.web 1 +app.port 28082 +server.hostname "YOUR-SERVER-NAME" +server.maxplayers 60 +server.worldsize 3500 +server.seed 90817 -logfile server-log.txtŁadowanie trwa kilka minut. Gracze mogą dołączać, gdy okno wypisze Server startup complete.
Testowaliśmy te kroki na Ubuntu 24.04. SteamCMD od Valve potrzebuje 32-bitowej biblioteki GCC (lib32gcc-s1); bez niej steamcmd.sh od razu się zatrzymuje.
sudo apt update
sudo apt install lib32gcc-s1 curl screen
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sSL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar xz
./steamcmd.sh +force_install_dir ~/rust-server +login anonymous +app_update 258550 validate +quitUruchom serwer w sesji screen, żeby działał dalej po wylogowaniu:
cd ~/rust-server
export LD_LIBRARY_PATH=~/rust-server:~/rust-server/RustDedicated_Data/Plugins/x86_64
screen -S rust ./RustDedicated -batchmode +server.identity main +server.port 28015 +server.queryport 28017 +rcon.port 28016 +rcon.password "YOUR-ADMIN-PASSWORD" +rcon.web 1 +app.port 28082 +server.hostname "YOUR-SERVER-NAME" +server.maxplayers 60 +server.worldsize 3500 +server.seed 90817 -logfile server-log.txtZostaw linię export. Serwer ładuje steamclient.so od Steam z własnego folderu tylko wtedy, gdy ten folder jest w LD_LIBRARY_PATH. Bez niej nasz zbudował mapę, a potem się wyłączył z Failed to load module steamclient.so.
Ctrl+A, a potem D wychodzi z sesji; screen -r rust do niej wraca. Konsola na Linuksie nie przyjmuje wpisywanych komend, więc do zadań admina używaj RCON (zobacz Admin).
Facepunch nie wydaje obrazu Dockera. W naszym teście kroki dla Linuksa z góry działały jako root w zwykłym kontenerze ubuntu:24.04, razem z linią export.
Linia startowa
Każda para +name i wartość w linii startowej ustawia jedną zmienną konsoli (convar), zanim wczyta się świat. Pomiń którąś, a serwer użyje wartości domyślnej:
| Opcja | Domyślnie | Co robi |
|---|---|---|
-batchmode | Uruchamia serwer bez grafiki. Zawsze ją dodawaj. | |
+server.identity | my_server_identity | Nazwa folderu w server/, w którym jest zapis i ustawienia tego serwera. Druga identity daje drugi, osobny serwer z tej samej instalacji. |
+server.port | 28015 | Port gry, UDP. To przez niego łączą się gracze. |
+server.queryport | 28016 | Port UDP używany przez listę serwerów. Nie może być portem gry. |
+rcon.port | 28015 | Zdalna konsola, TCP. |
+rcon.password | (brak) | Hasło do zdalnej konsoli. Wybierz własne, długie. |
+rcon.web | 1 to RCON przez WebSocket, ten, który poleca Facepunch i którego używa jego konsola webowa. | |
+app.port | 28082 | Port TCP aplikacji towarzyszącej Rust+, 10000 lub wyżej. |
+server.hostname | My Untitled Rust Server | Nazwa na liście serwerów. |
+server.maxplayers | 500 | Najwięcej graczy online jednocześnie. |
+server.worldsize | 4500 | Wielkość mapy, od 1000 do 6000. Większe mapy wolniej się ładują i zajmują więcej RAM. |
+server.seed | 1337 | Liczba (od 0 do 2147483647), z której generuje się mapa. |
-logfile | Kopiuje wyjście konsoli do pliku. | |
Wartości domyślne tak, jak nasz testowy serwer pokazał je w logu i przez RCON. Bez +server.seed każdy serwer buduje tę samą mapę z seedem 1337.
Ustawienia serwera
Ustawienia, które mają przetrwać każdy restart, idą do server.cfg, w server\main\cfg w folderze serwera (main to twoja server.identity). Pisz jeden convar na linię, bez +.
Pierwsze uruchomienie tworzy folder cfg z users.cfg, bans.cfg i serverauto.cfg, plikiem, który serwer zapisuje sam. server.cfg nie istnieje, dopóki go nie utworzysz.
server.tags biweekly,softcore,EU
server.description "YOUR-SERVER-DESCRIPTION"
server.url "https://YOUR-WEBSITE"
server.headerimage "https://YOUR-WEBSITE/header.png"
server.pve false
decay.scale 0.5Serwer czyta server.cfg przy każdym starcie. W naszym teście convar ustawiony i tam, i w linii startowej zachował wartość z linii startowej; pozostałe linie server.cfg zadziałały. Sam serwer nigdy nie zapisuje do server.cfg.
| Convar | Domyślnie | Co robi |
|---|---|---|
server.description | No server description has been provided. | Tekst na ekranie, który gracze widzą przed dołączeniem. |
server.url | (puste) | Link do strony na tym ekranie. |
server.headerimage | (puste) | Link do obrazka banera na tym ekranie. |
server.tags | (puste) | Tagi filtrów do listy serwerów, oddzielone przecinkami. |
server.pve | False | Tryb PvE. Ustawienie na true dodaje też tag pve. |
decay.scale | 1 | Mnożnik tego, jak szybko budynki niszczeją (decay). |
server.saveinterval | 600 | Sekundy między automatycznymi zapisami. |
Tagi pomagają graczom filtrować listę. Wybierz najwyżej jeden tag wipe'u (weekly, biweekly, monthly), jeden tag stylu (vanilla, softcore, hardcore) i region: NA, SA, EU, WA, EA, OC lub AF.
Dodatkowe to pve, roleplay, creative, minigame, training, battlefield, broyale, builds, tut i premium. Dwa tagi z jednej grupy mogą wykluczyć serwer z filtrowanych wyszukiwań.
Żeby zobaczyć obecną wartość dowolnego convara, wpisz samą jego nazwę w konsoli serwera albo przez RCON.
Admin
Rust ma dwie rangi: owner i moderator. Nadajesz je w konsoli serwera albo przez RCON, z 17-cyfrowym SteamID64 gracza. Komenda status pokazuje wszystkich online z ich ID:
ownerid YOUR-STEAMID64 "YOUR-NAME"
moderatorid A-FRIENDS-STEAMID64 "A-FRIENDS-NAME"Potem gracz łączy się ponownie. Obie komendy od razu zapisują rangę w cfg/users.cfg; u nas obie linie były tam, zanim uruchomiono server.writecfg. removeowner i removemoderator odbierają rangę.
W grze admini otwierają konsolę klawiszem F1 i tam wpisują komendy.
| Komenda | Co robi |
|---|---|
status | Pokazuje graczy online z ich SteamID64. |
say <text> | Wysyła wiadomość do wszystkich na czacie. |
kick <player> <reason> | Wyrzuca gracza z serwera. |
ban <player> <reason> | Banuje gracza, który jest online. |
banid <SteamID64> <name> <reason> | Banuje po ID, także graczy offline. |
unban <SteamID64> | Zdejmuje bana. |
server.save | Zapisuje świat od razu. |
server.writecfg | Zapisuje adminów i bany do folderu cfg. |
quit | Zapisuje i zatrzymuje serwer. |
Do zarządzania z innego PC konsola webowa Facepunch pod facepunch.github.io/webrcon łączy się z portem RCON za pomocą twojego hasła RCON. Ta strona działa po zwykłym HTTP.
Porty i zapora
Gracze łączą się z grą przez UDP 28015. Lista serwerów czyta dane serwera przez port zapytań (query), a aplikacja Rust+ rozmawia z serwerem przez TCP. Z linią startową z góry daje to trzy porty: UDP 28015, UDP 28017 i TCP 28082.
Bez +server.queryport port listy serwerów to jeden powyżej większego z dwóch: portu gry albo portu RCON. Nasz testowy serwer bez rcon.port odpowiadał liście na UDP 28016.
Przepuść je przez Zaporę Windows, w PowerShell jako administrator:
New-NetFirewallRule -DisplayName "Rust server (UDP)" -Direction Inbound -Protocol UDP -LocalPort 28015,28017 -Action Allow
New-NetFirewallRule -DisplayName "Rust server (Rust+)" -Direction Inbound -Protocol TCP -LocalPort 28082 -Action AllowNa routerze przekieruj te same trzy porty na PC z serwerem i daj temu PC stały lokalny adres IP. W każdej regule wybierz UDP albo TCP zamiast opcji obu naraz. RCON (TCP 28016) nie wymaga przekierowania, chyba że zarządzasz serwerem spoza domu.
Aplikacja towarzysząca Rust+
Rust+ paruje telefony z serwerem przez app.port. Bez +app.port nasz testowy serwer używał TCP 28082. Port musi być 10000 lub wyżej, a zmiana wymaga restartu.
Przy starcie serwer sprawdza, czy Rust+ może się z nim połączyć z zewnątrz. Jeśli test się nie uda, Rust+ zostaje wyłączone; nasz testowy serwer bez otwartych portów zalogował Rust+ companion server connectivity test failed. Serwer musi też mieć dostęp do companion-rust.facepunch.com.
Jeśli Rust+ pokazuje zły adres, ustaw app.publicip na YOUR-SERVER-IP. Żeby wyłączyć Rust+, wpisz +app.port 1- w linii startowej; minus jest tam po jedynce.
Plik companion.id w folderze identity to tożsamość Rust+ serwera. Nigdy go nie usuwaj ani nie dawaj innemu serwerowi: każdy gracz musiałby sparować się od nowa, a usuniętego pliku nie da się odzyskać.
Dołączanie do serwera
W menu głównym Rusta naciśnij F1 i wpisz:
client.connect YOUR-SERVER-IP:28015W tej samej sieci co serwer użyj zamiast tego jego lokalnego adresu IP (pokaże go ipconfig). Gdy port zapytań jest otwarty, serwer widać też w przeglądarce serwerów pod Community, albo pod Modded, jeśli ma pluginy zmieniające grę.
Zapisy, wipe'y i aktualizacje
Wszystko, co trzyma jeden serwer, jest w server\main. Po starcie i zapisie u nas było tam:
| Plik | Co zawiera |
|---|---|
proceduralmap.1000.90817.289.sav | Świat: budynki, przedmioty i wszystko, co postawione. 289 pochodzi z numeru protokołu. |
….sav.1 | Poprzedni zapis. Serwer trzyma dwie starsze kopie (server.savebackupcount 2). |
proceduralmap.1000.90817.289.map | Wygenerowana mapa, nazwana od wielkości, seeda i protokołu. |
.navmesh, _occlusion_3.dat | Dane, które serwer buduje z mapy dla ścieżek AI i widoczności. |
player.blueprints.18.db | Schematy, których nauczyli się gracze. |
player.deaths, .identities, .states | Dane graczy, każde w osobnym pliku .db. |
player.tokens.db | Parowania Rust+. |
clans.289.db, relationship.289.db | Klany i relacje między graczami. |
sv.files.289.db | Obrazki na znakach i innych przedmiotach, po których można rysować. |
companion.id | Tożsamość Rust+ serwera. |
cfg/ | users.cfg, bans.cfg, serverauto.cfg i twój server.cfg. |
*.db-wal | Ostatnie zmiany w pliku .db obok. Kopiuj je razem. |
Żeby zrobić kopię zapasową, wpisz server.save, zatrzymaj serwer i skopiuj cały folder identity, razem z plikami -wal. Przywracaj go tylko na tym samym serwerze, ze względu na companion.id.
Wipe'y
Wipe zaczyna serwer od nowa. Comiesięczna aktualizacja Facepunch podnosi numer protokołu w nazwach zapisów, więc serwer sam tworzy nową mapę: to jest forced wipe. Nie zmieniaj nazwy starego .sav, żeby to obejść.
Żeby samemu zrobić wipe mapy, zatrzymaj serwer i usuń pliki .sav i .map albo zmień server.seed. Przy wipe'ie schematów usuń w tym samym czasie także player.blueprints.
Odliczanie do wipe'u w grze domyślnie wskazuje czwartek, 19:00 czasu londyńskiego. Zmienisz to przez wipetimer.wipeDayofWeek (0 to niedziela, 4 czwartek), wipetimer.wipeHourofDay i wipetimer.wipeTimezone.
Aktualizacje
Serwer Rust sam się nie aktualizuje. Po patchu gry zatrzymaj go i uruchom ponownie linię SteamCMD z kroku instalacji: zachowa zapis i folder cfg. Do tego czasu gracze z nowym buildem nie mogą dołączyć.
Pluginy i mody
Pluginy działają na frameworku społeczności, Oxide (uMod) albo Carbon. Facepunch opisuje oba, ale nie tworzy żadnego. Dla Oxide zatrzymaj serwer, rozpakuj build dla Rusta z umod.org na folder serwera i uruchom go znowu. Pluginy trafiają do oxide/plugins.
Każda aktualizacja przez SteamCMD nadpisuje pliki Oxide, więc po każdej aktualizacji instaluj Oxide od nowa. Oxide zwykle wydaje pasujący build niedługo po patchu Rusta.
Facepunch chce, żeby serwery z pluginami zmieniającymi gameplay lub dodającymi interfejs (rate'y zbierania, kity, panele info) były w Modded. Narzędzia admina, anticheat, kosmetyka czatu i zmiany vanillowych convarów mogą zostać w Community. Łamanie zasad może skończyć się usunięciem z listy.
Częste problemy
Znajomi nie mogą się połączyć
Poczekaj na Server startup complete. Sprawdź, czy UDP 28015 jest przekierowany na właściwy lokalny IP i dozwolony w zaporze. Z własnej sieci łącz się zamiast tego przez lokalny IP.
Serwera nie ma na liście serwerów
Przekieruj port zapytań (UDP 28017 z naszą linią startową) i trzymaj go innego niż port gry. Serwer, który jeszcze się ładuje, nie jest jeszcze na liście.
Ustawienie w server.cfg nic nie zmienia
Sprawdź linię startową. Gdy convar jest w obu miejscach, wygrywa wartość z linii startowej; na naszym testowym serwerze maxplayers i hostname z server.cfg były z tego powodu ignorowane. Trzymaj każdy convar w jednym miejscu.
Gracze dostają komunikat, że serwer wymaga aktualizacji
Rust dostał patch, a serwer nie. Zatrzymaj go, uruchom ponownie linię SteamCMD, a potem zainstaluj od nowa Oxide albo Carbon, jeśli ich używasz.
Pluginy przestały działać po aktualizacji
SteamCMD zastąpił pliki Oxide zwykłymi plikami gry. Zainstaluj ponownie najnowszy build Oxide.
Rust+ nie chce się sparować
app.port musi być 10000 lub wyżej i przekierowany jako TCP. Poszukaj w logu testu Rust+ przy starcie, ustaw app.publicip, jeśli adres jest zły, i zostaw companion.id tam, gdzie jest.
Serwer się wysypuje podczas ładowania mapy
Brakuje mu pamięci. Facepunch wymaga 12 GB wolnego RAM; mniejsza server.worldsize potrzebuje mniej.
SteamCMD zatrzymuje się przed rozpoczęciem pobierania
W linii brakuje +login anonymous. Dodaj to przed +app_update. Bez tego nasz SteamCMD kończył z Failed to request app info update.
Serwer na Linuksie wyłącza się z Failed to load module steamclient.so
Uruchom linię export z kroku startu w tej samej powłoce przed ./RustDedicated, żeby serwer znalazł steamclient.so we własnym folderze.
Pytania
Czy muszę mieć Rusta, żeby postawić serwer Rust?
Nie. SteamCMD pobiera serwer z anonimowym logowaniem. Każdy gracz potrzebuje Rusta na Steam.
Jaki port przekierować dla serwera Rust?
UDP 28015 do grania. Dodaj UDP 28017, żeby pojawić się na liście serwerów, i TCP 28082 dla Rust+, przy linii startowej z tej strony.
Ile RAM potrzebuje serwer Rust?
Facepunch wymaga co najmniej 12 GB wolnego. Nasza mała mapa testowa 1000 m zajmowała około 2,8 GB bez nikogo online; większe mapy i więcej graczy potrzebują więcej.
Jak zrobić się adminem na swoim serwerze Rust?
Uruchom ownerid ze swoim 17-cyfrowym SteamID64 i nazwą, w konsoli serwera albo przez RCON, i dołącz ponownie. W grze konsola jest pod F1.
Czy mogę ustawić hasło na serwerze Rust?
Nie w czystym Ruście: nie ma hasła do dołączania. Na naszym testowym serwerze find password pokazało tylko ustawienia RCON. Do ograniczenia, kto może dołączyć, potrzebny jest plugin.
Kiedy serwery Rust mają wipe?
Facepunch wymusza wipe mapy comiesięczną aktualizacją, zwykle w pierwszy czwartek miesiąca. Pomiędzy nimi robisz wipe, kiedy chcesz, usuwając zapis.
Czy mogę postawić serwer Rust na Linuksie?
Tak. Serwer wychodzi też na Linuksa. Testowaliśmy go na Ubuntu 24.04.
Wikily Servers hostuje Rust
Od 10,99 € miesięcznie

