Quick answer
A Rust dedicated server uses UDP port 28015 for players (server.port) and a separate UDP query port (server.queryport) to appear in the server browser. Facepunch's wiki says both must be reachable for the browser, and they can't be the same port. If you don't set the query port it defaults to one above the higher of server.port and rcon.port, so set every port explicitly (28015 game, 28016 RCON, 28017 query). Only the game port is needed to join: friends can always press F1 and type client.connect IP:28015.
Ports
28015UDP: Game (server.port). Needed to connect28017UDP: Query (server.queryport). Needed to appear in the server browser; must differ from the game port28016TCP: RCON (rcon.port). Don't open it to everyone28082TCP: Rust+ companion app (app.port). Optional
How to fix it, step by step
- Set every port explicitly. Start RustDedicated with
+server.port 28015 +server.queryport 28017 +rcon.port 28016. If you leave the query port out, it moves whenever you change the RCON port. - Get the game port working first. Forward UDP 28015 to the server PC's reserved local IP and allow RustDedicated through the firewall. Facepunch suggests getting this working before adding the other ports, and recommends picking UDP rather than a 'both/all' protocol option in the router.
- Open the query port for the browser. Forward UDP 28017 (your
server.queryport). Without it, the server runs and accepts direct connections but doesn't appear in the server browser. - Test locally, then from outside. On the server PC press F1 and type
client.connect localhost:28015. Then have a friend (or a phone hotspot) connect toyour-public-ip:28015. If it works locally but not from outside, it's the forward, the firewall or CGNAT (see the CGNAT guide). - Join by IP while the browser catches up. Friends press F1 and type
client.connect your-public-ip:28015. This skips the browser entirely. - Match versions on wipe day. Rust has a forced update on the first Thursday of each month. The server updates first, so players briefly see "client update required" until Steam updates them. Modded (Oxide/uMod) servers must update Oxide too.
Common Rust connection errors
- Server not in the browser: the query port is closed, not set, or the same as the game port.
Disconnected: Connection attempt failed: try direct connect, verify game files, turn off VPNs and check the firewall.EAC: Disconnected/ Steam auth timeout: launch Rust from Steam (not the .exe), allow Easy Anti-Cheat through the firewall, and repair EAC.You are still connected to this server: your old slot is still reserved. Wait a minute or two and reconnect.
Keep admin ports private
RCON (TCP, default 28016) and Rust+ (TCP) are optional. RCON lets anyone with the password control the server, so restrict it to your own IP instead of forwarding it to the whole internet.
Test it from the outside
Your own Wi-Fi can't tell you whether friends can reach the server. The free Server Doctor check contacts your server once from the internet, the way the game does, and tells you the most likely cause. The same check runs in Discord with /fix.
No PC to host 24/7?
Rust servers use a lot of memory and your PC has to stay on through the wipe cycle. Behind CGNAT nobody can reach a home server at all. A rented Rust server comes with its own public IP and ports already open.
Related guides
- ARK: Survival Ascended server: friends can't join?
- Friends can't join your 7 Days to Die server?
- Friends can't join your CS2 server?
- Behind CGNAT? Host a game server without port forwarding.
- All guides
Sources: wiki.facepunch.com/rust/Creating-a-server · xgamingserver.com/blog/rust-connection-errors-fix/ · coalstack.net/docs/errors
Still stuck? Get free help from real people in our Discord
Post your game, where it runs and what the check said in #help-forum. Other server hosts and the Server Doctor team can take a look. Free.