搭建 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