A query port that answers everyone
Rust answers Steam's server queries on a port you set with +server.queryport. It has to answer strangers, or the server disappears from the in-game list.
Rust is covered by a port preset, not a protocol validator. The preset opens the game port and RCON with a packet ceiling on the game port, and every packet still passes the address and transport checks and the behavioural engines. Prism does not read the Rust protocol itself, and this page says exactly what that means.
| Port | What it carries | Exposure | In the preset |
|---|---|---|---|
| UDP 28015 | Game traffic, set with +server.port. | Open to players | Yes |
| UDP You set it | Steam server queries, set with +server.queryport. It has no fixed default. | Open only if you use it | Add it yourself |
| TCP 28016 | RCON, set with +rcon.port. | Restrict to your own addresses | Yes |
| TCP You set it | Rust+ companion app, set with +app.port, only if you use it. | Open only if you use it | Add it yourself |
A rule is TCP or UDP, never both.
These are the surfaces the guide does describe.
Rust answers Steam's server queries on a port you set with +server.queryport. It has to answer strangers, or the server disappears from the in-game list.
Admin tools, Discord bots and web panels talk to the server over RCON on TCP 28016. Treat it like SSH: a long password, and the port restricted to the addresses that need it.
Facepunch forces a wipe on the first Thursday of each month and population is a sawtooth. If your server is going to fall over, that is when, attack or not.
The diagram stops where the checking stops.
Blocked sources and structurally malformed packets end here, at the lowest cost, exactly as on every other port.
Spoofed and stateless floods are separated from traffic belonging to a real conversation, and the packet-rate ceilings on each rule apply. The preset ships UDP 28015 with a whole-port ceiling; TCP 28016 has none until you set one.
Learns the payload pattern of an in-progress attack and blocks it, without a rule being written first. It needs no validator.
SYNs whose TCP stack fingerprint looks forged are dropped on the RCON rule.
Timing regularity, reputation and tier demotion judge how a source behaves rather than what its payload says, which is why they work on a port with no validator.
No validator ships for Rust. On a Rust rule the Protocol validation (L7) switch renders dim and reads "This service has no protocol validator. No effect on this one." A flood that uses the right port, stays under your ceilings and looks like nothing the behavioural engines recognise can reach your server.
Checked on every Rust ruleNot checked
One click writes UDP 28015 for the game and TCP 28016 for RCON. The query port and Rust+ are not part of the preset, so add those as rules of your own. A preset that did not open your query port is behaving correctly.
Applying a preset adds its rules, it never replaces yours, and applying it twice adds a second copy. A server holds 15 inbound rules, so check the table afterwards.
| Protocol | Port | Policy | Status |
|---|---|---|---|
| UDP | 28015 | 30K pps | Enabled |
| TCP | 28016 | No extra limits | Enabled |
Quick setup: apply a preset for a common workload
The preset opens TCP 28016 so your tools can reach it. Edit that rule to allow only the addresses your panel and bots connect from.
Read the guideA guessed RCON password arrives as a valid login on a port you opened. A long, unshared password and a restricted port close that; Prism cannot.
Read the guideRust is one of the heaviest games you can self-host. Memory scales with map size, player count and the entities players place, so a server that fits on wipe day can be a very different machine two weeks later. The main loop is largely single-threaded.
One busy server. Memory is what Rust runs out of first, and it climbs through each wipe as players build. Start with headroom and check the RustDedicated process at the end of a cycle.
A server that must never share a core. The main loop is largely single-threaded, so one fast core does more than several slow ones, and here that core is never shared. Check its memory against your end-of-wipe figure first: memory is the limit Rust hits first.
Our Rust guide gives no memory figure, because there is no fixed one. Size for the end of a wipe cycle, not the start: watch the resident memory of RustDedicated across a full cycle, then pick the plan whose memory sits above it. A smaller map and a lower player cap are the two knobs that cut the load directly.
docs.clouduxe.com/game-servers/rust-overview
docs.clouduxe.com/game-servers/rust-install
docs.clouduxe.com/game-servers/rust-wipes
docs.clouduxe.com/game-servers/game-server-ports
docs.clouduxe.com/ddos-protection/game-presets
What every Rust server on Clouduxe starts with.
No. Rust has a port preset, not a protocol validator. Its rules get the layer 3 and layer 4 checks, your packet-rate ceilings, the zero-day signature engine on UDP and the behavioural engines. The Protocol validation switch has no effect on a Rust rule.
No. The same filter and the same upstream capacity protect every plan in every region.
UDP 28015 for the game, a UDP query port you set with +server.queryport, and TCP 28016 for RCON. Rust+ needs its own TCP port only if you use it.
The query port your server uses is not the one you opened. Set +server.queryport explicitly in your start script and add a rule for that exact port.
No. Restrict it to the addresses your panel and bots connect from, on the rule and on the server firewall, and use a long password you use nowhere else.
The one closest to your players: Mumbai for India, Singapore for Southeast Asia, Limburg for Europe. Protection is identical in all three.
The same 17 Tbps upstream and the same filter on every plan, in every region, enabled from the first boot.