服务器安装(Linux)#

Squad Server 的 Linux 版本一直比 Windows 版稳定性差一档,不推荐生产环境主力使用。但如果你只有 Linux 服务器,或者熟悉 Linux 运维,也可以跑起来。

下面给出两条路径:

  • 方式一(推荐):使用 squad-manager.sh 一键脚本,自动完成依赖安装、SteamCMD 部署、服务端下载、systemd 注册、防火墙放行,并支持多实例并行管理
  • 方式二:手动执行每一步命令,便于理解流程或排障。

系统要求#

  • 系统:Ubuntu 20.04 / 22.04(Debian 11+ 也行,不推荐 CentOS)
  • 架构:x86_64
  • 内核:5.4+
  • 内存:8GB 起(每实例)
  • 硬盘:60GB 空间(每实例约 50GB)

方式一:使用 squad-manager.sh(推荐)#

squad-manager.sh 上传到服务器任意位置(如 /root/),授予执行权限:

bash
chmod +x squad-manager.sh

1. 一次性环境安装#

bash
sudo ./squad-manager.sh install

这一步会完成:

  • 添加 i386 架构、安装 32 位运行库及 tmux / ufw / curl 等依赖
  • 创建 steam 系统用户与 home 目录
  • 下载 SteamCMD 到 /home/steam/steamcmd
  • 安装通用 systemd 模板单元 squad@.service

2. 创建实例#

bash
# 默认实例:自动分配端口 (Game=7787, Query=15000, RCON=21114) sudo ./squad-manager.sh create main # 第二个实例:所有端口自动 +10 sudo ./squad-manager.sh create training --max-players 60 # 自定义端口 sudo ./squad-manager.sh create event \ --game-port 7807 --query-port 15020 --rcon-port 21134

每创建一个实例,脚本会:

  • 写入实例配置到 /home/steam/.squad-manager/<name>.conf
  • 通过 SteamCMD 把服务端下载到 /home/steam/instances/<name>/server
  • 注册并启用 squad@<name>.service
  • ufw 已启用,自动放行三个端口

3. 日常运维#

bash
sudo ./squad-manager.sh list # 列出所有实例 (端口 / 状态) sudo ./squad-manager.sh start main # 启动 sudo ./squad-manager.sh stop main # 停止 sudo ./squad-manager.sh restart main # 重启 sudo ./squad-manager.sh status main # 查看 systemd 状态 sudo ./squad-manager.sh logs main -f # 跟踪日志 (透传 journalctl) sudo ./squad-manager.sh update main # 通过 SteamCMD 更新服务端 sudo ./squad-manager.sh remove main # 注销实例 (保留数据) sudo ./squad-manager.sh remove main --purge # 彻底卸载 (含数据)

目录结构概览#

text
/home/steam/ ├── steamcmd/ # SteamCMD 主程序 ├── instances/ │ ├── main/server/ # 实例 main 的服务端文件 │ ├── training/server/ # 实例 training 的服务端文件 │ └── event/server/ └── .squad-manager/ ├── main.conf # 端口/玩家数等元信息 ├── training.conf └── event.conf

squad@.service 模板通过 EnvironmentFile=/home/steam/.squad-manager/%i.conf 加载每个实例的端口配置,%i 即实例名。


方式二:手动部署#

适合只跑单实例或想理解每一步在做什么。

安装 SteamCMD#

bash
# 添加 32 位架构支持(SteamCMD 需要) sudo dpkg --add-architecture i386 sudo apt update # 安装依赖 sudo apt install -y lib32gcc-s1 lib32stdc++6 curl wget tmux # 创建 Steam 用户 sudo useradd -m -s /bin/bash steam sudo su - steam # 下载并解压 SteamCMD mkdir ~/steamcmd && cd ~/steamcmd curl -sqL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' | tar zxvf -

下载 Squad 服务端#

bash
./steamcmd.sh +force_install_dir /home/steam/squad-server +login anonymous +app_update 403240 validate +quit

启动脚本#

创建 /home/steam/start-squad.sh

bash
#!/bin/bash cd /home/steam/squad-server ./SquadGameServer.sh \ Port=7787 \ QueryPort=15000 \ FIXEDMAXPLAYERS=100 \ RANDOM=ALWAYS

授权:

bash
chmod +x /home/steam/start-squad.sh

用 tmux 持久运行#

bash
# 新建会话 tmux new -s squad # 启动服务器 /home/steam/start-squad.sh # Ctrl+B 然后按 D 分离

查看运行状态:

bash
tmux attach -t squad

systemd 服务化(生产环境推荐)#

创建 /etc/systemd/system/squad.service

ini
[Unit] Description=Squad Dedicated Server After=network.target [Service] Type=simple User=steam Group=steam WorkingDirectory=/home/steam/squad-server ExecStart=/home/steam/start-squad.sh Restart=on-failure RestartSec=30 [Install] WantedBy=multi-user.target

启用:

bash
sudo systemctl daemon-reload sudo systemctl enable squad sudo systemctl start squad sudo systemctl status squad

防火墙#

bash
sudo ufw allow 7787/udp sudo ufw allow 15000/udp sudo ufw allow 21114/tcp sudo ufw reload

Linux 下运行 rank.exe#

原生 Linux 版 rank 暂未开放,需要用 wine 运行 Windows 版:

bash
sudo apt install wine64 cd /home/steam/squad-server/SquadGame/Saved/Logs/ wine rank.exe
!
建议

Linux 环境下跑 rank.exe 稳定性不如原生,建议观察几天再投入使用。有 Linux 原生需求可以反馈给 ICFK 技术支持。


常见问题#

无法加载共享库 libgcc_s.so

bash
sudo apt install lib32gcc-s1

出现 stdlib++ 报错

bash
sudo apt install lib32stdc++6

服务器启动但游戏内搜不到 99% 是防火墙问题。检查 ufw status,确认游戏端口(默认 7787/udp)和查询端口(默认 15000/udp)已放行。多实例环境下,squad-manager.sh list 可以快速看到每个实例占用的端口。

多实例端口冲突 / 想查实例分配了哪些端口

bash
sudo ./squad-manager.sh list

脚本默认每创建一个实例所有端口同时偏移 10,正常情况下不会冲突。如需自定义可用 --game-port 等参数显式指定。

已经手动装过单实例,能不能切到 squad-manager.sh 管理? 可以。先 sudo systemctl stop squad && sudo systemctl disable squad,再用 squad-manager.sh create <name> 新建一个实例(会重新下载到 /home/steam/instances/<name>/server,原 /home/steam/squad-server 可保留或手动删除)。如果磁盘紧张,也可以直接把旧目录 mv 到新位置后手动写入对应的 .conf 文件。