Factorio 在线游戏服务器搭建教程
本教程讨论了如何设置 Factorio 游戏服务器,并提供了实现最佳性能的技术和实施技巧。.

Factorio 在线游戏服务器搭建教程

本文是一份全面的指南,指导您如何搭建 Factorio 在线游戏服务器。它将通过技术和操作步骤,帮助您创建一个稳定安全的服务器,从而获得良好的多人游戏体验。从选择服务器位置、安装所需软件,到安全设置和备份,本文涵盖了所有内容。.
0 股票
0
0
0
0

为什么要在Linux服务器上搭建Factorio服务器?

本指南提供了有关如何设置在线游戏服务器的分步技术指南。 异星工厂 本文介绍了在 Linux 服务器(VPS 或独立服务器)上进行相关设置的方法。 服务器管理员、游戏玩家和游戏开发团队 旨在为多人游戏创建稳定、低延迟、安全的服务器。.

为什么选择VPS或独立服务器来玩Factorio?

Factorio 不适合玩家众多或安装了大量模组的服务器。 强大的单核CPU需要足够的内存和快速的I/O速度。VPS和专用服务器之间的选择取决于玩家数量和预算:

  • 小组(最多 8 名玩家): 一台配备快速 CPU、2 个虚拟 CPU 和 4-8GB 内存的 VPS 就足够了。.
  • 中型组(8-32名玩家): 4 个虚拟 CPU,8-16GB 内存,建议使用 NVMe 固态硬盘。.
  • 大型服务器(>32 名玩家或大型模组): 一台配备 6-12 个高频核心、32GB 以上内存和 NVMe 的专用服务器就足够了。.

为了获得最低的延迟,选择正确的位置(在全球 85 多个位置中)非常重要:欧洲(法兰克福、阿姆斯特丹)、美国东部(新泽西州)、美国西部(加利福尼亚州)、亚洲(新加坡、东京)、澳大利亚(悉尼)和巴西(圣保罗)。.

Factorio 无头模式的先决条件和下载

Linux 服务器的先决条件:

  • Linux 发行版: Ubuntu 20.04/22.04 或 Debian 11+ 受到推崇的。.
  • 以非root用户身份运行服务器。.
  • SSH访问权限和软件包安装能力。.

基本命令示例(Ubuntu):

sudo apt update && sudo apt upgrade -y
sudo apt install -y wget unzip tar libstdc++6
sudo adduser --disabled-login --gecos "Factorio Server" factorio
sudo usermod -aG sudo factorio

下载无头版本:

  1. 从 Factorio 官方网站下载无头版本(请检查相关版本)。.
  2. 示例(将 URL 替换为官方链接):
sudo -u factorio mkdir -p /opt/factorio
cd /opt/factorio
sudo -u factorio wget https://www.factorio.com/get-download/latest/headless/linux64 -O factorio_headless.tar.xz
sudo -u factorio tar -xf factorio_headless.tar.xz

初始设置和服务器运行

使用新存档运行服务器或加载现有存档:

使用新存档启动服务器:

sudo -u factorio /opt/factorio/bin/x64/factorio --start-server /opt/factorio/saves/my-save.zip --server-settings /opt/factorio/config/server-settings.json --port 34197

加载现有存档(加载最新存档):

sudo -u factorio /opt/factorio/bin/x64/factorio --start-server-load-latest

端口:

  • 游戏移植: UDP 34197(默认)
  • RCON: 启用后,您可以指定自定义 TCP 端口(例如 27015)。设置位于文件中。 server-settings.json 它已放置。.

创建 systemd 服务以自动启动

创建服务文件以自动启动和管理服务器:

sudo tee /etc/systemd/system/factorio.service > /dev/null <<'EOF'
[Unit]
Description=Factorio Headless Server
After=network.target

[Service]
User=factorio
Group=factorio
Type=simple
WorkingDirectory=/opt/factorio
ExecStart=/opt/factorio/bin/x64/factorio --start-server /opt/factorio/saves/my-save.zip --server-settings /opt/factorio/config/server-settings.json --port 34197
Restart=on-failure
RestartSec=10
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

激活并运行服务:

sudo systemctl daemon-reload
sudo systemctl enable --now factorio.service
sudo journalctl -u factorio -f

配置文件 server-settings.json (要点)

途中 /opt/factorio/config/server-settings.json 检查或编辑以下设置:

  • 姓名: 服务器名称
  • 描述: 玩家须知
  • 最大玩家数: 最多玩家
  • 游戏密码: 登录可选(建议私服用户使用)
  • 需要用户验证: 对于 Steam 身份验证(如果需要)为真

简单示例:

{
  "name": "My Factorio Server",
  "description": "سرور رسمی جامعه",
  "max_players": 32,
  "game_password": "securepassword",
  "require_user_verification": true
}

在 Docker 中运行 Factorio(替代方法)

如果您更喜欢使用 Docker,以下示例提供了一种快速且隔离的运行方式:

docker run -d --name=factorio \
  -p 34197:34197/udp \
  -p 27015:27015/tcp \
  -v /host/factorio/saves:/factorio/saves \
  -v /host/factorio/config:/factorio/config \
  --restart unless-stopped \
  --user 1000:1000 \
  factoriotools/factorio:latest

优势: 隔离性强,易于更新和备份。.

安全和防火墙

游戏服务器基本安全建议:

1. 限制 SSH 访问:

sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl reload sshd

2. UFW 示例:仅打开必要的端口:

sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
# اجازه SSH (اگر پورت 22 یا پورت دلخواه)
sudo ufw allow 22/tcp
# اجازه پورت بازی (UDP)
sudo ufw allow 34197/udp
# اگر RCON فعال است:
sudo ufw allow 27015/tcp
sudo ufw enable

3. 安装 Fail2Ban 以保护 SSH:

sudo apt install fail2ban -y

自动备份和保存存档

以下是一个简单的备份脚本示例,可使用 cron 或 systemd 定时器运行:

#!/bin/bash
SAVE_DIR=/opt/factorio/saves
BACKUP_DIR=/var/backups/factorio
mkdir -p $BACKUP_DIR
TIMESTAMP=$(date +%F_%T)
cp $SAVE_DIR/*.zip $BACKUP_DIR/factorio_save_$TIMESTAMP.zip
# نگهداری آخرین 7 بکاپ
ls -1t $BACKUP_DIR | tail -n +8 | xargs -I{} rm -f $BACKUP_DIR/{}

添加到 crontab 以每小时运行一次:

0 * * * * /usr/local/bin/factorio_backup.sh

建议:将备份同步到对象存储(S3 或兼容存储)或其他服务器,以便在出现问题时保留数据。.

针对低延迟和更佳性能进行了优化

  • 选择地点: 选择距离玩家最近的地理位置,或者选择玩家聚集的中心位置。.
  • 高频CPU: Factorio 模拟对单核处理器要求很高;最好选择单核频率较高的服务器(3.5GHz 以上)。.
  • 内存和磁盘: 保存和加载游戏世界时,需要使用 SSD/NVMe 来实现快速 I/O。.
  • 网络和QoS: 确保足够的带宽(尤其是上传带宽),必要时使用低延迟网络和 BGP。.

监控和日志

查看日志并检查服务器状态:

sudo journalctl -u factorio -f
# یا اگر لاگ در فایل است:
tail -f /opt/factorio/factorio-current.log

推荐工具: Netdata普罗米修斯 + 格拉法纳 或者更简单的工具,例如 htopnload 查看资源使用情况。.

模组和更新提示

  • 测试模式: 在将模组安装到主服务器之前,请先在测试环境中试用;模组可能会导致崩溃或运行速度变慢。.
  • 版本兼容性: 客户端和服务器版本必须匹配。.
  • 更新方法: 更新服务器时,请务必备份存档,停止服务,执行更新,然后重新启动服务器。.

常见问题的实际示例和故障排除

问题:玩家无法连接

  • 检查防火墙和端口: ufw 状态检查是否有开放端口 ss.
  • 检查服务器是否正在监听UDP端口34197:
  • sudo ss -unlp | grep 34197
  • 检查日志中是否有错误或相关信息。.

问题:玩家数量增加时服务器出现延迟。

  • 检查 CPU 频率、单核负载、内存使用情况和 I/O。.
  • 如有需要,可升级到更强大的核心实例或将玩家分配到多个服务器上。.

使用公司服务可获得最佳体验

如果您可以使用以下服务: 全球85多个地点游戏专用VPS反DDoS服务器采用 NVMe 的云服务器 您可以显著提升游戏体验。.

适用案例:

  • 选择靠近玩家的位置以降低延迟。.
  • 例如,采用高频处理器和 NVMe 以获得更好的性能。.
  • 使用反DDoS服务器来防御UDP攻击。.
  • 如果您需要高级路由或任播功能,请使用网络和 BGP。.
  • CDN 用于静态内容(模组、图像)— 请注意,CDN 不适用于 UDP 实时游戏。.

结论和最终建议

设置 Factorio 服务器需要注意硬件选择(强大的单核 CPU、NVMe)、合适的位置、安全设置和定期备份。.

快速入门建议汇总:

  1. 选择配备强大 CPU 和 NVMe 的 VPS。.
  2. 安装无头版本并按照说明配置 systemd 服务。.
  3. 实现防火墙和备份自动化。.
  4. 根据玩家选择服务器位置,必要时使用反DDoS服务。.

有关计划和建议的信息,您可以访问支持部分。.

常见问题解答

您可能也喜欢

战神2游戏剧情

引言:奎托斯,这位曾经的凡人战士,击败了战神阿瑞斯,成为了新的战神。然而……