mirror of
https://github.com/onyx-and-iris/q3rcon-proxy.git
synced 2025-05-16 09:00:25 +01:00
70 lines
2.0 KiB
Markdown
70 lines
2.0 KiB
Markdown
# Q3 Rcon Proxy
|
|
|
|
A modification of [lilproxy][lilproxy_url] 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
|
|
|
|
```bash
|
|
#!/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][logging]).
|
|
|
|
Multiple rcon proxies may be configured by setting *--ports-mapping/Q3RCON_PORTS_MAPPING* like so:
|
|
|
|
```console
|
|
export Q3RCON_TARGET_PORTS="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][user_link] For writing [lilproxy][lilproxy_url].
|
|
|
|
[lilproxy_url]: https://github.com/dgparker/lilproxy
|
|
[user_link]: https://github.com/dgparker
|
|
|
|
### Further Notes
|
|
|
|
For a compatible rcon client also written in Go consider checking out the [Q3 Rcon][q3rcon] package.
|
|
|
|
[q3rcon]: https://github.com/onyx-and-iris/q3rcon
|
|
[logging]: https://github.com/onyx-and-iris/q3rcon-proxy/tree/dev?tab=readme-ov-file#logging |