幸福工厂服务器
Linux
1.一键脚本安装
默认端口 | 简述 | 作用 |
---|---|---|
7777(TCP、UDP) | 游戏端口 | 此端口可在服务启动时使用 -Port 参数自由转发,例如 "-Port=10000" 将游戏端口更改为 10000。当该端口被占用时,会递增寻找可用端口 |
安装过程
注意:推荐swap当前开启为11G,如果低于12G的话,游戏服务器会内存溢出导致无限重启
安装命令
centos7
/ Centos stream
:
#国外服务器使用
bash <(wget -qO- https://github.com/jinzhongjia/satisfactory/raw/script/satisfactory_c7.sh)
#国内服务器使用
bash <(wget -qO- https://cdn.jsdelivr.net/gh/jinzhongjia/satisfactory@script/satisfactory_c7.sh)
centos8
:
#国外服务器使用
bash <(wget -qO- https://github.com/jinzhongjia/satisfactory/raw/script/satisfactory_c8.sh)
#国内服务器使用
bash <(wget -qO- https://cdn.jsdelivr.net/gh/jinzhongjia/satisfactory@script/satisfactory_c8.sh)
ubuntu
/ debian
:
#国外服务器使用
bash <(wget -qO- https://github.com/jinzhongjia/satisfactory/raw/script/satisfactory_d.sh)
#国内服务器使用
bash <(wget -qO- https://cdn.jsdelivr.net/gh/jinzhongjia/satisfactory@script/satisfactory_d.sh)
操作命令
# 如果是在普通用户下执行,请使用sudo
systemctl start satisfactory
#开启游戏服务
systemctl restart satisfactory
#重启游戏服务,用于进行游戏更新
systemctl stop satisfactory
#终止游戏服务
systemctl status satisfactory
#查看游戏服务状态
配置说明
脚本会在系统中创建一个steam账户用于安装steamcmd和satisfactory完成后的服务器运行(root账户无法运行该服务)!
steamcmd
和 satisfactory
存放位置:/home/steam/
存档位置
路径:/home/steam/.config/Epic/FactoryGame/Saved/SaveGames/server
蓝图位置
路径:/home/steam/.config/Epic/FactoryGame/Saved/SaveGames/blueprints/
更改游戏人数
配置路径:/home/steam/FactoryGame/Saved/Config/LinuxServer/Game.ini
内容应为:下面的8为最大游戏人数
[/Script/Engine.GameSession]
MaxPlayers=8
游戏更新
本脚本已经内置了游戏服务在每晚4点重新启动,并进行检测更新!
如果想要手动更新游戏版本,只需要对游戏服务进行重启即可!
# 如果是在普通用户下执行,请使用sudo
systemctl restart satisfactory
#重启游戏服务,用于进行游戏更新
脚本完整删除方法
- 删除/home/steam文件夹
rm -rf /home/steam
- 删除steam用户
userdel –r steam
2.docker-compose安装
准备工作
- 安装docker
- 安装docker-compose
配置文件
在需要的目录创建一个 docker-compose.yml
文件,把服务器的配置写进去
services:
satisfactory-server:
container_name: 'satisfactory-server'
hostname: 'satisfactory-server'
image: 'wolveix/satisfactory-server:latest'
ports:
- '7777:7777/udp'
- '7777:7777/tcp'
volumes:
- './satisfactory-server:/config'
environment:
- MAXPLAYERS=4 # 修改游戏人数
- PGID=1000
- PUID=1000
- ROOTLESS=false
- STEAMBETA=false
restart: unless-stopped
healthcheck:
test: [ "CMD", "bash", "/healthcheck.sh" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 120s
deploy:
resources:
limits:
memory: 8G
reservations:
memory: 4G
这个配置文件看着挺长的,但其实很好理解:
-
container_name
和hostname
: 就是给咱们的容器起个名字,方便管理。 -
image
: 指定了我们要用的Docker镜像,这里用的是wolveix/satisfactory-server
的最新版。 -
ports
: 设置端口映射,把容器的7777端口映射到主机的7777端口,支持UDP和TCP。 -
volumes
: 数据持久化,把容器里的/config
目录映射到主机上,这样服务器的数据就不会丢失。 -
environment
: 设置一些环境变量,比如最大玩家数、用户权限等。 -
restart
: 设置为除非手动停止,否则always自动重启。 -
healthcheck
: 定期检查服务器是否健康,如果出问题就自动重启。 -
deploy
: 设置了内存限制,保证服务器不会吃掉所有内存。运行多个服务器
如果你需要运行多个服务器,
docker-compose.yml
文件可以这样写
services:
satisfactory-server_1: # 这是第一个服务器
container_name: satisfactory-server_1
image: wolveix/satisfactory-server:latest
ports:
- "7777:7777/udp"
- "7777:7777/tcp"
volumes:
- ./satisfactory-server:/config
environment:
- MAXPLAYERS=16 # 修改游戏人数
- PGID=1000
- PUID=1000
- ROOTLESS=false
- STEAMBETA=false
restart: unless-stopped
healthcheck:
test: [ "CMD", "bash", "/healthcheck.sh" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 120s
deploy:
resources:
limits:
memory: 16G
reservations:
memory: 4G
satisfactory-server_2: # 这是第二个服务器
container_name: satisfactory-server_2
image: wolveix/satisfactory-server:latest
ports:
- "8192:7777/udp"
- "8192:7777/tcp"
volumes:
- ./satisfactory-server2:/config
environment:
- MAXPLAYERS=16 # 修改游戏人数
- PGID=1000
- PUID=1000
- ROOTLESS=false
- STEAMBETA=false
restart: unless-stopped
healthcheck:
test: [ "CMD", "bash", "/healthcheck.sh" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 120s
deploy:
resources:
limits:
memory: 8G
reservations:
memory: 4G
启动服务器
docker-compose up -d
查看服务器日志,可以用这个命令:
docker-compose logs -f satisfactory-server
停止服务器
docker-compose down
服务器文件都在 ./satisfactory-server
目录里,想备份的话直接复制这个文件夹就行。
蓝图位置:
路径:/home/satisfactory-server/saved/blueprints/
Windows
获取steamcmd包:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
登录steam控制台:
login anonymous
下载文件
app_update 1690800 validate
推出steamcmd
quit
服务器更新:
记事本写入:
steamcmd +login anonymous +app_update 1690800 validate +quit
保存后将文件格式由"文件名.txt"改为"文件名.bat",以后如遇服务器更新,直接双击就可以更新服务器,更新之前记得关闭正在运行的服务器窗口。这条命令相当于把之前的步骤都整合到一起,同样适用于初始建立服务器。
开启幸福工厂专用服务器
-
专用服务器下载完成后,进入steamcmd
\steamapps
{=tex}\common
{=tex}\SatisfactoryDedicatedServer文件夹下
{=tex},找到FactoryServer.exe这个程序,右键发送到桌面快捷方式。 -
在桌面右键快捷方式,选择属性,在"快捷方式"一栏下的"目标"后面,添加:" -log -unattended"(需要注意最前边有一个空格, -log代表强制服务器在窗口显示日志, -unattended代表使服务器不会显示任何对话框,否则如果不注意,这些对话框可能会中断服务器的运行),点击应用-确定。
-
最后双击快捷方式就可以开启服务器了。这种方式可以直接在桌面启动服务器,更为方便简洁。
关于mod服务器
Linux暂时没找到可以使用mod进行开服的方法,Windows可以使用,后续我会继续进行尝试/寻找,将mod服务器进行补全
- 感谢你赐予我前进的力量