《异星工厂》是由slpwnd制作发行的一款模拟经营类作品,在游戏中玩家的飞船坠落的在了异星球,在玩家需要利用星球上的资源生存下来并建立一个工厂。收集资源,升级自己的设备,建设基础设施,让生产自动化,并打败你的敌人
环境准备:Centos7.x
系统更新、国内服务器跟换阿里云源 境外服务器直接更新系统即可
一、系统更新 更换源
首先备份原来的源,以防不可预测的错误能有恢复的余地1
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
导入阿里云Centos7源1
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者1
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
添加EPEL1
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
1
curl -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
清除YUM缓存1
yum clean all
缓存阿里云源1
yum makecache
至此已经成功更换,可以更新系统(非必要,时间较久)1
yum -y update
如更新了系统记得重启
二、Centos glibc-2.18 环境编译
安装gcc与wget1
2yum install gcc -y
yum install wget -y
下载glibc-2.18.tar.gz1
wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
私有加速地址(国内)1
wget https://webstation.zimri.online/share/Game/factorio/server/glibc-2.18.tar.gz
解压并进入到glibc-2.181
2tar -xvf glibc-2.18.tar.gz
cd glibc-2.18
创建build文件夹1
2
3mkdir build
cd build
编译1
2
3
4
5
6
7../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make -j4
make install
ldd --version
三、screen 安装
Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。
用户可以在一个screen会话中创建多个screen子会话,在每一个screen会话(或子会话)中就像操作一个真实的telnet/SSH连接窗口
1 | yum install screen -y |
四、防火墙例外
默认 CentOS7 使用的防火墙 firewalld
查看防火墙状态1
2
3firewall-cmd --state
或者
systemctl status firewalld
返回success
代表已开启
如果关闭状态以下步骤可以不执行 也可以自行选择是否继续,默认是为了安全我们打开防火墙
状态关闭,需要启动防火墙1
systemctl start firewalld
开机启用1
systemctl enable firewalld
开放factorio指定端口1
firewall-cmd --zone=public --add-port=34197/udp --permanent
当然ssh端口以防万一 也加上1
sudo firewall-cmd --zone=public --permanent --add-service=ssh
3、重新载入,使配置生效
重载一下防火墙1
sudo firewall-cmd --reload
五、Factorio 服务端准备
1.下载程序 最新版 或按需
1 | cd ~ |
1 | wget https://www.factorio.com/get-download/0.17.79/headless/linux64 |
2.私有加速地址(国内)
1 | wget https://webstation.zimri.online/share/Game/factorio/server/0.17.79/linux64 |
3.解压压缩包
1 | tar -xvf linux64 |
4.推荐将项目移动到 /opt目录下
1 | mv -f /root/factorio /opt/factorio |
5.编辑配置文件
进入/opt/factorio/data文件夹,编辑server-settings.example.json文件1
2cd /opt/factorio/data
cp server-settings.example.json server-settings.json
必要的一些设置
1 | "name": "[CN]服务器名字", |
6.生成地图*
第一次建立服务器 无论有没有地图 都需要执行一下 生成地图命令 才能正确加载1
cd /opt/factorio
1
./bin/x64/factorio --create ./saves/test1.zip
7.开服
因为Factorio SSH命令独占 所以使用之前安装screen 命令 来达到后台运行1
screen -S factorio
指定地图命令开服1
/opt/factorio/bin/x64/factorio --config /opt/factorio/config/config.ini --port 34197 --start-server /opt/factorio/saves/test1.zip --server-settings /opt/factorio/data/server-settings.json
以saves文件内最新地图存档开服命令1
/opt/factorio/bin/x64/factorio --start-server-load-latest --server-settings /opt/factorio/data/server-settings.json
然后直接退出SSH窗口即可
8.管理命令
登陆服务器
连接SSH后
显示后台执行的ssh命令行1
screen -ls
输出1
2
3 There is a screen on:
1051.factorio_auto (Attached)
1 Socket in /var/run/screen/S-root.
连接进去screen 输出前面有进程ID 可以直接使用ID登陆(ID是动态的)1
screen -r 1051
立即存档
登陆进sceen后 直接输入1
/server-save
即可存档
退出factorio服务器
登陆进sceen后 直接按 Centr + C
服务器关闭
六、开机自启动
因为Factorio SSH命令独占 开机启动命令选用 screen 带saves文件内最新地图存档开服命令
建立开机脚本1
cd /opt/factorio
1
2mkdir start
cd start1
2touch screen.sh
vi screen.sh
INSERT内容如下1
2
3
4
5
6
7screen_name="factorio_auto"
screen -dmS $screen_name
cmd="/opt/factorio/start/factorio-run.sh";
screen -x -S $screen_name -p 0 -X stuff "$cmd"
screen -x -S $screen_name -p 0 -X stuff '\n'
输入:wq保存1
2touch factorio-run.sh
vi screen.sh
INSERT内容如下1
/opt/factorio/bin/x64/factorio --start-server-load-latest --server-settings /opt/factorio/data/server-settings.json
输入:wq保存
授予执行权限1
2chmod +x factorio-run.sh
chmod +x screen.sh
编辑rc.local 最后一行加入上面建立的脚本1
vi /etc/rc.d/rc.local
1
2... ...
/opt/factorio/start/screen.sh
授予执行权限1
chmod +x /etc/rc.d/rc.local