侧边栏壁纸
  • 累计撰写 16 篇文章
  • 累计创建 30 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

饥荒服务器搭建(Ubuntu)

Cook
2025-01-03 / 0 评论 / 0 点赞 / 53 阅读 / 0 字

参考文档:博客园

背景

笔记本性能不够,既要运行客户端,还要运行服务器,有点扛不住,内存只有16g,所以nas上开了个虚拟机来运行饥荒服务端。也就是分担性能压力的。

如果是为了解决网络问题,就需要部署到公网服务器上。

服务器性能要求

CPU 1-2核

CPU要求不高,由于我是NAS的虚拟机,8代i5处理器,所以分配了6核,实际运行时占用只有20%不到应该1-2核就够。

内存 4G

这个取决于装的mod多不多,如果服务器mod很多,有些mod很占用内存,就需要多分配些,正常估计2-3G就够用了。

我装了海洋之心、勋章、棱镜这些大型mod,所以分配了4G,运行时占用86%左右。

后面加了个GPS,内存占用接近100%了,所以我又加了1G。

1、安装SteamCMD

1.配置环境

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update -y
sudo apt install lib32gc-s1 libcurl4-gnutls-dev:i386 lib32stdc++6 lib32z1 -y

最好再配置下代理,否则后面的mod可能会安装失败或不完整。

#编辑配置文件
vim ~/.bashrc
#添加代理地址,根据你自己的代理服务修改
export http_proxy="http://192.168.2.12:7890/"
export https_proxy="http://192.168.2.12:7890/"

2.下载steamCMD安装包

mkdir ~/steamcmd
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

3.运行安装包

./steamcmd.sh

运行后就会进入SteamCMD程序,首次运行会下载安装,比较慢。

2、安装饥荒服务器

在SteamCMD中执行

# 指定安装目录 这里指定的是steamcmd的目录的上级目录下的dstserver
force_install_dir ../dstserver
#匿名登陆steam
login anonymous
#下载饥荒服务器 
app_update 343050 validate
#退出steamCMD
quit

安装完成后,在steamcmd的目录的上级目录会生成dstserver目录,里面就是饥荒服务器文件。

3、配置脚本

# 创建脚本文件
touch start_dstserver.sh
# 添加执行权限
chmod +x start_dstserver.sh

steamcmd_dir:steamcmd 的安装目录

install_dir:饥荒服务器的安装目录

cluster_name:cluster的目录名

dontstarve_dir:cluster的存放位置,这个是默认位置,服务器启动脚本会自动在这下面查找世界

#!/bin/bash

steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dstserver"
cluster_name="Cluster_1"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"

function fail()
{
    echo Error: "$@" >&2
    exit 1
}

function check_for_file()
{
    if [ ! -e "$1" ]; then
    fail "Missing file: $1"
    fi
}

cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"

check_for_file "steamcmd.sh"
check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
check_for_file "$install_dir/bin"

cd "$install_dir/bin" || fail

run_shared=(./dontstarve_dedicated_server_nullrenderer)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
run_shared+=(-shard)

"${run_shared[@]}" Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" Master | sed 's/^/Master: /'

4、导入服务器(Cluster)

1、进入饥荒创建世界

生成世界进入游戏后直接退出,随后在创建游戏那可找到自己的世界,点击管理世界-打开世界文件夹,得到本地游戏地图资源。也就是Cluster的目录

2、获取服务器token

这里获取到的token,可以重复使用,更换新世界直接拷过来就行了。只有需要同时开多个服务器才需要创建多个token。

进入饥荒游戏,在首页点击左下角的账户信息,跳转到饥荒的官网。(或者直接访问

点击游戏

找到饥荒联机版,点击服务器

起个名字,点击添加新服务器

然后就获取到了token,在世界的Cluster目录下创建cluster_token.txt文件,然后把token放进去。

3、拷贝Cluster目录到服务器

scp -r 饥荒目录/Cluster_1 cook@ip:/home/cook/clusters

4、配置mod

两种方式,一种是根据世界中引用的mod,分别引入。一种是直接引入创意工坊中的mod合集。

推荐引入合集,这样后面只需要在steam中维护合集即可,无需修改服务器的文件了。如果是分别引入,后续加mod,就需要在服务器也手动修改引入。比较麻烦。

1、引入合集

合集需要在steam上创建

在饥荒的创意工坊中浏览合集

创建合集

需要起个名字并且上传一个图标。

初始化合集

第二步可以选择已订阅的mod,然后点击全部添加。然后保存发布即可。

查看合集id

点击查看合集,排序最新合集,就可以看到自己的合集了

点进去就可以在浏览器中看到id了

可以收藏一下,不然不好找。收藏之后就可以在合集中的收藏筛选了。

后续添加mod到合集

在mod页面,点击添加到合集,然后选择创建的合集,就加入了。

导入合集

# 编辑服务器中的mod文件
vim ~/dstserver/mods/dedicated_server_mods_setup.lua
# 添加以下内容引入合集
ServerModCollectionSetup("合集id")

2、分别引入

查看世界中配置的mod id

打开 /Cluster_1/Master/modoverrides.lua

workshop-后面的数字就是mod id

把所有的id组装为:ServerModSetup("id"),每个id一行,然后填入服务器中的

~/dstserver/mods/dedicated_server_mods_setup.lua 文件

上面是注释不用管,粘贴到最后即可。

5、启动服务器

输出sim pause 就是启动成功了

./start_dstserver.sh

0

评论区