系统:Ubuntu22.04

注:除安装依赖,建议都用普通用户运行,确保安全
参照wiki

安装steamcmd

安装依赖

如果是64位系统先安装32位依赖,否则跳过

root 用户运行

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc1 steamcmd
# lib32gcc1没有则安装下面这个
# apt-get install lib32gcc-s1

安装期间可以同时进行下一步

安装steamcmd

不要使用root运行

# 创建文件夹放steam
mkdir ~/steam
wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz
tar -xxzf steamcmd_linux.tar.gz -C ~/steam

运行steamcmd

cd ~/steam
./steamcmd.sh

等待安装好后将进入steamcmd命令行

安装饥荒联机版服务

安装饥荒本体

在前面运行的steamcmd.sh启动的命令行中运行

# force_install_dir dt # 指定安装目录,不必要
# login anonymous # 匿名登录,不需要实际账号,除非实际账号购买了饥荒联机版
login username # 根据用户名登录,匿名登录容易失败(购买正白饥荒联机版)
app_update 343050 validate # 安装游戏,耗时,可以同时进行下一步,默认安装到
# steamapps/common/Don\'t\ Starve\ Together\ Dedicated\ Server
quit # 退出

安装期间可以同时进行下一步

安装依赖

sudo apt-get install lib32gcc-s1
sudo apt-get install lib32stdc++6
sudo apt-get install libgcc1
sudo apt-get install libcurl4-gnutls-dev:i386

运行饥荒

生成世界

运行游戏都需要一个token,所以去官网获取配置会再带token

  1. 可以从科雷官网 生成游戏配置,下载游戏世界和配置
  2. 自己本地创建游戏导出世界和配置
  3. 手动配置, 过于复杂

世界的名称建议取独一无二的,方便搜索2023-11-25 16:55:32 星期六

设置世界

将其解压(解压出来是一个文件夹)后放到~/.klei/DoNotStarveTogether/目录下
到游戏安装目录运行一下命令,开始运行游戏

# Cluster_1是~/.klei/DoNotStarveTogether/下的相对目录
# 此位控制台试运行,之后通过其他工具运行
./dontstarve_dedicated_server_nullrenderer -cluster Cluster_1

根据存档中Master/server.iniCaves/server.ini[NETWORK]开放防火墙或者安全组端口

编写脚本

编写脚本请使用chmod 755 name.sh 赋权

bat.sh 启动脚本

path="" # 饥荒程序安装目录的bin目录路径
cd $path
./dontstarve_dedicated_server_nullrenderer -cluster Cluster_1

不需要回到控制台

不需要回到控制台操作的话,直接使用

nohup bat.sh > nohup.out 2>&1 & # 修改bat.shbat.sh的路径

需要回到控制台

下面的脚本放到bat.sh同目录

start.sh 开始脚本

cd $(dirname "$0")
if screen -list | grep -q "dst"; then
    echo "DontStarveTogether 已经启动了"
else
    # 使用 `screen` 启动一个新会话,并在其中运行程序
    screen -dmS dst ./bat.sh
    echo "开始启动DontStarveTogether."
fi

reattach.sh 重回控制台脚本

cd $(dirname "$0")
path="" # 程序bin目录路径
if screen -list | grep -q "dst"; then
    cd $path
    screen -r dst ./bat.sh
else
    echo "没有找到DontStarveTogether"
fi

重回控制台后可以使用Ctrl + A + D 退出并后台继续运行。

附录

配置文件

[MISC]
max_snapshots = 6                  # 最大快照数,决定了可回滚的天数
console_enabled = true             # 是否开启控制台

[SHARD]
shard_enabled = true               # 服务器共享,要开启洞穴服务器的必须启用
bind_ip = 127.0.0.1                # 服务器监听的地址,当所有实例都运行在同一台机器时,可填写 127.0.0.1,会被 server .ini 覆盖
master_ip = 127.0.0.1              # master 服务器的 IP,针对非 master 服务器,若与 master 服务器运行在同一台机器时,可填写 127.0.0.1,会被 server.ini 覆盖
master_port = 10888                # 监听 master 服务器的 UDP 端口,所有连接至 master 服务器的非 master 服务器必须相同
cluster_key = dst                  # 连接密码,每台服务器必须相同,会被 server.ini 覆盖

[STEAM]
steam_group_only = false           # 只允许某 Steam 组的成员加入
steam_group_id = 0                 # 指定某个 Steam 组,填写组 ID
steam_group_admins = false         # 开启后,Steam 组的管理员拥有服务器的管理权限

[NETWORK]
offline_server = false             # 离线服务器,只有局域网用户能加入,并且所有依赖于 Steam 的任何功能都无效,比如说饰品掉落
tick_rate = 15                     # 每秒通信次数,越高游戏体验越好,但是会加大服务器负担
whitelist_slots = 0                # 为白名单用户保留的游戏位
cluster_password =                 # 游戏密码,不设置表示无密码
cluster_name = ttionya test        # 游戏房间名称
cluster_description = description  # 游戏房间描述
lan_only_cluster = false           # 局域网游戏
cluster_intention = madness        # 游戏偏好,可选 cooperative, competitive, social, or madness

[GAMEPLAY]
max_players = 16                   # 最大游戏人数
pvp = true                         # 能不能攻击其他玩家
game_mode = survival               # 游戏模式,可选 survival, endless or wilderness,与玩家死亡后的负面影响有关
pause_when_empty = false           # 没人服务器暂停,刷天数必备
vote_kick_enabled = false          # 投票踢人

控制台命令

wiki

作者:dbin  创建时间:2023-12-15 20:43
最后编辑:dbin  更新时间:2024-03-17 18:37