squad战术小队游戏服务器部署+简易面板部署 |
您所在的位置:网站首页 › 怎么用steamcmd开服 › squad战术小队游戏服务器部署+简易面板部署 |
部署环境 Centos7 部署参考文档:https://squad.fandom.com/wiki/Server_Installation/zh#Linux 安装steamcmd工具: curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -bash steamcmd.sh 系统环境配置: yum -y install screen glibc libstdc++ glibc.i686 libstdc++.i686 这里使用脚本的形式安装,创建文件夹并编辑以下脚本: [steam@cd3 ~]$ mkdir squad_server [steam@cd3 ~]$ cat squad_up.sh #!/bin/bash ./steamcmd.sh +login anonymous +force_install_dir squad_server +app_update 403240 validate +quit 运行脚本,等待安装完成: bash ./squad_up.sh 编辑启动脚本: #!/bin/bash /home/steam/squad_server/SquadGameServer.sh Port=6301 QueryPort=26301 FIXEDMAXPLAYERS=100 RANDOM=NONE 启动脚本即可运行服务器。 拓展内容: 配置文件描述: Admins.cfg # 权限组[管理员] Bans.cfg # 封禁玩家列表 License.cfg # 许可证 MapRotation.cfg # 地图循环列表 MOTD.cfg # 服务器介绍[每日消息] Rcon.cfg # 远程管理配置 RemoteAdminListHosts.cfg # 远程权限组[管理员]列表 RemoteBanListHosts.cfg # 远程封禁玩家列表 Server.cfg # 服务器配置 ServerMessages.cfg # 服务器循环[红字]公告 远程管理[Rcon]文件名:Rcon.cfg 如果您不想使用 远程管理[Rcon],请将密码 [Password=] 设置为空。 注意: 如果IP为 0.0.0.0,将自动绑定到默认的公网IP。 这里推荐一个远程管理工具:https://github.com/Tiiffi/mcrcon 安装方法: git clone https://github.com/Tiiffi/mcrcon cd mcrcon make && make install 使用方法: Option: -H Server address (default: localhost) -P Port (default: 25575) -p Rcon password -t Terminal mode -s Silent mode -c Disable colors -r Output raw packets -w Wait for specified duration (seconds) between each command (1 - 600s) -h Print usage -v Version information 针对squad的非交互式的使用方法: mcrcon -H 127.0.0.1 -P 21114 -p passwd -w 1 "AdminBroadcast 消息发送" ok 通过对脚本的编写,可实现一定自动化能力 参考命令(在本地运行): [root@cd3 mcrcon-master]# mcrcon -P 21114 -p passwd 配置文件参考文档:https://squad.fandom.com/wiki/Server_Configuration/zh 崩溃自动拉起脚本: #!/bin/bash source /home/steam/.bash_profile SD=`tail -10 /home/steam/squad_server/nohup.out|grep Shutdown|wc -l` if [ $SD -eq 1 ]; then kill `ps -ef|grep SquadGameServer |grep -v grep |awk '{print $2}'` fi sleep 5 SQ=`ps -ef | grep SquadGameServer | grep -v grep | grep steam | wc -l` if [ $SQ -ne 2 ]; then kill `ps -ef|grep SquadGameServer |grep -v grep |awk '{print $2}'` cd /home/steam/squad_server nohup bash ./start.sh > /home/steam/squad_server/nohup.out & fi 如果有其他会影响刷新日志的脚本,需要将其他脚本sleep数秒,此脚本在crontab中需要最高优先级,并且每分钟监控执行。 模组添加方法 参考如下,修改游戏更新脚本: #!/bin/bash ./steamcmd.sh +login anonymous +force_install_dir ./squad_server +app_update 403240 validate +quit ./steamcmd.sh +login anonymous +force_install_dir ./squad_server +workshop_download_item 393380 2934263749 +quit ./steamcmd.sh +login anonymous +force_install_dir ./squad_server +workshop_download_item 393380 2891780963 +quit ./steamcmd.sh +login anonymous +force_install_dir ./squad_server +workshop_download_item 393380 2421120620 +quit cp -rp /home/steam/squad_server/steamapps/workshop/content/393380/* /home/steam/squad_server/SquadGame/Plugins/Mods/ 运行后重新启动服务端即可。 认证服申请:http://master.joinsquad.com/dedicatedserverlicense 训练场不可用的解决方法 修改配置文件ExcludedLayers.cfg和ExcludedLevels.cfg 其中ExcludedLayers.cfg是用于禁止的地图精准匹配,ExcludedLevels.cfg则为模糊匹配,使用//注释即可。 地图循环失败的解决方法 检查SquadGame/ServerConfig/Server.cfg 配置项为以下参数 MapRotationMode=LayerList 循环地图会使用文件 SquadGame/ServerConfig/LayerRotation.cfg 简易控制面板部署 简易控制面板这里是通过CGI和RCON来实现的前后端交互能力 前台示例的html代码如下:
TDU-简易控制面板
立即切换地图
Anvil_RAAS_v4
BlackCoast_RAAS_v4
自助跳边 用户昵称:
游戏地图切换后台调用的CGI脚本示例: #!/bin/bash /usr/local/bin/mcrcon -P 21114 -p paswd -w 1 "AdminChangeLayer Anvil_RAAS_v4" ok 传参CGI脚本示例: #!/bin/bash USERNAME=`echo "$QUERY_STRING"|sed 's/username=//'` /usr/local/bin/mcrcon -P 21114 -p paswd -w 1 "AdminForceTeamChange $USERNAME" ok 利用CGI传参格式为:http://127.0.0.1:8088/cgi-bin/shell/参数1+参数2+参数3+... 注意,因自动UrlEncode编码转换问题,导致无法支持中文; 最终实现效果示例: 击杀查询是通过游戏日志输出的解析实现的 CGI部署 安装httpd: yum install -y httpd 修改配置: vim /etc/httpd/conf/httpd.conf 末尾添加内容: LoadModule cgi_module /usr/lib64/httpd/modules/mod_cgi.so LoadModule cgid_module /usr/lib64/httpd/modules/mod_cgid.so 修改内容:(注意路径)
AllowOverride None Options ExecCGI Order deny,allow Allow from all 取消注释: AddType text/html .shtml AddOutputFilter INCLUDES .shtml AddHandler cgi-script .cgi .sh //在其后添加.sh,使其支持此结尾的脚本 修改默认端口,防止与Nginx冲突: Listen 8088 启动httpd systemctl start httpd 在CGI目录下编写脚本: [root@cq html]# cd /var/www/cgi-bin/ 此处需注意权限问题,CGI目录下的脚本调用是使用的apache用户;需要根据自身需求修改权限。 需要了解的是CGI的环境参数,以方便后续在脚本中直接调用: 此处引用:https://blog.csdn.net/JOKER0707/article/details/101569780 echo SERVER_SOFTWARE = $SERVER_SOFTWARE #服务器软件 echo SERVER_NAME = $SERVER_NAME #服务器主机名 echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE #CGI版本 echo SERVER_PROTOCOL = $SERVER_PROTOCOL #通信使用的协议 echo SERVER_PORT = $SERVER_PORT #服务器的端口号 echo REQUEST_METHOD = $REQUEST_METHOD #请求方(GET/POST/PUT/DELETE..) echo HTTP_ACCEPT = $HTTP_ACCEPT #HTTP定义的浏览器能够接受的数据类型 echo SCRIPT_NAME = $SCRIPT_NAME #当前运行的脚本名称(包含路径) echo QUERY_STRING = $QUERY_STRING #地址栏中传的数据(get方式) echo REMOTE_ADDR = $REMOTE_ADDR #客户端的ip |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |