Install it with SteamCMD
The server is installed and updated with SteamCMD, and the Rust app ID is 258550. On Linux the sequence Facepunch document is to unpack SteamCMD, make it executable, then run one line:
./steamcmd.sh +force_install_dir ../rust +login anonymous +app_update 258550 validate +quit
Windows is the same command with steamcmd.exe. The +login anonymous part matters even though no account is needed: leave it out and SteamCMD answers with ERROR! Failed to install app '258550' (No subscription), which reads like a licensing problem and is not one.
Facepunch also host an old Rust_Server.zip quick-start bundle, and their own wiki now warns you off it. The disclaimer says it dates from 2015, claims an update behaviour that no longer exists, and runs SteamCMD twice for no reason. Read the page instead.
The launch line
Rust has no first-run configuration wizard. Everything is set on the command line. The example Facepunch give, trimmed, looks like this:
RustDedicated.exe -batchmode +server.port 28015 +server.level "Procedural Map" +server.seed 1234 +server.worldsize 4000 +server.maxplayers 10 +server.hostname "Name of Server" +server.identity "server1" +rcon.port 28016 +rcon.password letmein +rcon.web 1 -logfile rustserverlog.txt
| Setting | What it does |
|---|---|
-batchmode | Runs the server without a window of its own. |
+server.port | The port players connect to. 28015 by default, and it is UDP. |
+server.seed | The random seed for map generation. Any value from 0 to 2147483647. |
+server.worldsize | Map size. Facepunch document a usable range of 1000 to 6000. |
+server.identity | The internal name of the server. It decides which folder your files live in. |
+rcon.port, +rcon.password | Remote console. This port is TCP. Change the password. |
-logfile | Sends console output to a file. Facepunch suggest a date in the filename. |
Startup takes several minutes and prints a lot of noise, some of it harmless errors. The line to wait for is Server startup complete. Anything before that is not a server yet.
server.cfg, and why it wins
Facepunch's advice is to keep the command line to the essentials, meaning ports and remote console, and put everything else in a server.cfg file inside rust/server/<server.identity>/cfg/. Two things about that file are worth remembering. The server reads it at startup and it "takes priority over anything set on the command line", so a value you changed on the launch line but not in the file will look like it was ignored. And the server never writes to it, so it is yours to edit by hand.
Variables in server.cfg drop the leading +. A few cannot be set this way at all. Facepunch name the weather chance variables, which have to be set after the server is running, either by hand in the console or through a remote console client.
Ports: there are four, and two of them have to be open
The game port is 28015 UDP by default. The one people miss is the query port. Facepunch state it plainly: if server.queryport is not set explicitly it defaults to one above whichever of server.port and rcon.port is greatest, both it and the game port are UDP, both need to be open and reachable, and the two cannot be the same number. The query port is what lets services read your server, which is what puts it in the in-game browser. A server with only 28015 open works from the machine it runs on and is invisible from everywhere else.
There are four ports in total: game and query on UDP, remote console and Rust+ on TCP. Facepunch's own router advice is to get the game port working first and add the others afterwards, to give the server a fixed address on your network rather than a rotating one, and to avoid the "both" or "all" protocol option if your router offers it.
One more surprise arrives with no error attached. Rust uses a third-party service called MaxMind to decide which country a server is in, and the wiki says this is occasionally wrong. If your server shows under the wrong flag, that is where the fix lives, not in your config.
Saves, identity and admins
+server.identity is the internal name of the server and it decides where everything lives. Facepunch's example creates a server1 directory holding all of your server files. That folder is the thing to copy before a move, an experiment or a wipe. The cfg folder inside it holds both server.cfg and users.cfg.
To make yourself an owner while the server is running, type users in the console to print the connected players and their Steam IDs, then ownerid 76561198123456789 "Name", or moderatorid for the lesser role. You have to reconnect before the level applies, and the console prints has auth level when it has. Facepunch note the change is saved for you. With the server shut down you can edit users.cfg directly instead, one line per admin.
Plugins, and the restart that quietly removes them
Plugin support comes from Oxide, downloaded from uMod and extracted over the server files. Two facts from the wiki explain most reports of plugins vanishing. Oxide has to be reinstalled after every Rust update, once a matching Oxide build appears. And if your start-up script runs SteamCMD each time, as the documented loop does, your files are reverted to vanilla on every restart. That loop is a good idea and it is incompatible with Oxide unless you add the Oxide step back in behind it.
Keeping it running
The documented Windows pattern is a batch file with a :start label, the SteamCMD update line, the RustDedicated line, and goto start at the end, so a crash or a shutdown brings the server back. On Linux the console is not interactive, so Facepunch suggest running runds.sh inside a screen session and sending commands with a remote console client. Detach with CTRL+A then D, and reattach with screen -x rust_server.
Map size is the setting with the largest downstream cost. The documented range is 1000 to 6000, and the wiki says plainly that a larger map needs more disk space. More player slots ask more of the processor. Neither is a reason to hold back, but both are worth choosing on purpose.
Self-hosting or renting
If you already have a machine that stays on, self-hosting Rust costs nothing but your attention, and you keep every file. Plenty of groups should stop reading here.
The honest costs are these. Rust asks a lot of a machine, and that machine has to stay awake whenever anyone wants to play, which usually rules out the computer you play on. Many home connections cannot accept incoming connections at all, and no amount of careful port forwarding fixes that. Wipe day, game updates, and the Oxide reinstall that follows each one are yours to catch, often at an inconvenient hour.
Renting trades that list for a monthly bill and a smaller amount of file access. It does not run the game differently and it does not choose your settings for you. It is a different set of chores.
Where RadarHost fits
RadarHost rents Rust servers hosted in Beauharnois, Quebec, Canada. There are three plans, Standard, Premium and Diamond, priced in Canadian dollars, with no setup fee and cancel any time. What renting changes is who keeps the machine on; the seed, the map size, the plugins and the wipe schedule above are still yours to choose. After payment, our team reviews the order and emails setup details or next steps within 24 hours. Current plans and prices are on the Rust availability page.