Для начала, нужно написать правило для iptables, которое перенаправит трафик с сервера в программу․
Самый простой вариант это перенаправлять только A2S_INFO.
iptables -t nat -A PREROUTING -p udp -d SERVER_IP --dport SERVER_PORT -m string --algo kmp --string 'TSource Engine Query' -j REDIRECT --to-port CACHER_PORT
В примере нужно заменить SERVER_IP и SERVER_PORT на IP и порт вашего сервера, а CACHER_PORT заменить на порт утилиты․
Перейдем к следующему шагу, а именно запуску утилиты.
Код:
$ ./source_query_cacher --help
source_query_cacher 0.1.0
Alik Aslanyan <[email protected]>
USAGE:
source_query_cacher [OPTIONS] --list <list>...
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-c, --chunk-size <chunk_size> Number of servers to dispatched on the same thread. [default: 5]
-l, --list <list>... List of strings specified in "PROXY_IP:PORT SERVER_IP:PORT" format
-p, --update-period <update_period> Update period in milliseconds. [default: 1000]
Программе нужно указать периодичность обновления информация с сервера,
--update-period
. Оставим значение по умолчанию, а именно раз 1000 миллисекунд.
Значение
--chunk_size
, оставляем как есть, оно указывает количество серверов запущенных на одном потоке и не имеет значение для одного сервера․
Указываем лишь IP:PORT сервера и кэшера с помощью
--list
.
/source_query_cacher -l "SERVER_IP:CACHER_PORT SERVER_IP:SERVER_PORT"
.
Всё! Если интересно проследить за работой утилиты, можно посмотреть детальные логи установив переменную окружения
RUST_LOG=trace