There is a moment every server operator eventually has. Something has gone wrong — a griefer is tearing through the map, a plugin has wedged itself, the round is stuck — and you are not at your desk. You are on a phone, on a train, nowhere near the machine. What you want is a way to reach into the running server and type a command at it, right now, without joining the game.
That is RCON. Remote console. It is one of the oldest and most useful pieces of game server infrastructure, and it is also one of the easiest to misconfigure into a total compromise of your box.
What it actually is
A dedicated game server, when you run it in a terminal, gives you a console. You can type commands into it: change the map, kick someone, reload the configuration, print the current player list. That console is how the server was always meant to be administered.
The problem is that the console lives wherever the server process lives. If the server is on a rented machine in a datacentre and you are at home, you do not have it. You could SSH in and attach to the session, but that gives whoever holds those credentials the whole operating system, which is far more than an admin needs and far more than you want to hand out.
RCON solves this by opening a network path to the console specifically. The server listens on a port, a client connects, authenticates with a password, and from then on can send console commands and read the output. It is the server console, delivered over the network, with nothing else attached.
The design has been around a long time. Valve's implementation for the Source engine is the most widely copied and is what most people mean by "the RCON protocol", but the idea appears in one form or another across almost every game that ships a dedicated server. Minecraft's implementation is deliberately compatible with the Source shape. Others invent their own. The concept is consistent even when the wire format is not.
Why it is not the same as being an admin in-game
This distinction trips people up, and it matters for security reasoning.
In-game admin systems — the ones provided by mods and plugins — work by recognising your player account and granting it elevated permissions inside the game. You join like anyone else, the server identifies you, and now your chat commands do things ordinary players cannot. Ban someone. Change the map. Teleport.
That system is tied to an identity. The server knows who you are, it can log actions against your name, and it can give different admins different powers. On a big Garry's Mod or Rust community, that granularity is the whole point — a junior moderator gets kick and mute, a senior one gets bans, only the owner gets anything that touches configuration.
RCON has none of that structure. RCON is not a person. It is a password that grants the console, and the console has no permission tiers. Anything the server itself can be told to do, an authenticated RCON connection can tell it to do. There is no "read-only RCON" and no per-command restriction in the base protocol.
The other difference is availability. In-game admin requires the game to be in a state where you can join and play. If the server is full, you may not get in. If something has gone badly wrong, you may not be able to connect at all. RCON works when the game is unplayable, which is exactly when you most need it.
So: in-game admin is a person with a role. RCON is a key to the machine's mouth. Treat them differently.
The shape of the protocol
Most implementations follow a similar pattern, and the Source design is representative enough to describe.
RCON runs over TCP, unlike the UDP status queries that server lists use to check whether you are online. That is a deliberate difference — commands need to arrive reliably and in order, whereas a dropped status ping can simply be retried.
A client connects and immediately sends an authentication packet containing the password. The server replies indicating success or failure. Once authenticated, the connection carries command packets: the client sends a string that would be valid at the console, the server executes it and sends back whatever the console printed. The session stays open until either side closes it.
The listener is usually on its own port, separate from both the game port and the query port that server lists read your status from. Whether it is enabled at all is typically controlled by a configuration setting, and in most server software it is off until you set a password.
That last detail is important and often misunderstood: on many servers, setting an RCON password is what turns RCON on. There is no separate enable switch. If you have set a password because it seemed like good hygiene, without meaning to use RCON, you may have opened a network service you are not monitoring.
What people use it for
The obvious use is emergency intervention, but that is a small fraction of real-world RCON traffic. The interesting uses are automated.
Restarts and scheduled maintenance. A cron job that connects, broadcasts a warning, waits, and issues a clean shutdown so the process manager restarts the server. Every well-run community has something like this, because unattended servers accumulate memory and drift.
Moderation from outside the game. Bans, kicks and mutes issued from a web panel, a mobile app, or a Discord channel. When someone reports a griefer at three in the morning, a moderator can act from their phone without launching the game.
Configuration reloads. Push a new config file, then tell the server to reload it, without dropping the players who are connected. Considerably better than a restart.
Scheduled announcements. Rotating messages about your rules, your website, your vote links. If you are running a voting system for rewards, the vote-listener that grants in-game items when someone votes on a list is almost always talking to your server over RCON.
Bot integrations. This is where most RCON connections live now. A Discord bot that shows who is online, lets moderators run commands from a channel, relays in-game chat, or posts alerts when the server empties out. Every one of those features is an RCON session held open somewhere.
Monitoring and metrics. Scripts that poll the console for player counts, performance figures and errors, feeding dashboards. Note that for simple population data you should be using the public status query rather than RCON, since the lightweight endpoint exists precisely for that and costs the server almost nothing. It is also the data server listings are judged on, so it is worth knowing which of your numbers come from where.
The pattern across all of these is that RCON is the automation surface. It is how software talks to your server. And that is precisely why the security story matters more than it first appears.
The security part, taken seriously
Here is the sentence to internalise: your RCON password is equivalent to control of the server.
Not partial control. Not moderation privileges. The console can typically change any configuration variable the server exposes, load and unload content, execute other configuration files, and on many games execute commands that reach outside the game process in ways the developers did not fully anticipate. On modded servers, the surface is larger still — plugin frameworks add console commands of their own, and some of those touch the filesystem or run scripts.
From there, an attacker with console access is often one step from the operating system, and from the operating system they have your other servers, your backups, and your players' data. People underestimate this because it feels like a game thing. It is not a game thing. It is a remote command execution endpoint with password authentication and no rate limit by default.
The plaintext problem
Older RCON implementations, including the widely copied Source design, do not encrypt anything. The password is sent in the clear on connection, and the commands and responses that follow are also in the clear.
Anyone positioned to observe traffic between your client and your server can read the password. That sounds like a spy-film scenario, but the realistic version is mundane: you are administering your server from a café, a hotel, a conference, or any network you do not control. It also covers the path between networks, which passes through infrastructure belonging to people you have never met.
The mitigation is straightforward — do not send RCON across the open internet in the clear. Tunnel it. An SSH tunnel or a VPN between you and the server turns a plaintext protocol into an encrypted one without changing anything on the game server side. Some newer games and some panels implement encrypted RCON variants natively; if yours does, use it.
Exposure to the whole internet
The default configuration on many servers binds RCON to all interfaces, meaning anything that can route to your machine can attempt to authenticate. Internet-wide scanners find these constantly. They are looking for common ports answering with recognisable protocol responses, and a game server's RCON listener is a distinctive fingerprint.
Once found, it gets guessed at. Brute-forcing a weak password over a protocol with no built-in attempt limiting is trivially automatable. There is no lockout, no delay, no alert. Just a script trying words until one works.
The fix is to not be reachable. Bind RCON to a local interface and reach it through an SSH tunnel. Or firewall the port to a specific allowlist of source addresses — your home connection, your panel's server, the machine your Discord bot runs on. Either way, the number of hosts on the internet that can even attempt authentication should be very small, ideally zero.
This matters doubly if you have any DDoS mitigation in place. Attackers who cannot take your server down with traffic will happily look for an administrative door instead, and the thinking behind protecting a small server from attack should extend to your management ports rather than stopping at the game port.
Password practice
The password is the entire security model, so treat it accordingly.
Make it long and random. This is not a password you type often — it lives in a config file and in your tooling — so there is no reason for it to be memorable. Generate it. Length matters more than character-class gymnastics against an offline-style guessing attack.
Never reuse it. Not across your servers, not from anything else you use. If you run several Counter-Strike 2 instances, each gets its own. A single compromise should not cascade. This is the mistake that turns one bad afternoon into losing an entire community's infrastructure.
Be careful where it ends up. RCON passwords have a habit of leaking sideways: pasted into a Discord channel to help a co-admin, committed to a repository along with a config file, left in a plaintext note, visible in a screenshot of a config editor, or shown in a process list on a shared machine when passed as a command-line argument. The password does not have to be brute-forced if someone can simply read it.
Rotate it when your admin team changes. When someone steps back from the community, they still have the password unless you change it. Most operators never do, which means the credential set of an active server includes everyone who has ever helped run it.
Watch for failed authentication attempts in your logs. Most server software logs them. A sudden run of failures from an address you do not recognise is somebody scanning you, and it should prompt you to check that the port is not as open as you thought.
Locking it down properly
Putting the practical guidance in one place, roughly in order of how much protection it buys:
Do not expose the port publicly. If RCON is only reachable over localhost or a private network, most of the threat model evaporates. Reach it through SSH, a VPN, or a tunnel.
If it must be reachable, restrict the source addresses at the firewall. An allowlist of a handful of IPs is enormously better than open, even if those addresses are dynamic and you have to update them occasionally.
Use a long random password, unique per server, stored somewhere you actually manage rather than scattered across chat history.
Encrypt the transport. SSH tunnel or VPN, unless your game offers a natively encrypted variant.
Disable RCON entirely if you do not use it. If your administration happens through in-game admin plugins and occasional SSH sessions, you do not need an extra network service listening. Clearing the password disables it on most software.
Log and review. Know when it authenticates and from where.
Keep the server software updated. RCON implementations have had bugs — parsing issues, authentication edge cases — and running current builds is part of the defence. This is a routine consideration if you run FiveM, where the server build changes frequently and each artifact update can shift behaviour, and equally so on Minecraft where the ecosystem moves fast.
When a control panel is the better answer
For a lot of operators, the honest advice is to not manage RCON yourself at all.
A web control panel — the kind most game hosts provide, or self-hosted equivalents — sits between you and the server. It holds the RCON connection internally, usually over a local network where plaintext does not matter, and gives you a web interface protected by proper account authentication.
What you get from that is everything RCON lacks. Individual user accounts instead of a shared password. Two-factor authentication. Per-user permissions, so a moderator can restart the server without being able to edit configuration files. An audit log showing who did what and when. Session expiry. Password resets that do not require editing a config file and restarting.
You also get a much better answer to the departing-admin problem. Removing someone's panel account is a click. Changing a shared RCON password means updating every bot, script and admin that used it.
A panel makes sense when you have more than one person administering, when your admins are not comfortable with SSH tunnels, when you run several servers, or when you want an audit trail. That covers most communities of any size, and it is why panel access is such a standard part of what you are paying for in server hosting costs.
Raw RCON stays the better tool when you are automating. Scripts, bots and integrations want a direct protocol connection, not a web UI, and a panel's own API is often just RCON with extra steps. The mature setup tends to be both: a panel for humans, a locked-down RCON path on a private network for machines.
One warning about panels. You are trusting the panel with your RCON credentials and often with filesystem access to your server. A panel with a weak account password, no two-factor, or an unpatched vulnerability is a worse exposure than the RCON port would have been, because it is a single point of compromise across everything it manages. Pick reputable software, keep it updated, and secure the panel accounts as carefully as you would have secured the console.
A short note on culture
The technical measures are the easy part. The recurring cause of compromised servers is social: passwords shared casually with people who seemed trustworthy at the time, credentials pasted into group chats, access granted for a one-off task and never revoked.
Communities are built on trust and that is a good thing, but the RCON password is not the place to express it. Give people the narrowest access that lets them do their job. In-game admin permissions for moderation. Panel accounts with appropriate scope for operations. The console password stays with the smallest possible number of people, and it changes when that group changes.
The operators who never have an incident are not the ones with the cleverest configuration. They are the ones who were boring and disciplined about who holds what, which is also, not coincidentally, the mindset that produces the well-run servers people actually stay on and that a browse through any server list will show you the results of.
Frequently asked questions
Is RCON the same as being an admin in the game? No. In-game admin is tied to your player identity and can be scoped — a moderator gets some powers, an owner gets more, and actions can be logged against names. RCON is a single password granting access to the server console, with no tiers and no identity. Anything the console can do, an authenticated RCON client can do.
Do I need RCON at all? Not necessarily. If you administer through in-game plugins and occasional direct access to the machine, you can leave it disabled. You need it when you want automation — scheduled restarts, Discord bots, vote listeners, web panels — since those all need a programmatic way to send console commands.
Is RCON encrypted? Usually not. The widely copied Source implementation sends the password and all subsequent traffic in plaintext, and many games that copied its shape inherited that. Some newer implementations and some panels do encrypt. Assume yours does not unless you have confirmed otherwise, and tunnel it through SSH or a VPN.
What happens if someone gets my RCON password? They have control of your game server. They can change any setting, load content, kick and ban everyone, and on many setups take steps toward compromising the underlying operating system. Treat the password as equivalent to server access, not as a moderation credential.
Should I open the RCON port on my firewall? Preferably not to the whole internet. Bind it locally and reach it through an SSH tunnel or VPN, or restrict it at the firewall to a short list of source addresses. Internet-wide scanners find exposed RCON ports routinely and brute-force them, because the protocol has no built-in rate limiting.
Can I use the same RCON password on several servers? You should not. Reuse means one compromise becomes all of them. Generate a separate long random password per server and store them somewhere you manage properly rather than in chat history.
Is a web panel safer than raw RCON? Generally yes for human administration, because it adds real accounts, two-factor authentication, per-user permissions and an audit trail — none of which RCON has. The caveat is that the panel becomes a single high-value target, so it needs strong account security and prompt updates. Automation still tends to use RCON directly on a private network.
Why does my server list status still work when RCON is broken, or vice versa? They are entirely separate systems. Status queries use a public read-only endpoint on the query port, typically over UDP, while RCON is an authenticated command channel on its own port over TCP. One failing tells you nothing about the other.
Common questions
- How can I disable RCON if I don't need it?
- Clearing the RCON password disables the service entirely on most game server software. Because setting a password is often what turns RCON on, leaving the password blank prevents the network service from opening an unmonitored listening port.
- Does RCON support setting up restricted permissions for moderators?
- No, RCON has no permission tiers or per-command restrictions in its base protocol. It is not tied to personal identities, meaning any client authenticated with the password gets complete access to issue any command the server console itself can run.
- How can I prevent my RCON password from being intercepted in plaintext?
- Tunnel the connection through an SSH tunnel or a VPN between you and the server to encrypt the transport. You can also use natively encrypted RCON variants if your specific game server or panel supports them.
Published · 14 min read