前言
在被《不止游戏》安利后,一向对深海和未知充满向往的我很快入手了这款游戏。经过几天简单的试玩,有了想要组建服务器和其他人一起探险的想法。说干就干,笔者手里刚好有一台曾经部署过饥荒的云服务器,经过几个小时的调试和配置终于成功将服务器正式上线。这里要感谢吧友@冬绫的帖子,让我快速弄清楚了游戏的基本配置文件都有哪些,节省了我非常多的时间。如果有想一起玩的小伙伴,可以加我的服务器联机群: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 #服务器重启

接下来我们需要弄清楚影响游戏设置的几个配置文件。

  1. serversettings.xml
    该配置文件主要设置服务器基本参数,比如游戏风格、房间名称、房间密码等,以及其他在常规模式下无法设置的各种参数。参数详情见底部。如果不想深入研究各种参数,可以先在PC端上创建服务器并配置完成后,将该PC端上的配置文件直接下载并上传在服务器。在游戏根目录可以找到。

    在服务器里也是同理。

    右键删除-快速删除,然后右键点击上传,把PC端的配置文件上传进去就好啦!
  2. clientpermissions.xml
    该配置文件主要用来给每个加入服务器的玩家赋权。
    在PC上创建服务器并进入后,打开PC端上的游戏根目录
    (在steam里点浏览本地文件即可找到这个目录)
    找到Barotrauma Dedicated Server\Data\ clientpermissions.xml 文件。
    里面有ALL权限的标准配置代码。如果懒得研究,可以直接将文件复制上传到服务器的对应目录也是Date里,这样你自己的steam账号就是拥有所有的权限的服主了。

  3. 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环境部署全流程相关推荐

  1. 【原创】企业级Linux环境部署(很全、很细)

       [原创不易,转载请注明] <Linux环境部署手册> 企业级Linux环境部署过程,笔者独家整理提供!细到没朋友... 学废了要记得点赞.关注.收藏奥! 关于本文 本文着重详细说明在 ...

  2. 【潜渊症 | 万字解析】模组制作研究讲义

    潜渊症mod制作研究讲义 说明 作者:晓涵 Steam昵称:Xiao[CN] --荧惑守心研究院 最后编辑:2023.04.17 本文共计 17,000 字/词 (含代码),预计阅读时长 1min ~ ...

  3. 嵌入式Linux系统环境搭建全流程-4412友善之臂开发板

    4412友善之臂开发板-Linux系统环境搭建全流程 ​ 没错,这篇确实值得一看!可能是由于我稍微会一点点哈,就有好多小伙伴就找我帮他们搭建环境,但Linux中的以及开发版连接,与烧写程序中的整个环境 ...

  4. unreal ue4 PixelStreaming 局域网及公有云部署全流程记录

    PixelStreaming 局域网及公有云部署全流程记录 发表于 2020-04-10 |  更新于: 2020-04-20 |  分类于 Unreal Engine |  717 写在前面 本篇是 ...

  5. BERT模型从训练到部署全流程

    BERT模型从训练到部署全流程 Tag: BERT 训练 部署 缘起 在群里看到许多朋友在使用BERT模型,网上多数文章只提到了模型的训练方法,后面的生产部署及调用并没有说明. 这段时间使用BERT模 ...

  6. Linux 环境部署|Anaconda及Tensorflow

    Linux 环境部署|Anaconda及Tensorflow Linux系统python虚拟环境及HanLP部署(https://duanzhihua.blog.csdn.net/article/de ...

  7. (六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 常用命令总结

    因为在网上发现系统性.严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Ng ...

  8. (三)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Nginx环境搭建

    因为在网上发现系统性.严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Ng ...

  9. (四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合

    因为在网上发现系统性.严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Ng ...

最新文章

  1. 我爱我家 CIO 刘东颖:如何靠六大维度提升“数字化”能力?|鲸犀峰会
  2. java8 LocalDate 日期比较大小
  3. Cannot place PIO comp S on the proposed PIO site PB6C / F5 because the types of their IOLOGICs a...
  4. 无法为您重置MySQL密码_无法重置MySQL的root密码
  5. 用sniffer技术盗取电话银行密码
  6. 用例设计工具PICT — 输入组合覆盖
  7. Client访问Tomcat简单流程(Struts2)
  8. 8、TypeScript-解构赋值
  9. 微软测试新工具:让Windows 10和Android设备文件同步更方便
  10. 图像处理-自适应的二值化图像
  11. HtmlUnit实现人人网登陆
  12. 怎么防治计算机病毒,计算机病毒怎么防治
  13. 试喷一下今年的国家最高科学技术奖
  14. 我的世界丛林风景Mac动态壁纸
  15. 用nodejs实现httpserver服务
  16. Cloud Exchange已上线 Collis的公告
  17. MyBatis 入门 (二级缓存脏读)
  18. MyBatisPlus使用LambdaQueryWrapper时要注意防止出现“Didn‘t start with ‘is‘, ‘get‘ or ‘set‘“错误
  19. Stackoverflow使用
  20. python发送excel文件_如何在Python中使用Excel文件(xlsx)附件发送电子邮件

热门文章

  1. Vue--keep-alive--详解
  2. 和菜头-要相亲相爱,更要相互伤害
  3. 测试点赞功能。(抖音点赞,微信点赞)
  4. 控制用计算机论文,计算机在自动控制技术实践中的应用分析
  5. 新华社科普漫画刷屏:一分钟看懂区块链
  6. 上班第一天(4)--一个程序员的成长史(13)
  7. cplex小白感悟—前言
  8. codeforces 549F Yura and Developers(分治、启发式合并)
  9. Java -- 如何解决某些情况下,前台向后台传参时,alert 等敏感字符被和谐
  10. 想要30一朵花,这样做