如何部署sqproxy服务

如何部署sqproxy服务(一)

作者

隔壁老韩

一位Squad游戏玩家

目前从事于游戏客户端开发,担任UE开发工程师

一、前言

近日有Squad服主找到我称,希望能够通过技术手段实现修改Squad服务器在游戏大厅列表中显示的信息

包括延迟、游戏人数、甚至于游戏内TPS等。

我从事于游戏客户端开发,对于此技术并不了解。随后其向我推荐了sqproxy并希望我帮忙研究一下部署方式。我研究了一下sqproxy,并成功使其运行起来。这里仅介绍sqproxy的部署方式,对于其是否能够修改状态信息、其运行原理、以及其中的重定向参数设置如何设置,我这里不做验证。

由于sqproxy是一个开源软件,并且中文互联网上近乎没有帮助文档,所以对sqproxy的部署过程做一个简单讲解。由于本人并非从事网络工程师,对于原理及技术用语一知半解,可能有些自造词,看官勿怪。

有空再去研究一下具体的参数配置表,届时我会将其介绍放在文章二中。先鸽了~~~


二、介绍

sqproxy是一个用来给某些包体响应自动重定向的工具

至少看起来是这样的,比如A2S包体

功能实现上看起来似乎是修改并缓存响应包体

不清楚,没时间看源码,有大佬可以给补充一下

github网址: https://github.com/sqproxy/sqproxy

1.环境

sqproxy仅能运行于Linux环境下

以下以阿里云下默认Centos为例

Python3.8.1

我一开始用的311没跑出来

需要gcc环境

2.准备工作

一台Linux机器,root权限

github上有作者对于其在非root环境下运行的方法介绍,这里不做赘述


三、开始

1.连接到目标服务器

我这里用的ssh,win10以上默认集成ssh,相对来说比较方便

2.跳转到

/usr/local/src

个人习惯,存到一个自己能找得到的地方就可以了

3.下载Python3.8.1包体

wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz

阿里云Centos默认集成Py3.6,这个版本是不够的,需要自己下载高版本

4.解压Python3.8.1

tar -xzvf Python-3.8.1.tgz

5.进入解压目录

cd ./Python-3.8.1

6.生成

./configure --prefix=/usr/local/python3.8

后面的--prefix=/usr/local/python3.8指的是设定Python的安装路径

7.编译并安装

make && make install

8.将新下载的Python3.8.1指定为默认python3指向

ln /usr/local/python3.8/bin/python3 /usr/bin/python3

加环境变量,这一步可做可不做

若提示python3已经存在那么就mv /usr/bin/python3 /usr/bin/python3.bak然后再添加

9.将系统默认的pip3指向新下载的python3.8.1的pip3

ln /usr/local/python3.8/bin/pip3.8 /usr/bin/pip3

10.使用pip安装sqproxypip3

install source-query-proxy==2.1.2

这里一定是2.1.2版本的,找不到对应版本或者仅能找到0.15.0版本,说明你使用的Python版本低于3.7

如果提示你的pip版本过低,仅有8.1,说明使用的pip版本没有指向Python3.8

11.找到刚刚设置的Python3.8安装目录

cd /usr/local/python3.8/bin

这里运行ll应当可以看到一个文件叫sqproxy

可以将其添加到环境变量以方便运行

ln ./sqproxy /usr/bin/sqproxy

下面的教程默认这里已经添加了环境变量

12.配置参数文件,sqproxy会从以下两个目录/etc/sqproxy/conf.d ./conf.d中查找配置文件,具体参

数作用请参考作者的example,本人没有研究

参数文件一共四个,似乎都不可缺少

00-globals.yaml 01-dummy-game.yaml 02-hlds-game.yaml dummy_hlds_entrypoint.py

具体设置参考官方GitHubexample/conf.d/

13.随后即可运行sqproxy

sqproxy run

也可以通过运行系统服务的方式启动,具体请参考官方GitHub

三、问题

部署过程中遇到的几个问题

  1. 缺少Ctype

    pip install Cython

  2. 缺少openssl或者缺少zlib

    wget http://www.openssl.org/source/openssl-3.0.8.tar.gz

    如果提示无法验证

    wget http://www.openssl.org/source/openssl-3.0.8.tar.gz --no-check-certificate

    openssl安装与Python没有区别,只需要暴露出zlib库即可

    ./config --prefix=$HOME/openssl shared zlib

    随后安装Python时添加参数

    ./configure --prefix=/usr/local/python3 --with-ssl

  3. 缺少libffi

    yum install -y libffi-devel

  4. 缺少编译器

    yum install -y gcc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值