SPT-Server For Linux 搭建教程
一、前置准备
1.环境要求(有基础跳过)
- Linux 主机 / NAS(支持 Docker,内存建议 ≥4GB,避免运行卡顿)
- 服务器防火墙放行ALL或 6969 端口(核心端口,必须操作!)
- 临时放行(CentOS/RHEL):
sudo firewall-cmd --add-port=6969/tcp --permanent && sudo firewall-cmd --reload - 临时放行(Ubuntu/Debian):
sudo ufw allow 6969/tcp && sudo ufw reload
2.核心资源
- Docker 镜像地址(三选一,推荐阿里云,速度快):
- Docker Hub:
stblog/spt-server - GHCR:
ghcr.io/airryco/spt-server - 阿里云(推荐):
registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server - 代码仓库(可选):
https://github.com/AirryCo/spt-server-ci
二、安装Docker(中科大脚本,稳定高效)
1.登录SSH终端(root 权限或 sudo 权限),下载并安装 Docker
# 下载安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
# 用中科大镜像源安装(国内速度快)
sudo DOWNLOAD_URL=https://mirrors.ustc.edu.cn/docker-ce sh get-docker.sh
2.验证 Docker 是否安装成功
docker --version # 输出 Docker 版本号即成功
3.(可选)设置 Docker 开机自启
sudo systemctl enable docker && sudo systemctl start docker
三、拉取 SPT-Server Docker 镜像
1.选择镜像源拉取(推荐指定版本,避免 latest 兼容性问题)
# 阿里云(推荐)
docker pull registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server:3.11.3
# 或 Docker Hub
docker pull stblog/spt-server:3.11.3
# 或 GHCR
docker pull ghcr.io/airryco/spt-server:3.11.3
docker pull registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server:nightly
docker pull stblog/spt-server:nightly-fika
2.查看已拉取的镜像
docker images # 能看到 spt-server 镜像即成功
四、运行 SPT-Server 容器(二选一,推荐 docker run 简单直接)
方式 A:docker run 命令运行(适合新手)
1.创建本地目录用于数据持久化(避免容器删除后数据丢失)
mkdir -p ./spt-server # 本地目录可自定义,如 /home/user/spt-server
2.执行运行命令(替换 192.168.1.1 为你的 Linux 主机内网 IP)
- 3.10 及以上版本(推荐),如果复制执行报错,执行时将命令改为一行删除注释即可
docker run -d \
--name spt-server \
--restart always \ # 容器意外停止后自动重启
-p 6969:6969 \ # 端口映射(宿主机:容器,保持 6969 即可)
-e backendIp=192.168.1.1 \ # 你的 Linux 主机 IP(客户端连接用)
-e backendPort=6969 \ # 映射端口(与上面一致)
-v ./spt-server:/opt/spt-server \ # 数据持久化(本地目录:容器目录)
registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server:3.10.0
- 3.9.x 版本(如 3.9.8),老版本自行测试,道理同上
docker run -d \
--name spt-server \
--restart always \
-p 6969:6969 \
-v ./spt-server:/opt/spt-server \
dev.sp-tarkov.com/medusa/spt-server:3.9.8
方式 B:docker compose 运行(适合多服务管理)(自行测试)
1.创建 compose.yml 文件(根据版本选择配置)
services:
spt-server:
image: registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server:3.11.3
container_name: spt-server
restart: always
volumes:
- ./spt-server:/opt/spt-server # 数据持久化,本地目录可自定义,如 /home/user/spt-server
ports:
- "6969:6969"
environment:
- backendIp=192.168.1.1 # 替换为你的服务器IP
- backendPort=6969
services:
spt-server:
image: dev.sp-tarkov.com/medusa/spt-server:latest
container_name: spt-server
restart: always
network_mode: host
volumes:
- ./spt-server:/opt/spt-server
ports:
- "6969:6969"
2.启动容器
docker compose -p spt-server up -d
五、验证服务是否启动成功
1.查看容器运行状态
docker ps | grep spt-server # 看到容器 ID 即运行中
2.查看服务日志(关键!确认是否启动成功)
docker logs -f spt-server
成功日志特征(若日志报错,优先检查:端口是否被占用、防火墙是否放行、镜像版本是否匹配)
Started webserver at http://192.168.1.1:6969
Started websocket at ws://192.168.1.1:6969
Server is running, do not close while playing SPT, Happy playing!
六、关键操作:更新 / 重启 / 停止服务
1.更新服务器版本
# 停止旧容器
docker stop spt-server
# 删除旧容器
docker rm spt-server
# 拉取新版本镜像(如 3.10.1)
docker pull registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server:3.11.3
# 重新运行新容器(用步骤 3 的命令,替换镜像版本)
docker run -d --name spt-server --restart always -p 6969:6969 -e backendIp=192.168.1.1 -e backendPort=6969 -v ./spt-server:/opt/spt-server registry.cn-shenzhen.aliyuncs.com/spt-server/spt-server:3.11.3
2.重启服务
docker restart spt-server
3.停止服务
docker stop spt-server
七、常见问题解决
1.端口被占用
- 查看占用 6969 端口的进程:
sudo lsof -i:6969 - 杀死进程:
sudo kill -9 进程ID,或更换宿主机端口(如 -p 7000:6969,客户端同步修改地址)。
2.Mod 报错「Cannot find module '/snapshot/project'」(仅 3.9 版本)
# 替换 /snapshot/project 为实际路径
sed -i "s/\/snapshot\/project/\/snapshot\/workspace\/medusa\/spt-server\/code\/project/g" $(grep -rl "/snapshot/project" .)
# 替换 /snapshot/workspace(若报错)
sed -i "s/\/snapshot\/workspace/\/snapshot\/workspace\/medusa\/spt-server\/code\/project/g" $(grep -rl "/snapshot/workspace" .)
3.容器启动后日志无响应
- 检查内存是否充足(
free -h),内存不足会导致服务卡死。 - 重新拉取镜像(可能镜像损坏):
docker pull 镜像地址 --no-cache。
4.客户端无法连接
- 确认 Linux 主机 IP 正确(
ip addr 查看内网 IP)。 - 关闭 Linux 防火墙或放行 6969 端口(步骤一已强调)。
- 检查容器端口映射是否正确(
docker ps 查看 PORTS 列是否为 0.0.0.0:6969->6969/tcp)。
八、注意事项
- 3.10 及以上版本必须使用 DockerHub/GHCR/ 阿里云镜像,原 SPT 官方镜像站已停止更新。
- 数据持久化目录(
./spt-server)需妥善保存,包含游戏存档、Mod 等,删除目录会丢失数据。 - 服务端仅提供离线游戏环境,若需联机,需 Linux 主机有公网 IP 并配置端口转发(路由器设置)。
- 若遇到游戏内 Bug,优先使用官方原版程序,本教程仅解决搭建问题,不负责游戏 Bug 排查。
到此,不出意外的话服务器应该已经启动成功了,本服务器搭建到这里仅作为存档服务器使用。关于Fika联机,请下载对应版本的Fika-Plugin放到客户端对应文件夹内,此步骤结束应该已经可以实现联机功能。关于Fika-Headless(无头主机)问题,目前还在研究中,敬请期待。