Linux Study Lab !

当前位置:   网站首页 >> Linux 应用实践

搭建 Factorio 2.x 版本私人专用服务器

由于最近在玩这游戏,所以随手搭了一个服务器,搭建过程很简单,主要参考官方wiki,不过官方wiki里的内容有点老,可能会造成一些操作上的误解。

首先起一台centos 7的云服务器,把补丁都打好,防火墙服务关了,selinux关了。更新基础包时如果源已经不维护失效了,先尝试切换到阿里云维护的7的源,或直接使用rockylinux8或以上版本的系统。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget -O /etc/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

以上是切换源到阿里云的示例

cd /tmp
yum install gcc
wget http://ftp.gnu.org/gnu/glibc/glibc-2.30.tar.gz
tar xvzf glibc-2.30.tar.gz
cd glibc-2.30
mkdir build
cd build
../configure --prefix='/opt/glibc-2.30'

把glibc编译一下,最低要求2.30版本,可以编译更新的版本,但是编译新版的话需要参考本站内文章先把默认安装的gcc4.8.x的版本升级一下才能编译

然后修改一下glibc的配置文件(注意当前目录还在/tmp/glibc-2.30/build 下

vi ../scripts/test-installation.pl

找到179行,将

 if (/$ld_so_name/) {

改为

 if (/\Q$ld_so_name\E/) {

保存,然后 make &&make install

从官网下载最新的服务端程序

wget https://factorio.com/get-download/stable/headless/linux64
mv linux64 linux64.tar.xz
tar -xf linux64.tar.xz

解压后放在/opt/目录下

然后进入该目录结构

/opt/factorio/bin/x64/

这个目录里的factorio文件就是服务端二进制可执行文件,新建一个用户专门用于运行服务端,请不要使用root,这里新建一个fact做例子

useradd fact

然后把这个目录的用户权限给到新建的用户

cd /opt
chown fact factorio -R

把sudo权限赋予一下fact用户

vi /etc/sudoers
编辑文档内容,在root下面添加
fact ALL=(ALL) NOPASSWD:ALL
保存

然后切换到fact用户

su fact

编辑服务端配置文件

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

服务端配置文件里有如下内容要修改,其他的内容按自己需要

"name": "改成你的服务器名字"
"description": "改成你的服务器说明"
"max_players": 0,       #默认值是0表示不限制,有需要自己修改
"public": false,        #如果想要显示在官方服务器的查找服务器列表里,需要改成true
"lan": true             #如果想要显示在局域网游戏列表里,需要改成true,如果是ip直连,此处可以改为false
"game_password": "加入游戏的密码,留空则无密码",
"require_user_verification": true,    #如果想要盗版用户也可以加入你的服务器,这里改成false

接下来启动服务器即可

mkdir /opt/factorio/saves
/opt/glibc-2.30/lib/ld-2.30.so --library-path /opt/glibc-2.30/lib ./bin/x64/factorio --create ./saves/my-save.zip --map-gen-settings my-map-gen-settings.json --map-settings my-map-settings.json --executable-path ./bin/x64/factorio
/opt/glibc-2.30/lib/ld-2.30.so --library-path /opt/glibc-2.30/lib ./bin/x64/factorio --server-settings ./data/server-settings.json --start-server ./saves/my-save.zip --executable-path ./bin/x64/factorio

如果要启动拷贝过来的游戏存档继续玩,先将游戏存档复制到saves目录下,再

/opt/glibc-2.18/lib/ld-2.30.so --library-path /opt/glibc-2.30/lib ./bin/x64/factorio --server-settings ./data/server-settings.json --start-server ./saves/yourgame.zip --executable-path ./bin/x64/factorio

一旦成功加载过一次自己的存档并游玩保存后,以后每次都可以使用以下命令来加载

nohup /opt/glibc-2.30/lib/ld-2.30.so --library-path /opt/glibc-2.30/lib ./bin/x64/factorio --server-settings ./data/server-settings.json --start-server-load-latest --executable-path ./bin/x64/factorio > server.log 2>&1 &

也可以使用screen命令来处理切换到后端运行

yum install epel-release -y
yum install screen -y
screen -S factorio
/opt/glibc-2.30/lib/ld-2.30.so --library-path /opt/glibc-2.30/lib ./bin/x64/factorio --server-settings ./data/server-settings.json --start-server-load-latest --executable-path ./bin/x64/factorio

运行后可以使用ctrl+a+d切出当前的screen线程且不影响服务器进程的运行状态,接着可以exit退出控制台链接。如果要回去的话,输入

screen -r factorio

更多信息,请查阅官方wiki

多人游戏 - Factorio Wiki


发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项