《異星工廠》是由 slpwnd 製作發行的一款模擬經營類作品,在遊戲中玩家的飛船墜落的在了異星球,在玩家需要利用星球上的資源生存下來並建立一個工廠。
收集資源,升級自己的設備,建設基礎設施,讓生產自動化,並打敗你的敵人
環境準備:Centos7.x
系統更新、國內伺服器更換阿里雲源 境外伺服器直接更新系統即可
一、系統更新 更換源#
首先備份原來的源,以防不可預測的錯誤能有恢復的餘地
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
導入阿里雲 Centos7 源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
添加 EPEL
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
清除 YUM 快取
yum clean all
快取阿里雲源
yum makecache
至此已經成功更換,可以更新系統(非必要,時間較久)
yum -y update
如更新了系統記得重啟
二、Centos glibc-2.18 環境編譯#
安裝 gcc 與 wget
yum install gcc -y
yum install wget -y
下載 glibc-2.18.tar.gz
wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
私有加速地址 (國內)
wget https://webstation.zimri.online/share/Game/factorio/server/glibc-2.18.tar.gz
解壓並進入到 glibc-2.18
tar -xvf glibc-2.18.tar.gz
cd glibc-2.18
創建 build 文件夾
mkdir build
cd build
編譯
../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 連接窗口
yum install screen -y
四、防火牆例外#
默認 CentOS7 使用的防火牆 firewalld
查看防火牆狀態
firewall-cmd --state
或者
systemctl status firewalld
返回success
代表已開啟
如果關閉狀態以下步驟可以不執行 也可以自行選擇是否繼續,默認是為了安全我們打開防火牆
狀態關閉,需要啟動防火牆
systemctl start firewalld
開機啟用
systemctl enable firewalld
開放 factorio 指定端口
firewall-cmd --zone=public --add-port=34197/udp --permanent
當然 ssh 端口以防萬一 也加上
sudo firewall-cmd --zone=public --permanent --add-service=ssh
3、重新載入,使配置生效
重載一下防火牆
sudo firewall-cmd --reload
五、Factorio 伺服器準備#
1. 下載程式 最新版 或按需#
cd ~
wget https://www.factorio.com/get-download/0.17.79/headless/linux64
2. 私有加速地址 (國內)#
wget https://webstation.zimri.online/share/Game/factorio/server/0.17.79/linux64
3. 解壓壓縮包#
tar -xvf linux64
4. 推薦將項目移動到 /opt 目錄下#
mv -f /root/factorio /opt/factorio
5. 編輯配置文件#
進入 /opt/factorio/data 文件夾,編輯 server-settings.example.json 文件
cd /opt/factorio/data
cp server-settings.example.json server-settings.json
必要的一些設置
"name": "[CN]伺服器名字",
"description": "伺服器描述",
"username": "factorio官網註冊的賬戶",
"password": "factorio密碼",
"token": "設置token 格式類似b50704b226ab50704b226ab50704b226a",
...
6. 生成地圖 *#
第一次建立伺服器 無論有沒有地圖 都需要執行一下 生成地圖命令 才能正確加載
cd /opt/factorio
./bin/x64/factorio --create ./saves/test1.zip
7. 開服#
因為 Factorio SSH 命令獨佔 所以使用之前安裝 screen 命令 來達到後台運行
screen -S factorio
指定地圖命令開服
/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 文件內最新地圖存檔開服命令
/opt/factorio/bin/x64/factorio --start-server-load-latest --server-settings /opt/factorio/data/server-settings.json
然後直接退出 SSH 窗口即可
8. 管理命令#
登錄伺服器#
連接 SSH 後
顯示後台執行的 ssh 命令行
screen -ls
輸出
There is a screen on:
1051.factorio_auto (Attached)
1 Socket in /var/run/screen/S-root.
連接進去 screen 輸出前面有進程 ID 可以直接使用 ID 登錄(ID 是動態的)
screen -r 1051
立即存檔#
登錄進 sceen 後 直接輸入
/server-save
即可存檔
退出 factorio 伺服器#
登錄進 sceen 後 直接按 Centr + C
伺服器關閉
六、開機自啟動#
因為 Factorio SSH 命令獨佔 開機啟動命令選用 screen 帶 saves 文件內最新地圖存檔開服命令
建立開機腳本
cd /opt/factorio
mkdir start
cd start
touch screen.sh
vi screen.sh
INSERT 內容如下
screen_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'
輸入保存
touch factorio-run.sh
vi screen.sh
INSERT 內容如下
/opt/factorio/bin/x64/factorio --start-server-load-latest --server-settings /opt/factorio/data/server-settings.json
輸入保存
授予執行權限
chmod +x factorio-run.sh
chmod +x screen.sh
編輯 rc.local 最後一行加入上面建立的腳本
vi /etc/rc.d/rc.local
... ...
/opt/factorio/start/screen.sh
授予執行權限
chmod +x /etc/rc.d/rc.local