2025-05-12 00:10:39 +00:00
2025-05-07 00:06:01 +01:00
2025-05-06 23:57:48 +01:00
2025-03-16 01:34:01 +00:00
2025-05-07 15:56:44 +01:00
2025-03-16 01:04:16 +00:00
2025-05-06 23:44:30 +01:00
2025-05-12 00:10:39 +00:00
2025-05-12 00:10:39 +00:00
2024-01-25 18:03:56 -06:00
2025-02-03 18:25:39 +00:00
2025-05-06 23:42:32 +01:00
2025-05-07 11:38:24 +01:00
2025-05-06 23:43:54 +01:00

Q3 Rcon Proxy

A modification of lilproxy that forwards only Q3 rcon/query packets. Useful for separating the rcon port from the game server port.

Why

Unfortunately the Q3Rcon engine ties the rcon port to the game servers public port used for client connections. This proxy will allow you to run rcon through a separate whitelisted port.

Use

Flags

#!/usr/bin/env bash

/usr/local/bin/q3rcon-proxy \
    --proxy-host=0.0.0.0 \
    --target-host=localhost \
    --ports-mapping=28961:28960 \
    --session-timeout=20 \
    --loglevel=debug

Environment Variables

Each of the flags has a corresponding environment variable:

  • Q3RCON_PROXY_HOST: The host the proxy server sits on.
  • Q3RCON_TARGET_HOST: The host the game servers sit on.
  • Q3RCON_PORTS_MAPPING: A mapping as a string with source:target pairs delimited by ;.
  • Q3RCON_SESSION_TIMEOUT: Timeout in seconds for each udp session.
  • Q3RCON_LOGLEVEL: The application's logging level (see Logging).

Multiple rcon proxies may be configured by setting --ports-mapping/Q3RCON_PORTS_MAPPING like so:

export Q3RCON_PORTS_MAPPING="20000:28960;20001:28961;20002:28962"

This would configure q3rcon-proxy to run 3 proxy servers listening on ports 20000, 20001 and 20002 that redirect rcon requests to game servers on ports 28960, 28961 and 28962 respectively.

Logging

Set the log level with environment variable Q3RCON_LOGLEVEL.

Acceptable values are:

  • trace
  • debug
  • info
  • warn
  • error
  • fatal
  • panic

If not set it will default to info.

Special Thanks

Dylan For writing lilproxy.

Further Notes

For a compatible rcon client also written in Go consider checking out the Q3 Rcon package.

Description
No description provided
Readme Apache-2.0 2.4 MiB
Languages
Go 89.4%
Makefile 6.2%
Dockerfile 4.4%