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 withsource: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
Further Notes
For a compatible rcon client also written in Go consider checking out the Q3 Rcon package.