SteamCMD 搭建

这里采用 Debian11 版本, 建议跟随最新版本来配置防止系统库不兼容

SteamCMD官方文档

SteamCMD安装

默认 Linux 发行版都没有配置32位系统库和非开源软件源, 有的 Steam 系统库依赖32位系统库和非开源软件源, 输入以下命令追加:

1
2
3
4
sudo dpkg --add-architecture i386 # 配置 32 位库
sudo apt install -y software-properties-common # 启用非开源软件配置
sudo add-apt-repository non-free # 配置启用非开源库
sudo apt update -y # 更新软件

在配置好非开源的软件源之后就可以直接通过系统命令安装 Steam 命令行:

1
2
# 安装steamcmd, 确认同意非开源协议即可( I Agree )
sudo apt install -y steamcmd libsdl2-dev:i386

配置管理权限

这里需要配置专门管理 Steam 服务器的系统账号; 除非很有经验, 否则最好不要默认采用 root 账号管理配置服务, 输入命令:

1
2
sudo useradd -m steam # 配置专门的管理账号
sudo ls -l /home/steam # 查看用户目录列表

配置好就是让这个账号执行所有 SteamCMD 操作:

1
2
3
sudo mkdir /games # 创建目录放置游戏
sudo chown -R steam:steam /games # 将权限移交给 Steam 用户
sudo -u steam /usr/games/steamcmd # 让 steam 调用 steamcmd, 首次运行会安装更新

这里更新取决于和 Steam 服务器的速度, 完成之后就会进入默认的命令行.

账号/匿名登录

有些 Steam 搭建多人服务器是匿名帐号就可以以匿名登录( anonymous )搭建, 有的付费则需要登录 Steam 账号确认购买之后才允许搭建.

这里采用匿名登录并搭建 Project Zomboid 游戏来做示例

请注意命令行输入:

1
2
3
4
force_install_dir /games/project_zomboid # 设置服务器搭建下载目录
login anonymous # 匿名登录 SteamCMD, 这一步特别久, 因为要登录 Steam 服务器, 国内速度不太好.
app_update 380870 validate # 安装 Project Zomboid 搭建服务端, 这一步总是会错误, 需要多尝试几次, 原因同上.
quit # 等待所有完成就可以退出了

上面的命令太过冗余, 直接可以精简为以下命令, 以后更新服务端直接用以下命令即可:

1
2
# 最后精简命令
sudo -u steam /usr/games/steamcmd +force_install_dir /games/project_zomboid +login anonymous +app_update 380870 +quit

这里需要先运行下让其生成服务配置相关文件, 输入以下命令:

1
2
sudo -u steam /games/project_zomboid/start-server.sh # 几秒之后他会提示你输入 admin 密码, 直接中断即可( Ctrl + C)
ls -l /home/steam/Zomboid # 这里输出成功的时候代表配置文件成功

把 Project Zomboid 生成的三个配置文件移动到 /home/steam/Zomboid/Server 之中, 之后配置管理员密码:

1
sudo -u steam /games/project_zomboid/start-server.sh # 启动服务器, 当他提示输入管理员密码输入即可

写入系统服务

这里需要编写个 Systemctl 服务, 让其每次重启都自动更新和挂起服务器, 直接编写创建文件:

1
sudo vim /etc/systemd/system/zomboid.service # 创建和准备编写该系统服务

内部的编写内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=Project Zomboid
Documentation=https://pzwiki.net/wiki/Dedicated_Server
After=network.target nss-lookup.target

[Service]
User=steam
ExecStartPre=/usr/games/steamcmd +force_install_dir /games/project_zomboid +login anonymous +app_update 380870 +quit
ExecStart=/games/project_zomboid/start-server.sh
Restart=on-failure
RestartPreventExitStatus=23
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

更新并启动系统服务, 执行以下命令:

1
2
3
sudo systemctl daemon-reload # 更新系统服务
sudo systemctl start zomboid.service # 启动服务
sudo systemctl enable zomboid.service # 开机自动启动

这样就能托管并生成系统SteamCMD多人服务器.