异星工厂Factorio服务器搭建

之前跟同学虚拟局域网联机,总是要等他上线开游戏才能玩,为了解决这个问题,我们在服务器上搭建个服务端,这样就可以随时都能玩到了

LINK / 链接

系统:CentOS 7

游戏版本:0.16.51

下载服务端文件

在此之前,你先要检查一下你服务器有没有 wget 这个包。

在控制台输入 wget --help 如果有输出内容且不是错误信息则说明已安装这个包。

如果你没有安装就用 yum install wget,注意如果你的系统不是CentOS那你就要用你这个系统的包管理,不知道是用啥包管理在浏览器搜索。

如果安装不了wget包,那你去搜索一下你的系统如何安装wget包

1. 使用wget下载官网的服务端文件

wget https://factorio.com/get-download/0.16.51/headless/linux64

上面命令中的 0.16.51 是你游戏的版本,在主菜单的关于里可以看到版本,要对应版本,否则无法游玩

2. 将下载到的linux64文件解压出来

tar -xvf linux64

3. 修改服务器配置文件

进入factorio/目录的data文件夹,拷贝并重命名server-settings.example.json 为 server-settings.json,然后编辑一下关键内容

(server-settings.example.json 这个是服务器配置示例文件)

请一行一行的执行命令,别那么懒

cd factorio/data
cp server-settings.example.json server-settings.json
vim server-settings.json

修改第27行 "require_user_verification": true,将true改为false,这个是游戏正版检测,我想大家都是用“盗版”玩的吧 [滑稽]

扩展知识:Vim

先按Esc退出到指令模式

显示行号 :set number

保存退出 :wq

不保存退出 :q

其余的配置项的翻译请看 Factorio(异星工厂)服务器配置文件翻译 - IDZD

返回factorio/文件夹 cd ..

安装并编译GLIBC 2.18

老规矩,要安装先检查,输入 gcc -v,如果有正常输出信息没报错,就有安装

安装GCC yum group install "Development Tools"

检查有没有GLIBC strings /usr/lib64/libc.so.6 | grep ^GLIBC_

如果输出一堆以GLIBC_开头的红色字符串加上数字,则说明已安装了

1. 下载和编译

(如果你有强迫症,想优化一下目录结构,你可以在返回上一级目录 cd .. 安装GLIBC)

下载GLIBC 2.18,并解压出来

wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar xvzf glibc-2.18.tar.gz

(如果你安装了GLIBC就调到下面这一步 ↓↓↓)

进入glibc-2.18/目录,创建build文件夹并进入该目录生成编译配置

cd glibc-2.18/
../configure --prefix=/usr

开始编译,此过程会很慢,请耐心等待,编译过程中别退出SSH终端,你可以最小化SSH终端的窗口以便你使用电脑干其它事情,但别作死到自动重启电脑

make -j2

2. 安装 make install 此过程会很慢,请耐心等待,安装过程中别退出SSH终端,你可以最小化SSH终端的窗口以便你使用电脑干其它事情,但别作死到自动重启电脑

服务器运行前的配置

1. 先在你的电脑创建一个存档,或者你已经有了一个存档,进入游戏的目录*(每个人的安装目录都不一样,你可以在文件夹管理器中搜索一下但这很慢,win的鸡肋之处)*找到saves/文件夹,里面的.zip文件就是你的存档了,文件名是你保存游戏时输入的内容

2. 进入服务器的factorio/目录,创建save文件夹*(save可以自定义)*,把你的存档上传到这里面

运行服务器

1. 在factorio/目录里,使用以下指令来运行服务器

./bin/x64/factorio --port 1555 --start-server ./save/a.zip --server-settings ./data/server-settings.json

你一退出SSH终端或按了Ctrl + C键,就会关闭服务器运行脚本

如果你想退出SSH终端也能一直运行服务器,那你就要将运行脚本挂到后台

nohup ./bin/x64/factorio --port 1555 --start-server ./save/a.zip --server-settings ./data/server-settings.json &

(你也可以用其它的包去挂起运行脚本,这里我用自带的nohup)

2.如何关闭挂在后台的运行脚本

根据端口号查找游戏进程

netstat -nlp |grep :1555

进程pid在行末的/factorio前面的几个数字

kill 进程pid 即可关闭

END.

没有配图是因为我懒,没有配图的教程是有点难懂的,纯文字看起来会很困且枯燥,将就一下吧,这也是我的笔记

如果有地方不通畅的、有错的可以提出来