在2021年10月26日工厂5更新中,第一次推送工厂专用服务器系统(终于不用联机时卡卡卡了)。目前,专用服务器可用于 Windows 和 Linux 平台,只能通过 Steam 或Steam控制台SteamCMD 安装。目前仅支持测试版的专用服务器。
在开始之前,需要确保以下端口是开放的,因此可能需要创建防火墙规则或在路由器中配置端口转发。端口重定向目前不支持,因此在路由器中打开的端口需要与此处提供的端口匹配(IE:不要将端口 7777 转发为路由器上的端口 7778)。根据下面的表,每个端口都可以通过参数覆盖。如果你想在一台计算机上运行服务器的多个实例,则必须覆盖至少一个端口。
默认端口(仅限 UDP) | 重写参数 | 注释 |
---|---|---|
15777 | -ServerQueryPort=??? | 这是您第一次连接到专用服务器时需要输入的端口。此端口可以自由重定向。 |
15000 | -BeaconPort=??? | 此端口目前无法重定向。如果启动服务器的多个实例并且默认已在使用中,则会自动增量。 |
7777 | -Port=??? | 此端口目前无法重定向。如果启动服务器的多个实例并且默认已在使用中,则会自动增量。 |
总之,如果你使用的是云服务,记得在在安全组中开放这几个端口。
官方提供的数据服务器至少需要4 GB内存和10 GB的存储空间。但实际测试中建议运行具有Linux下6+ GB、Windows下8+G内存和更多存储空间的服务器,以支持> 4 个小伙伴同时联机或大型、复杂的工厂。
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
ttyprint">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
这里需要使用非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控制台。
./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
后再重复以上操作
获取存档的Session Name
查找存档文件
%LOCALAPPDATA%\FactoryGame\Saved\SaveGames
上传存档至服务器
mkdir -p ~/.config/Epic/FactoryGame/Saved/SaveGames/server
cd ~/.config/Epic/FactoryGame/Saved/SaveGames/server
上传.sav存档文件至此处
将专用服务器作为服务运行,允许服务器在发生冲突时自动重新启动,并在启动服务器后自动启动。
(以下内容须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
服务器环境配置完成,接下来需要进行服务器初始化。
将服务重启,服务器会自动更新。
systemctl restart satisfactory.service
或手动更新
./steamcmd.sh +login anonymous +force_install_dir ~/SatisfactoryDedicatedServer +app_update 1690800 validate +quit
创建一个为SteamCMD准备的文件夹
下载Windows系统专用的SteamCMD 点击下载
解压Zip文件中的文件到文件夹。
双击运行解压出来的文件,将自动联网完成更新
更新完成后会出现“Steam>”等待输入命令:
在SteamCMD目录下进入控制台
steamcmd +login anonymous +force_install_dir steamapps/SatisfactoryDedicatedServer +app_update 1690800 validate +quit
这个是下载 工厂的服务器,需要一定的时间
1690800是幸福工厂在steam 中的 id
安装完成后,在Steamcmd文件夹下会生成SatisfactoryDedicatedServer文件夹。
%LOCALAPPDATA%\FactoryGame\Saved\SaveGames
%LOCALAPPDATA%\FactoryGame\Saved\SaveGames\server
在/steamcmd/steamapps/SatisfactoryDedicatedServer
目录下进入CMD控制台
FactoryServer.exe -log -unattended
服务器启动后,就可以进入游戏进行服务器初始化了。
更新服务器只需将服务器重新加载即可,在steamcmd目录下:
steamcmd +login anonymous +force_install_dir steamapps/SatisfactoryDedicatedServer +app_update 1690800 validate +quit
初始配置由连接到服务器的第一个玩家在游戏中进行,包括设置服务器名称和管理密码。更多设置可通过游戏服务器管理器提供。服务器不会自行启动任何游戏。管理员必须通过游戏中的 UI 创建游戏。默认情况下,玩家密码保护不是启用的,但玩家密码可以通过管理器 UI 设置。
在Server Manager(服务管理)界面,点击Add Server,输入服务器地址,默认为服务器IP地址,端口号默认为15777。
第一位连接服务器的用户可以设置服务器的名称及管理密码,后期用户可以通过管理密码进入服务器设置页面。
在加载存档时,我们记录了存档的Session Name,在Server Settings页面中,填写Session Name。
Session Name填写完成后,系统自动加载存档
如果使用Create Game直接创建存档,无需手动填写Session Name。
存档加载完成后,在Status界面,可以看到服务器信息,点击Join Game加入游戏。
到这里,你就完成了服务器的搭建工作。。
更多信息可以参考Satisfactory WIKI。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!