为什么要在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下载无头版本:
- 从 Factorio 官方网站下载无头版本(请检查相关版本)。.
- 示例(将 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 sshd2. 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 enable3. 安装 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, 普罗米修斯 + 格拉法纳 或者更简单的工具,例如 htop 和 nload 查看资源使用情况。.
模组和更新提示
- 测试模式: 在将模组安装到主服务器之前,请先在测试环境中试用;模组可能会导致崩溃或运行速度变慢。.
- 版本兼容性: 客户端和服务器版本必须匹配。.
- 更新方法: 更新服务器时,请务必备份存档,停止服务,执行更新,然后重新启动服务器。.
常见问题的实际示例和故障排除
问题:玩家无法连接
- 检查防火墙和端口:
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)、合适的位置、安全设置和定期备份。.
快速入门建议汇总:
- 选择配备强大 CPU 和 NVMe 的 VPS。.
- 安装无头版本并按照说明配置 systemd 服务。.
- 实现防火墙和备份自动化。.
- 根据玩家选择服务器位置,必要时使用反DDoS服务。.
有关计划和建议的信息,您可以访问支持部分。.









