潜渊症LINUX环境部署全流程
前言
在被《不止游戏》安利后,一向对深海和未知充满向往的我很快入手了这款游戏。经过几天简单的试玩,有了想要组建服务器和其他人一起探险的想法。说干就干,笔者手里刚好有一台曾经部署过饥荒的云服务器,经过几个小时的调试和配置终于成功将服务器正式上线。这里要感谢吧友@冬绫的帖子,让我快速弄清楚了游戏的基本配置文件都有哪些,节省了我非常多的时间。如果有想一起玩的小伙伴,可以加我的服务器联机群:920493518。如果有不明白的,在群里我会指导大家如何部署服务器。
服务器的采购和配置
服务器的采购
首先你需要准备一台云服务器,笔者比较推荐阿里云、腾讯云、华为云这些比较大型的供应商,在能够保证服务器的安全性的同时还具有许多的扩展功能。
阿里云官网:阿里云-上云就上阿里云 (aliyun.com)
华为云官网:华为云-提供云计算服务 +智能,见未来-华为云 (huaweicloud.com)
腾讯云官网:腾讯云 - 产业智变 云启未来 (tencent.com)
笔者的服务器是在阿里云购买的,配置是4核心8G内存,系统为Centos7.9版本。这里就以阿里云为例,教大家如何购买服务器并进行阿里云控制台的配置。
首先你需要注册一个阿里云账号,在阿里云官网的右上角点击立即注册进入注册界面。注册账号并成功登录阿里云官网后,点击左上角的最新活动。在该页面的精选活动里,可以找到 “云服务器 精选特惠” 活动,新用户可以在里面挑选享受折扣价格的云服务器。或者在左上角的 产品→云服务器ESC→立刻购买 里选择自己想要的类型(没有折扣的服务器价格都太贵)。
笔者购买的是Esc计算型c5的云服务器(较为通用的类型),配置是4核8G,新用户是711元/年。因为考虑到会可能会用来搭建网站或者部署游戏服务器,故选择该类型。不同型号的云服务器提供的算力不同,这也会影响游戏服务器的实际运行情况,这里比较推荐ECS计算型的云服务器。如果只用来玩潜渊症不考虑其他游戏的话,根据预算可以购买其他价格较为便宜的型号,但是要保证核心和内存足够用。如果服务器常驻6个人以下可以选择2核4G的配置,6个人以上就需要4核8G了。这里建议Mod不要打过于复杂的,很容易导致游戏崩溃和内存不够用,特别是采用了2核4G配置的读者。
服务器的地域可以根据玩家群体的实际地理位置来选择,离的越近延迟越低,不过潜渊症这个游戏对网速的要求并没有那么高,如果服务器还想搭载其他游戏,可以在地域上酌情选择。服务器的系统选择Centos7.9,当然如果你更习惯用其他的Linux版本也没问题。
系统盘选择40G的高效云盘就行,8个人以下的服务器可以选择12M的专线带宽,8个人以上采用3M4M的带宽,笔者的服务器是4M带宽,理论最大可以支持16个人玩。
阿里云控制台配置
完成服务器的购买后,点击右上角的控制台,来到控制台首页,找到产品与服务→产品与服务列表→云服务器ESC,进入云服务ESC的控制台界面。
在地域栏选择你之前购买的地域,点击实例就可以看到你的服务器了。
为了准确的指导大家完成整个流程,同时也确保攻略的可复现性,我特地买了个最便宜的服务器把流程重新走了一遍。服务器购买后,需要安装阿里云监控插件,方便监测服务器数据。
等待插件安装完成,就可以在控制台观察到服务器的状态了。这个时候我们需要重置一下Liunx的ROOT账户密码,ROOT账户相当于windows系统的Administrator账号,密码的配置不能过于简单。
重新回到云服务器ESC控制台界面,在实例中点击管理进入实例详情界面。
点击重置实例密码进行密码重置, 重置结束后重启服务器,这样就可以直接通过SSH工具直接登录服务器了。做完这些,还需要到安全组里开放服务器的TCP 22、UDP 27015、UDP 27016号端口,其中TCP 22号端口是用于远程连接服务器的端口,另外两个则是潜渊症服务所需要的端口。
选择不同协议类型 (TCP/UDP) ,端口范围写端口号,授权对象写0.0.0.0/0(代表所有人),描述处可添加备注。如果对Linux的操作没有自信,可以在云服务器ESC控制台的快照栏,购买阿里云快照服务(9¥/年)。快照相当于我们玩游戏时的存档,可以在任意时间回退到服务器保存时的状态。在一些重要操作或是开始部署服务前进行快照保存,当误操作或者出现无法处理的BUG时可以选择回退,帮助我们更好的操作服务器。
服务器环境配置
我们需要下载一个SSH工具进行服务器登录,在这里我推荐FinalShell。他有可视化的界面让你便捷的上传下载文件,同时还能监控服务器的状态。
下载地址:
FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本3.9.2,更新时间2021.6.28 - SSH工具 客户端 (hostbuf.com)
打开FinalShell,配置ROOT账号登录凭证用于下次快速登录服务器。
名称填写账户的名称(ROOT),主机填写你服务器的公网IP地址(在云服务控制台可以看到)。用户名填写ROOT,密码填写刚刚设置的ROOT密码。
设置完成后就可以一键登录服务器了。
部署流程
利用linuxGSM部署服务器
LinuxGSM是一个命令行工具,用于快速简单的部署和管理你的专用游戏服务器。他集成了SteamCMD,让你无需额外下载和管理游戏更新。通过LinuxGSM的控制台即可完成服务器的更新、启动和维护。在开始安装游戏之前我们首先需要解决LinuxGSM和游戏的依赖问题,复制以下代码进行下载。
Centos下的命令:
yum -y update #软件包源列表更新,确保能够找到对应的下载链接
yum -y install curl wget tar bzip2 gzip unzip python3 binutils bc jq tmux glibc.i686 libstdc++ libstdc++.i686 libicu cpio file hostname #安装以下软件包
yum -y install epel-release #安装软件包
yum -y install nmap-ncat #安装软件包
准备好部署所需要的环境后,首先创建一个用来挂载服务器的账号(不能用ROOT用户,不安全)。如果创建账号错了,用ROOT账号输入 “userdel -r 账号名称” 可以彻底删掉用户。
useradd btserver #创建一个名为btserver的账号
passwd btserver #更改账户的密码
在FinalShell,配置btserver账号的登录凭证用于下次快速登录服务器,之后服务器的运维和操作基本都是由btserver账号完成,方法和之前配置ROOT账号的一致。
重新登录后,切换至家目录准备开始安装
cd ~ #切换至当前账号的家目录
下载并安装LinuxGSM
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh btserver
开始游戏服务器的安装。首次安装可能会不成功,这是因为程序会检查缺失的文件或者配置进行自动生成,等待进程结束后,重复输入以下指令再次安装即可。
./btserver install #安装潜渊症游戏服务器
当显示以下内容的时候,代表LinuxGSM正式启动,接下来等待游戏安装完成即可。
等安装完成后,我们可以看到根目录里多出了一个叫做serverfiles的文件夹。
潜渊症的游戏文件就存放于此,默认路径就是家目录下的serverfiles(直译过来就是服务器文件夹)
路径为:~/serverfiles ( “~”在linux里是一个变量,代表着当前用户的家目录)
真路径为:/home/btserver/serverfiles
调试游戏配置文件
在开始进行服务器的配置之前,需要先启动一次服务器,以便生成我们需要的配置文件。
./btserver start #服务器启动
./btserver stop #服务器关闭
./btserver restart #服务器重启
接下来我们需要弄清楚影响游戏设置的几个配置文件。
- serversettings.xml
该配置文件主要设置服务器基本参数,比如游戏风格、房间名称、房间密码等,以及其他在常规模式下无法设置的各种参数。参数详情见底部。如果不想深入研究各种参数,可以先在PC端上创建服务器并配置完成后,将该PC端上的配置文件直接下载并上传在服务器。在游戏根目录可以找到。
在服务器里也是同理。
右键删除-快速删除,然后右键点击上传,把PC端的配置文件上传进去就好啦! - clientpermissions.xml
该配置文件主要用来给每个加入服务器的玩家赋权。
在PC上创建服务器并进入后,打开PC端上的游戏根目录
(在steam里点浏览本地文件即可找到这个目录)
找到Barotrauma Dedicated Server\Data\ clientpermissions.xml 文件。
里面有ALL权限的标准配置代码。如果懒得研究,可以直接将文件复制上传到服务器的对应目录也是Date里,这样你自己的steam账号就是拥有所有的权限的服主了。
- config_player.xml
该配置文件可以决定游戏中NPC说话的字幕选择和MOD开启的情况。一般我们可以先在创意工坊中订阅想要添加的MOD,然后重新进入游戏,并在PC端的游戏设置里将MOD一一应用。在游戏根目录里的Barotrauma Dedicated Server\Mods里,可以找到你下载的全部MOD。
将MOD压缩成ZIP格式的文件后,上传至服务器游戏文件的/Mods文件夹,再将其解压即可。
除了ExampleMod和info.txt,将其他的文件用zip格式打包,并命名为Mods,记得一定是zip格式,然后来到服务器的Mods文件夹,右键上传即可。
然后输入代码进行解压 就完成了。
cd ~/serverfiles/Mods/
unzip Mods.zip
如果游戏更新了,我们可以通过输入以下代码来进行游戏更新。
cd ~
./btserver update #更新LinuxGSM
./btserver force-update #潜渊症游戏更新(会覆盖掉之前serversettings.xml文件,更新前记得备份配置文件serversettings.xml,更新后替换即可)
我想要更精细的服务器配置!
如果你不满足于游戏的默认设置,想要更符合你风格的服务器设置。那么以下这份配置文件解读可以很好的帮助你。
serversettings.xml
<?xml version="1.0" encoding="utf-8"?>
<serversettings
name=“Nyatelathop QQ群920493518 难度20%” //服务器名字
public=“true” //公有私有服务器 true-false
password="" //服务器进入密码
port=“27015” //服务器登录端口
queryport=“27016” //服务器查询端口
playstyle=“Serious” //服务器游戏风格 Serious=严肃 Casual=休闲 Roleplay=角色扮演 Rampage=暴乱 SomethingDifferent=mod服
maxplayers=“16” //服务器最大玩家人数
enableupnp=“false” //开启upnp转发
autorestart=“true” //自动重新开始
LevelDifficulty=“100” //游戏难度百分比
AllowedRandomMissionTypes=“Random,Salvage,Monster,Cargo,Combat” //允许的随机任务类型
AllowedClientNameChars=“32-33,38-46,48-57,65-90,91-91,93-93,95-122,192-255,384-591,1024-1279,19968-40959,13312-19903,131072-15043983,15043985-173791,173824-178207,178208-183983,63744-64255,194560-195103” //设置玩家姓名中允许的字符编码
ServerMessage=“欢迎来到奈亚服务器,想搭建Linux专用服务器请进Q群920493518” //进入服务器消息提示
tickrate=“20” //设置服务器的时钟频率
randomizeseed=“True” //随机化
userespawnshuttle=“True” //用户生成穿梭机
respawninterval=“300” //复活时间
maxtransporttime=“180” //设置重生的停靠潜水艇时长
minrespawnratio=“0.2” //最小复活时间
autorestartinterval=“60” //自动重新启动间隔
startwhenclientsready=“False” //玩家准备好就开始
startwhenclientsreadyratio=“0.8” //玩家准备就绪比例开始
allowspectating=“True” //允许观察
saveserverlogs=“True” //保存服务器日志
allowragdollbutton=“True” //允许碎布玩偶按钮
allowfiletransfers=“True” //允许文件传输
voicechatenabled=“True” //语音聊天已启用
allowvotekick=“True” //允许投票
allowendvoting=“True” //允许结束投票
allowrespawn=“True” //允许重生
botcount=“0” //机器人数量
maxbotcount=“16” //最大机器人
botspawnmode=“Normal” //机器人生成模式 Normal = 正常 Fill=补充玩家空缺
allowdisguises=“True” //允许玩家通过其他身份来伪装自己
allowrewiring=“True” //允许玩家重新布线
allowfriendlyfire=“True” //允许友军开火
traitorsenabled=“No” //是否开启叛徒 yes = 有 no=没有 maybe=可能有
subselectionmode=“Random” //潜艇选择 Manual=手动 Random=随机 Vote=投票
modeselectionmode=“Random” //游戏模式 Manual=手动 Random=随机 Vote=投票
endvoterequiredratio=“0.6” //最终投票人比例
kickvoterequiredratio=“0.6” //踢人投票率
killdisconnectedtime=“120” //终止断开连接的时间
kickafktime=“600” //踢出挂机人时间
traitoruseratio=“True” //叛徒玩家
traitorratio=“0.2” //叛徒比率
karmaenabled=“True” //因果报应开启 - 在有叛徒模式下才能体现此系统的作用
karmapreset=“default” //恶报预设 default= 默认 strict=严格 custom=自定义
gamemodeidentifier=“sandbox” //游戏模式标识符 Sandbox=沙盒 Mission=任务 Campaign=战役
missiontype=“all” //任务类型 Salvage=打捞 Monster=怪物 Cargo=货物 Combat=战斗 Random=随机 all=全部
autobantime=“3600” //投票禁止玩家自动禁止时间
maxautobantime=“86400” //最大自动禁止时间
具体参数含义如上所见,可以根据自己的需要更改。
潜渊症LINUX环境部署全流程相关推荐
- 【原创】企业级Linux环境部署(很全、很细)
[原创不易,转载请注明] <Linux环境部署手册> 企业级Linux环境部署过程,笔者独家整理提供!细到没朋友... 学废了要记得点赞.关注.收藏奥! 关于本文 本文着重详细说明在 ...
- 【潜渊症 | 万字解析】模组制作研究讲义
潜渊症mod制作研究讲义 说明 作者:晓涵 Steam昵称:Xiao[CN] --荧惑守心研究院 最后编辑:2023.04.17 本文共计 17,000 字/词 (含代码),预计阅读时长 1min ~ ...
- 嵌入式Linux系统环境搭建全流程-4412友善之臂开发板
4412友善之臂开发板-Linux系统环境搭建全流程 没错,这篇确实值得一看!可能是由于我稍微会一点点哈,就有好多小伙伴就找我帮他们搭建环境,但Linux中的以及开发版连接,与烧写程序中的整个环境 ...
- unreal ue4 PixelStreaming 局域网及公有云部署全流程记录
PixelStreaming 局域网及公有云部署全流程记录 发表于 2020-04-10 | 更新于: 2020-04-20 | 分类于 Unreal Engine | 717 写在前面 本篇是 ...
- BERT模型从训练到部署全流程
BERT模型从训练到部署全流程 Tag: BERT 训练 部署 缘起 在群里看到许多朋友在使用BERT模型,网上多数文章只提到了模型的训练方法,后面的生产部署及调用并没有说明. 这段时间使用BERT模 ...
- Linux 环境部署|Anaconda及Tensorflow
Linux 环境部署|Anaconda及Tensorflow Linux系统python虚拟环境及HanLP部署(https://duanzhihua.blog.csdn.net/article/de ...
- (六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 常用命令总结
因为在网上发现系统性.严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Ng ...
- (三)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Nginx环境搭建
因为在网上发现系统性.严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Ng ...
- (四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合
因为在网上发现系统性.严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Ng ...
最新文章
- 我爱我家 CIO 刘东颖:如何靠六大维度提升“数字化”能力?|鲸犀峰会
- java8 LocalDate 日期比较大小
- Cannot place PIO comp S on the proposed PIO site PB6C / F5 because the types of their IOLOGICs a...
- 无法为您重置MySQL密码_无法重置MySQL的root密码
- 用sniffer技术盗取电话银行密码
- 用例设计工具PICT — 输入组合覆盖
- Client访问Tomcat简单流程(Struts2)
- 8、TypeScript-解构赋值
- 微软测试新工具:让Windows 10和Android设备文件同步更方便
- 图像处理-自适应的二值化图像
- HtmlUnit实现人人网登陆
- 怎么防治计算机病毒,计算机病毒怎么防治
- 试喷一下今年的国家最高科学技术奖
- 我的世界丛林风景Mac动态壁纸
- 用nodejs实现httpserver服务
- Cloud Exchange已上线 Collis的公告
- MyBatis 入门 (二级缓存脏读)
- MyBatisPlus使用LambdaQueryWrapper时要注意防止出现“Didn‘t start with ‘is‘, ‘get‘ or ‘set‘“错误
- Stackoverflow使用
- python发送excel文件_如何在Python中使用Excel文件(xlsx)附件发送电子邮件