S&box 提供官方专用服务器(Steam app ID 1892930),通过 SteamCMD 安装并用 sbox-server.exe 启动。官方文档未给出默认端口,也没有配置文件说明:本指南只依据文档所述内容。预计耗时约 15 分钟。
分步安装
安装 SteamCMD(Windows 或 Linux)。
在 Linux 上还需安装 .NET Runtime。
安装服务端:“+login anonymous +app_update 1892930 validate +quit”。
链接 Steam 客户端库(Windows 注册表或符号链接 ~/.steam/sdk64/steamclient.so)。
用“S&box 启动脚本”工具生成启动脚本。
使用 +game(及地图)和 +hostname 启动服务器。
在服务器控制台输入“status”获取大厅 ID,客户端执行“connect <lobbyId>”。
自动化启动(systemd 或计划任务)与更新。
前提条件
- Windows 或 64 位 Linux(Ubuntu/Debian);Linux 必须安装 .NET Runtime(官方文档)。
- 官方未公布最低配置(无官方文档)。
- SteamCMD 匿名登录:无需账号或许可证密钥。
在 Windows 上安装(本地或 Windows Server)
在 C:\steamcmd 中安装服务端,文件位于 steamapps\common\sbox dedicated server。加 -beta staging 可获取 staging 分支(并非所有人都能游玩)。
cd /d C:\steamcmd
steamcmd.exe +login anonymous +app_update 1892930 validate +quit
REM Test local : ajoutez +net_allow_local 1, puis « connect local » côté client
sbox-server.exe +game facepunch.sandbox facepunch.flatgrass +hostname "My Dedicated Server" +net_allow_local 1在 Linux VPS 上安装(Ubuntu/Debian)
创建非 root 用户,安装 SteamCMD 与 .NET Runtime(发行版或微软软件包),然后安装服务端并链接 steamclient.so。启动脚本需按官方文档所述,用你的参数运行 sbox-server.exe。
sudo adduser --disabled-password --gecos "" sbox
sudo -iu sbox
# SteamCMD déjà installé dans ~/steamcmd
cd ~/steamcmd && ./steamcmd.sh +login anonymous +app_update 1892930 validate +quit
mkdir -p ~/.steam/sdk64
ln -sf ~/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so需要开放的端口
端口通过 +port(托管)和 +net_query_port(玩家数、地图等查询)设置。官方文档没有给出默认值和协议;默认连接经由 Steam 中继。若自行指定端口,请先同时开放 UDP 与 TCP 测试,再按实际情况收窄。下例的 27015/27016 来自第三方指南(非官方)。
- +port <端口> — 托管端口(默认值无文档)。
- +net_query_port <端口> — 查询端口(玩家数、地图)。
Linux 防火墙(ufw)
请按你的端口调整。同时在服务商(OVH、Hetzner、Scaleway)的防火墙/安全组开放相同端口;家庭托管则在路由器上做端口转发(NAT)。
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27016/udp
sudo ufw enableWindows 防火墙(netsh)
netsh advfirewall firewall add rule name="sbox UDP" dir=in action=allow protocol=UDP localport=27015-27016
netsh advfirewall firewall add rule name="sbox TCP" dir=in action=allow protocol=TCP localport=27015-27016systemd 服务(Linux)
文件 /etc/systemd/system/sbox.service;run-server.sh 为工具生成的脚本(用 chmod +x 赋予执行权限)。
[Unit]
Description=S&box dedicated server
After=network-online.target
Wants=network-online.target
[Service]
User=sbox
WorkingDirectory=/home/sbox/steamcmd/steamapps/common/sbox dedicated server
ExecStart=/home/sbox/run-server.sh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetWindows 自动启动
将 Run-Server.bat 设为开机运行(管理员命令提示符):
schtasks /create /tn "sbox-server" /tr "C:\steamcmd\steamapps\common\sbox dedicated server\Run-Server.bat" /sc onstart /ru SYSTEM更新与重启
官方未记载服务器存档文件:请按你游戏代码的定义备份其自有数据。更新时先停止服务器再重新运行 app_update;已连接的客户端会收到代码变更并热重载。
# cron root, 05:00 : mise à jour puis redémarrage / update then restart
0 5 * * * systemctl stop sbox && sudo -u sbox /home/sbox/steamcmd/steamcmd.sh +login anonymous +app_update 1892930 validate +quit && systemctl start sbox收录你的服务器
游戏没有固定的公开端口:玩家通过 Steam 中继使用大厅 ID 加入。若 game-rank.com/jeux/sbox 已收录该游戏,可在那里添加服务器以便社区发现。
故障排查
- Steamworks 无法初始化:未链接 Steam 客户端库(注册表 SteamClientDll64/SteamClientDll 或 ~/.steam/sdk64/steamclient.so)。
- “Not Connected”:游戏代码尚未创建大厅;请参阅 S&box 网络文档。
- Linux 上无法启动:缺少 .NET Runtime 或脚本不可执行。
- staging 分支无法游玩:去掉 -beta staging 后重新安装。
- 单机测试失败:添加 +net_allow_local 1 并用“connect local”连接。
常见问题
- S&box 有服务器配置文件吗?
- 官方文档未提及:配置通过命令行“+”参数完成(启动时执行的 ConVar 与 ConCmd)。
- 需要开放端口吗?
- 默认连接经由 Steam 中继,会隐藏服务器 IP。文档未规定必需端口;若设置了 +port 和 +net_query_port,请开放这些端口。
- 需要 Steam 账号或许可证吗?
- 安装使用匿名登录。+net_game_server_token(持久 Steam ID)为可选项,据官方页面,在 S&box 正式发布后可用。
- 选择稳定版还是 staging?
- 默认分支适合大多数情况;据文档,staging(-beta staging)可能并非所有人都能游玩。
