静看光阴荏苒
不管不顾不问不说也不念

Debian11搭建Rust服务器

记录一下rust游戏服务器的搭建,包括oxide插件平台的安装及配置。

系统务必使用debian11,机器配置建议用独立服务器,vps的话最低6g内存起步,配置低了是肯定跑不起来的。

首先来安装steamcmd,这里需要注意的是steamcmd这个软件包不在debian存储库的main分类内,要启用存储库的non-free分类才能安装到,所以这里先编辑存储库的配置文件:

apt edit-sources

加入non-free标志:

deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free

deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free

deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

然后再启用系统多架构的支持:

dpkg --add-architecture i386

现在就可以安装steamcmd了,这里顺带把后续需要用到的软件一并安装了:

apt -y update
apt -y install steamcmd curl unzip tmux

安装完成之后,新建一个名为steam的用户:

useradd -m -s /bin/bash steam

修改这个用户的密码:

passwd steam

然后直接切到这个用户下:

su - steam

做一个软连接,方便使用:

ln -s /usr/games/steamcmd steamcmd

执行下面的命令启动steamcmd:

steamcmd

在steamcmd的cli内执行如下命令指定游戏安装的目录:

force_install_dir ./rust_server/

在steamcmd的cli内执行如下命令登录匿名用户(用于下载游戏服务端文件)

login anonymous

在steamcmd的cli内执行如下命令开始下载并安装游戏服务端:

app_update 258550 validate

安装完成之后执行如下命令退出steamcmd:

quit

我们的游戏服务端安装在如下路径:

/home/steam/.local/share/Steam/steamcmd/rust_server

现在来安装oxide,下载oxide的压缩包:

curl -L https://umod.org/games/rust/download/develop -o oxide.zip

直接将压缩包内的文件解压到对应的路径即可,注意这里是覆盖解压,会替换掉原服务端的某些文件:

unzip -o oxide.zip -d /home/steam/.local/share/Steam/steamcmd/rust_server

现在先启动一次服务器,进入到如下目录:

cd /home/steam/.local/share/Steam/steamcmd/rust_server

执行下面的命令启动服务器:

./RustDedicated -batchmode \
-server.ip 0.0.0.0 \
-server.port 28015 \
-server.hostname "imlala test server" \
-server.url "https://lala.im" \
-server.maxplayers 200 \
-server.worldsize 5000 \
-server.seed 793197 \
-server.tickrate 10 \
-server.saveinterval 300 \
-rcon.ip 0.0.0.0 \
-rcon.port 28016 \
-rcon.web 1 \
-rcon.password "password"

oxide会在这次服务器启动的时候初始化。等待服务端启动完成后,按ctrl+c退出。

如果正常的话,在当前目录会多出一个Compiler.x86_x64的文件和一个oxide的目录:

现在就可以尝试来安装插件了,比如说现在我要装一个:https://umod.org/plugins/gather-manager

直接下载网页上的cs文件到对应的目录即可:

curl -L https://umod.org/plugins/GatherManager.cs -o /home/steam/.local/share/Steam/steamcmd/rust_server/oxide/plugins/GatherManager.cs

再次启动服务器:

./RustDedicated -batchmode \
-server.ip 0.0.0.0 \
-server.port 28015 \
-server.hostname "imlala test server" \
-server.url "https://lala.im" \
-server.maxplayers 200 \
-server.worldsize 5000 \
-server.seed 793197 \
-server.tickrate 10 \
-server.saveinterval 300 \
-rcon.ip 0.0.0.0 \
-rcon.port 28016 \
-rcon.web 1 \
-rcon.password "password"

等待服务端启动完成后,按ctrl+c退出。现在我们看一下oxide目录下面的结构:

在这次服务器启动后,oxide加载的gather-manager插件生效了,会在config目录下生成gather-manager插件的配置文件,如果后续你要修改gather-manager插件的配置,那么编辑GatherManager.json这个文件即可。

现在来了解一下rust服务器的配置文件和配置方法。

还是先启动服务器,但是这一次启动,我们可以使用tmux将其放在后台运行,这样ssh断开后服务器依旧在运行。

先新建一个tmux会话:

tmux new -s rust

然后和之前一样启动服务器:

./RustDedicated -batchmode \
-server.ip 0.0.0.0 \
-server.port 28015 \
-server.hostname "imlala test server" \
-server.url "https://lala.im" \
-server.maxplayers 200 \
-server.worldsize 5000 \
-server.seed 793197 \
-server.tickrate 10 \
-server.saveinterval 300 \
-rcon.ip 0.0.0.0 \
-rcon.port 28016 \
-rcon.web 1 \
-rcon.password "password"

现在你可以按ctrl+b再按d分离出tmux会话。

查看tmux会话:

tmux ls

等到你需要回到之前的tmux会话中时:

tmux attach -t rust

杀掉会话:

tmux kill-session -t rust

rust服务器有效的配置方法大致可以分为3种。第一种就是上面已经用到的,在启动的时候直接将参数带上去,比如之前用到的这些:

-server.ip 0.0.0.0 // 服务器监听的IP
-server.port 28015 // 服务器监听的端口
-server.hostname "imlala test server" // 服务器名
-server.url "https://lala.im" // 服务器的网址,可选配置
-server.maxplayers 200 // 服务器最大玩家数
-server.worldsize 5000 // 设置地图大小,最小3000,最大6000
-server.seed 793197 // 设置种子,种子决定了地图生成的形状
-server.tickrate 10 // 服务器每秒更新游戏状态的频率
-server.saveinterval 300 // 服务器自动保存间隔,单位秒
-rcon.ip 0.0.0.0 // 管理员接口监听的IP
-rcon.port 28016 // 管理员接口监听的端口
-rcon.web 1 // 启用websocket,结合rustadmin里面的webrcon使用
-rcon.password "password" // 设置管理员密码

需要注意的是,不是所有的参数都能以这种形式去配置,有些参数用这种方式配置是不能生效的。建议在启动的时候只配置必须用到的启动参数,其他无关的参数不要在这里配置。

在这里列出了所有可配置参数:https://developer.valvesoftware.com/wiki/Rust_Dedicated_Server

另一种就是使用rustadmin,首先去这里下载软件:https://www.rustadmin.com

打开软件,按照下图来配置:

软件的左下角提示连接成功后就可以开始用rustadmin来管理服务器了。

现在你可以借助rustadmin来执行命令将自己的游戏角色设置成服主(管理员)。

在玩家列表找到自己的账号,复制steamid:

在控制台执行如下命令设置管理员:

ownerid 你的steamid "imlala"

如图所示:

需要注意的是,在rustadmin做出的任何配置或者改动,都需要你执行下面的命令去保存,否则服务器重启后会还原:

server.writecfg

如图所示:

通过rustadmin保存的配置,存储在serverauto.cfg文件内:

/home/steam/.local/share/Steam/steamcmd/rust_server/server/my_server_identity/cfg/serverauto.cfg

有一个例外是管理员的配置,存储在users.cfg文件内:

/home/steam/.local/share/Steam/steamcmd/rust_server/server/my_server_identity/cfg/users.cfg

你也可以自己新建一个名为server.cfg的配置文件,将配置写入到这个文件内,直接写到这个文件内的配置是不需要手动保存的,服务器启动的时候会自动加载:

nano /home/steam/.local/share/Steam/steamcmd/rust_server/server/my_server_identity/cfg/server.cfg

比如我要设置服务器的描述和横幅图片:

server.description "test server by imlala\nblog:https://lala.im"
server.headerimage "https://233.fi/images/2022/05/16/00dec9f0469d0d52cefabc166fe219e4.png"

这里要注意的是自己新建的server.cfg不要和serverauto.cfg内的配置有相同的条目,以免出现一些问题。

最后一种就是通过游戏内的控制台,前提是你已经是这个服务器的服主(管理员)

在之前我们已经通过rustadmin完成了管理员的设置,所以当我进到游戏后按F1打开控制台,是可以直接修改服务器配置的。

比如我要设置服务器的tag:

server.tags "weekly"

同样的,在控制台做出的任何配置或者改动,都需要执行下面的命令去保存:

server.writecfg

通过控制台保存的配置也存储在serverauto.cfg文件内:

/home/steam/.local/share/Steam/steamcmd/rust_server/server/my_server_identity/cfg/serverauto.cfg

可以简单验证一下,在游戏控制台保存了配置后,服务器的serverauto.cfg文件内就会出现相应的配置:

最后简单介绍一下之前安装的gather-manager插件:

赞(10)
未经允许不得转载:荒岛 » Debian11搭建Rust服务器
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿