|
|
本帖最后由 yacoo 于 2024-7-10 14:33 编辑
子曰“独乐乐不如众乐乐” 联机玩往往能带来更多欢乐,更多交流。但是开联机版并不容易,一般的家庭或者办公室电脑在没有独立的外网IP情况下,不能开服务端。即使你有独立的外网IP。如果你不会做IP内网隐射,也没用。这需要的网络知识较多,不是今天探讨的重点。就先略过。
运行无头版服务端有前提条件:
1、你应该购买过 异星工厂 正式授权账号,无论你是在steam 上买的,还是其他什么地方。总之要有。 若没有不能将服务器发布在异星工厂的网络上。 不过可以私下组网玩。
2、你有centos 服务器(电脑), 而且至少会做初步的操作,比如运行命令、上传下载文件。 不知道命令没关系,本文讨论的重点。下面会有说明
第一步:到异星工厂官网下载“无头版服务端”
https://factorio.com/download
下载完成后,应该能得到一个 factorio_headless_x64_1.1.104.tar.xz 这样的文件。 当然了,版本不同,文件名称不同。
为了后面便于使用,请更改名称,但是千万不要改 .tar.xz 这个后缀。 比如更名为 104.tar.xz (PS:在centos上所有操作都靠命令,名称越简单越便于操作)
请注意,一般的windows系统中的压缩程序可以对这个进行解压缩,但是千万别其手快解压缩了。这个 *.tar.xz 需要直接上传到 centos
第二步:开始操作你的centos服务器。
PS: 阿里云,华为云,腾讯云 等等均有售,而且各种优惠。说实话,很便宜。 建议购买2核4G 或 4核8G,带宽20M但是按“流量付费” 花不了你几个钱。
如果购买的云服务器,记得开放你需要用的端口,若搞不明白,就全开。 没人黑这种毫无数据价值的服务器。难道黑客要盗取你的存档?
本篇幅说明以CentOS 7.9为例。安装的时候请做最小化安装,不需要安装各种不太需要的组件。
1,使用centos连接软件,将之前准备好的1146.tar.xz 上传到 centos的 opt 目录下。并解压缩(至于为毛要在opt下运行,一般人不需要了解,牛人无须解释。)
命令序列
cd / :进入跟目录
cd opt :进入opt 文件夹
此时应该能看到上传好的104.tat.xz
xz -d 104.tar.xz :解压缩xz
tar -xf 104.tar :解压缩 tar
此时输入命令 ls 应该能看到faceorio 文件夹。第一步完成
2,检查前置程序 glibc-2.18 这是centos操作系统的一个插件,但一般并没有默认安装,若没有需要手动安装。
查看GLBLI 的版本命令:
strings /usr/lib64/libc.so.6 | grep ^GLIBC
如果有下图的 2.18,就跳过这一步,若没有,就必须安装Glibc 2.18
特别说明,异星工厂的服务端运行必须是2.18,哪怕你有更高版本也不行,只认2.18
若有这个 2.18 就直接进入下一步,若无就安装。
先用老源安装 wget
yum -y install wget
cd /etc/yum.repos.d
找到这个文件,更名并备份:CentOS-Base.repo
mv CentOS-Base.repo CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo --装阿里云的软件源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo --顺便按装epel
yum -y install gcc gcc-c++ kernel-devel --安装好gcc
yum clean all --清理缓存
yum makecache --生存新的缓存,需要时间略长
-------------安装glibc 2.18 。以下四个命令依次输入,最后一个命令需要时间很长,请耐心等候,直到命令行出现。
wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar -xvf glibc-2.18.tar.gz
cd glibc-2.18
mkdir build && cd build && ../configure --prefix=/usr && make -j4 && make install
再次使用glibc版本查询命令,看看2.18是否安装成功。
3,准备工作基本完成。开始配置准备服务端。
3.1 下载服务端中的 server-settings.example.json 更名为 server-settings.json 并打开进行编辑 。(建议使用字符编辑软件sublime 。文本编辑器也能搞。但是弄不好UTF-8编码会出错。)配置的时候,可参考我下面的解释。
{
"name": "【CN】标准图。",
"description": "Q群145458310专用服",
"tags": ["矿无限", "角色快"],
"_comment_max_players": "能够加入游戏的最大人数,设置为0则不限制人数。管理员不受限制",
"max_players": 0,
"_comment_visibility": ["public: 游戏将在官方Factorio匹配服务器上发布",
"lan: 游戏在局域网中公布"],
"visibility":
{
"public": true,
"lan": true
},
"_comment_credentials": "您的factorio.com登录凭据。公布在官网公共服务器列表的必备条件",
"username": "",
"password": "",
"_comment_token": "身份验证令牌。可以用来代替上面的“密码”。",
"token": "**********" , --如果你是正版玩家,到官网看个人用户下面,可以找到这个 token 的值
"_game_password": "进入游戏所需要的密码。",
"game_password": "9999",
"_comment_require_user_verification": "版权验证",
"require_user_verification": true,
"_comment_max_upload_in_kilobytes_per_second" : "optional, default value is 0. 0 means unlimited.",
"max_upload_in_kilobytes_per_second": 0,
"_comment_max_upload_slots" : "optional, default value is 5. 0 means unlimited.",
"max_upload_slots": 5,
"_comment_minimum_latency_in_ticks": "设置速度,0为不限制",
"minimum_latency_in_ticks": 0,
"_comment_max_heartbeats_per_second": "网络应答速度,最小为6,最大为240",
"max_heartbeats_per_second": 60,
"_comment_ignore_player_limit_for_returning_players": "已在此图的老玩家再来,不受玩家上限的限制",
"ignore_player_limit_for_returning_players": true,
"_comment_allow_commands": "谁能使用命令, true, false and admins-only",
"allow_commands": "admins-only",
"_comment_autosave_interval": "自动存档的间隔",
"autosave_interval": 120,
"_comment_autosave_slots": "server autosave slots, it is cycled through when the server autosaves.",
"autosave_slots": 2,
"_comment_afk_autokick_interval": "How many minutes until someone is kicked when doing nothing, 0 for never.",
"afk_autokick_interval": 0,
"_comment_auto_pause": "Whether should the server be paused when no players are present.",
"auto_pause": false,
"only_admins_can_pause_the_game": true,
"_comment_autosave_only_on_server": "Whether autosaves should be saved only on server or also on all connected clients. Default is true.",
"autosave_only_on_server": true,
"_comment_non_blocking_saving": "Highly experimental feature, enable only at your own risk of losing your saves. On UNIX systems, server will fork itself to create an autosave. Autosaving on connected Windows clients will be disabled regardless of autosave_only_on_server option.",
"non_blocking_saving": false,
"_comment_segment_sizes": "Long network messages are split into segments that are sent over multiple ticks. Their size depends on the number of peers currently connected. Increasing the segment size will increase upload bandwidth requirement for the server and download bandwidth requirement for clients. This setting only affects server outbound messages. Changing these settings can have a negative impact on connection stability for some clients.",
"minimum_segment_size": 25,
"minimum_segment_size_peer_count": 20,
"maximum_segment_size": 100,
"maximum_segment_size_peer_count": 10
}
3.2 建立管理员名单
建立一个admin-list.json 里面为空,然后每行一个游戏玩家的名字。
管理员在游戏中输入命令 /admin 可开启管理菜单,可以踢人、设置白名单,黑名单或者增加别人为管理员。
3.3 在本地电脑开启游戏建立一个游戏存档,可以是场景或者普通游戏。然后保存。
3.4 在centos服务器上 op\factorio\ 下 新增两个文件夹saves 和mods 分别用于存储 存档和mod 注意,联机版本也是可以用mod的,放进服务端的mods即可,若某些mod需要特殊的配置,也在本地配置好,然后把本地mods文件夹中的 mod-settings.dat 一并上传。
将在本地建立好的存档文件上传到 saves 文件夹,
3.5 这时候我们可以启动服务端了。但是先别急。要新建一个桌面进程。这里需要解释一下。
这时候当然是可以启动成功的,但是你不能关闭与centos服务器之间的链接。你一关,游戏服务端进程也就关闭了。
所以这需要非常智慧。万恶的游戏厂商MMD,他们不说,要自己想办法。
3.6 安装screen 服务,并在screen服务下启动游戏服务端
sudo yum install screen --安装screen功能
screen -S 1 --开启一个名称为“1”的独立进程。
在本进程下启动游戏服务端,命令如下: (假设存档名称为501.zip 具体请更换为你本人设定的存档名称。)
/opt/factorio/bin/x64/factorio --port 34197 --start-server /opt/factorio/saves/501.zip --server-adminlist /opt/factorio/server-adminlist.json
启动完成后,使用命令:
systemctl stop firewalld.service --关闭所有防火墙,开放所有端口。懒得一个一个的开启端口了。这样搞简单直接,不要担心职业黑客偷你的存档。
启动完成后,使用 Ctrl + A +D 返回主进程。此时服务端在进程1中独立运行。
此时可断开与服务器的连接,不会影响进程1的独立运行。
需要管理服务端的时候重新连接好服务器SSH
screen -R 1 返回进程1
Ctrl + C 关闭游戏服务端,并自动存档,会自动覆盖最初的存档。
对centos一窍不通兄弟,就别勉强了。等别人弄好了开完即可。
|
评分
-
1
查看全部评分
-
|