《Satisfactory幸福工厂》专用服务器搭建(Linux及Windows环境)

《Satisfactory幸福工厂》专用服务器搭建

在2021年10月26日工厂5更新中,第一次推送工厂专用服务器系统(终于不用联机时卡卡卡了)。目前,专用服务器可用于 Windows 和 Linux 平台,只能通过 Steam 或Steam控制台SteamCMD 安装。目前仅支持测试版的专用服务器。

一、服务器搭建前提

1、开放端口

在开始之前,需要确保以下端口是开放的,因此可能需要创建防火墙规则或在路由器中配置端口转发。端口重定向目前不支持,因此在路由器中打开的端口需要与此处提供的端口匹配(IE:不要将端口 7777 转发为路由器上的端口 7778)。根据下面的表,每个端口都可以通过参数覆盖。如果你想在一台计算机上运行服务器的多个实例,则必须覆盖至少一个端口。

默认端口(仅限 UDP)重写参数注释
15777-ServerQueryPort=???这是您第一次连接到专用服务器时需要输入的端口。此端口可以自由重定向。
15000-BeaconPort=???此端口目前无法重定向。如果启动服务器的多个实例并且默认已在使用中,则会自动增量。
7777-Port=???此端口目前无法重定向。如果启动服务器的多个实例并且默认已在使用中,则会自动增量。

总之,如果你使用的是云服务,记得在在安全组中开放这几个端口。

2、服务器配置需求

官方提供的数据服务器至少需要4 GB内存和10 GB的存储空间。但实际测试中建议运行具有Linux下6+ GB、Windows下8+G内存和更多存储空间的服务器,以支持> 4 个小伙伴同时联机或大型、复杂的工厂。

二、Linux环境搭建

1、安装编译环境

ubuntu

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update -y
sudo apt install lib32gcc1 libcurl4-gnutls-dev:i386 lib32stdc++6 lib32z1 -y

centos 7

yum update -y
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
yum install glibc.i686 libstdc++.i686 libcurl.i686 screen -y

centos 8

yum update -y
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
yum install glibc.i686 libstdc++.i686 libcurl.i686 screen -y

2、下载 steamCMD,安装

这里需要使用非root用户

useradd -m steam
su steam

mkdir ~/steamcmd
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

安装包运行

./steamcmd.sh

安装完成后输入quit退出Steam控制台。

3、在steam 状态下匿名登录,安装工厂服务器

./steamcmd.sh +login anonymous +force_install_dir ~/SatisfactoryDedicatedServer +app_update 1690800 validate +quit

这个是下载 工厂的服务器,需要一定的时间

1690800是幸福工厂在steam 中的 id

如果这里提示"Failed to init SDL priority manager: SDL not found"之类的,执行

ubuntu

sudo apt install libsdl2-2.0-0:i386

centos

yum -y install SDL2.i686 SDL2.x86_64

后再重复以上操作

4、加载存档

  • 获取存档的Session Name

    • 在游戏中查看存档的Session Name,这里的Session Name并非游戏存档名称。
    • 在这里插入图片描述
  • 查找存档文件

    • 存档位置%LOCALAPPDATA%\FactoryGame\Saved\SaveGames
  • 上传存档至服务器

    • mkdir -p ~/.config/Epic/FactoryGame/Saved/SaveGames/server
      cd ~/.config/Epic/FactoryGame/Saved/SaveGames/server
      
      #上传.sav存档文件至此处
      

5、服务器编译配置

将专用服务器作为服务运行,允许服务器在发生冲突时自动重新启动,并在启动服务器后自动启动。

(以下内容须root权限)

为了简单起见,创建服务器启动脚本,将其放置在 /home/steam/SatisfactoryDedicatedServer/start_server.sh下(其中/home/steam是用户目录)。

vim /home/steam/SatisfactoryDedicatedServer/start_server.sh

启动器包含以下行:

#!/bin/bash

export InstallationDir=/home/steam/SatisfactoryDedicatedServer
export templdpath=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$InstallationDir/linux64:$LD_LIBRARY_PATH
# Install or update the server before launching it
/usr/games/steamcmd +login anonymous +force_install_dir $InstallationDir +app_update 1690800 validate +quit
# Launch the server
$InstallationDir/FactoryServer.sh

export LD_LIBRARY_PATH=$templdpath

InstallationDir是工厂服务器目录位置,根据自身情况修改

创建后,设置可执行执行项

chmod +x /home/steam/SatisfactoryDedicatedServer/start_server.sh

创建服务(需要root权限)

vim /etc/systemd/system/satisfactory.service

包含以下行:

[Unit]
Description=Satisfactory Server
Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
Restart=always
RestartSec=10
User=steam
WorkingDirectory=/home/steam/SatisfactoryDedicatedServer
ExecStart=/home/steam/SatisfactoryDedicatedServer/start_server.sh

[Install]
WantedBy=multi-user.target

User为用户

WorkingDirectory为游戏服务位置

ExecStart为启动器位置

最后,启用该服务:

systemctl enable satisfactory.service

systemctl start satisfactory.service

这将启动服务器。如果您手之前尚未安装它,则服务开始后也将安装服务器。每次重新启动服务时,服务器都会通过SteamCMD进行更新。要重新启动服务器,只需运行:

systemctl restart satisfactory.service

例如,每晚 04:00 自动完成此任务,将命令添加到root crontab:

# This will open an interactive editor

crontab -e

# Add this line to the file then save it.

0 4 * * * systemctl restart satisfactory.service

服务器环境配置完成,接下来需要进行服务器初始化。

6、服务器更新

将服务重启,服务器会自动更新。

systemctl restart satisfactory.service

或手动更新

./steamcmd.sh +login anonymous +force_install_dir ~/SatisfactoryDedicatedServer +app_update 1690800 validate +quit

三、Windows环境搭建

1、下载安装SteamCMD

创建一个为SteamCMD准备的文件夹

下载Windows系统专用的SteamCMD 点击下载

解压Zip文件中的文件到文件夹。

双击运行解压出来的文件,将自动联网完成更新

更新完成后会出现“Steam>”等待输入命令:

2、在steam 状态下匿名登录,安装工厂服务器

在SteamCMD目录下进入控制台

steamcmd +login anonymous +force_install_dir steamapps/SatisfactoryDedicatedServer +app_update 1690800 validate +quit

这个是下载 工厂的服务器,需要一定的时间

1690800是幸福工厂在steam 中的 id

安装完成后,在Steamcmd文件夹下会生成SatisfactoryDedicatedServer文件夹。

3、加载存档

  • 获取存档的Session Name
    • 在游戏中查看存档的Session Name,这里的Session Name并非游戏存档名称。
    • 在这里插入图片描述
  • 查找存档文件
    • 存档位置%LOCALAPPDATA%\FactoryGame\Saved\SaveGames
  • 上传存档至服务器
    • 将存档复制到%LOCALAPPDATA%\FactoryGame\Saved\SaveGames\server

4、启动服务器

/steamcmd/steamapps/SatisfactoryDedicatedServer目录下进入CMD控制台

FactoryServer.exe -log -unattended

服务器启动后,就可以进入游戏进行服务器初始化了。

5、更新服务器

更新服务器只需将服务器重新加载即可,在steamcmd目录下:

steamcmd +login anonymous +force_install_dir steamapps/SatisfactoryDedicatedServer +app_update 1690800 validate +quit

四、服务器初始化

初始配置由连接到服务器的第一个玩家在游戏中进行,包括设置服务器名称和管理密码。更多设置可通过游戏服务器管理器提供。服务器不会自行启动任何游戏。管理员必须通过游戏中的 UI 创建游戏。默认情况下,玩家密码保护不是启用的,但玩家密码可以通过管理器 UI 设置。

1、服务器连接

在Server Manager(服务管理)界面,点击Add Server,输入服务器地址,默认为服务器IP地址,端口号默认为15777。

在这里插入图片描述

第一位连接服务器的用户可以设置服务器的名称及管理密码,后期用户可以通过管理密码进入服务器设置页面。

在这里插入图片描述

2、设置存档

在加载存档时,我们记录了存档的Session Name,在Server Settings页面中,填写Session Name。

在这里插入图片描述

Session Name填写完成后,系统自动加载存档

在这里插入图片描述

如果使用Create Game直接创建存档,无需手动填写Session Name。

存档加载完成后,在Status界面,可以看到服务器信息,点击Join Game加入游戏。

在这里插入图片描述

到这里,你就完成了服务器的搭建工作。。

更多信息可以参考Satisfactory WIKI

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 37
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值