Mobile wallpaper
4544 字
23 分钟

异星工厂联机开服教程

首先,工厂开服有6种方式:#

1:游戏内直接创建房间。
2:使用ZeroTier虚拟局域网 或者 游侠等对战平台。
3:通过steam好友加入。
4:使用有公网IP的linux电脑开服。(体验最好)
5:使用有公网IP的windows电脑开服。(公网IPV6也算!!)
6:用家里无公网IP的电脑开服。(反向代理)

PS: 本教程重点是第四种方法,由于篇幅限制,其他的几种方法会略显简陋,谢谢理解。

1:游戏内创建房间。#

工厂官方会提供一个NAT握手服务,直接游戏内选择多人游戏-搭建服务器创建房间,没啥技术含量,打开互联网开关就行,别人可以在联机大厅找到你。

01

但是由于工厂的NAT握手服务器在外国,所以NAT打孔经常失效,成功率视你家网络环境而定,优点是上手简单,成本低。

缺点是成功率低,还不稳定容易掉线,此方法早已被大部分玩家抛弃。 看见这个”组局服务器连接已恢复”,就说明成功了。

02

2:使用ZeroTier把大家连接成一个局域网,然后在游戏内创建房间,勾选局域网。#

或者用游侠等对战平台,游侠会有服务器全程帮你们转发所有数据,而不仅仅是”帮你们握个手”。
由于此方法使用的是”局域网”连接功能,可以关闭”正版验证”,据我所知一般都是盗版玩家使用比较多,其实正版用户也能用。
但是我本人没用过游侠,不知道稳定性和收费如何,缺点是每个玩家都要装这个第三方软件。

3:通过steam好友加入,由steam提供NAT握手服务,steam在国内有服务器,所以连接成功率比官方游戏大厅高一点。#

方法也是游戏内创建房间,把steam勾上就行,别人直接在steam右键你的头像就能加入,也可以主动邀请好友加入。
优点是免费而且稳定性还行,使用体验较佳,缺点是要加好友,但是很多人开服就是想和别人一起玩,想认识新朋友的话,就不能用这种方法了。

03

04

4:使用有公网IP的linux电脑开服。#

据我所知,此方法是目前异星工厂最多人使用的,这是游戏体验最佳的开服方式,除了需要金钱支持,需要一点技术,其他全是优点。 这是最难的一种开服方式,但是别怕,3个小时以内,一般人都能学会。
有公网,还是linux,如果你家的电脑同时符合这两个条件的话,那你肯定是个大佬,也不需要看我的教程了。
所以这里指的是云服务器,目前国内有好多云服务器提供商。
腾讯云 (tencent.com)
阿里云 (aliyun.com)
华为云 (huaweicloud.com)

第1步:购买服务器#

05

  • 系统:debian10或以上
  • 内存:8G(少了不够用,多了浪费钱,千瓶万瓶才需要更多内存)
  • CPU:双核或以上
  • 网络带宽:8Mbps以上。
  • 硬盘:10G就够用,但是一般最低档都20G了。
  • 地理位置:不要选香港台湾,其他地区无所谓,离你越近越好。

登录后台管理界面,找到你的服务器公网IP,记录下来

06

第2步:连接服务器#

点击”登录”,显示”用户名@电脑名”,就说明连接成功了

07

第3步:设置ssh登录#
设置你的SSH密码,以下命令直接输入,然后回车就行
输入命令:passwd root
输入密码:87654321 输入的时候屏幕没反应是正常的,你键盘按下去了就行了
再输入一次密码:87654321
输入命令重启ssh服务:service sshd restart
第5步:工具准备。#

1:准备正版工厂账号的用户名和密码,但是我更加建议使用”用户名+token”,而不是”用户名+密码”。
token翻译过来也是密码的意思,也能说是”授权码”。
区别就是:如果别人盗了你的密码,他除了能用来开服,还能改密码,能用你账号去论坛发表傻逼言论,能随意修改你的个人资料。
但是如果泄露的是token,他只能用来开服,其他啥也干不了。

那么token在哪里获得呢?在工厂官网个人资料上面可以查看,点一下这个”reveal”就能显示出来了,如果没有这个按钮,就点击网页下边那个绑定steam,绑定之后就会有了。
个人资料-Factorio

08

2:准备一个ssh工具,用于远程控制云服务器,这里我用的是putty。
putty下载
3:一个文件传输工具,我使用的是winscp。
winscp下载
4:准备工厂的linux安装包。
官网下载链接
选择图标是个企鹅,但是没有头的那个,俗称”无头版”,因为去除了图形界面,只有80M大小,别怀疑,就是它。

09

第6步(ssh连接服务器)#

工具已经准备好了,开始ssh远程连接到你的服务器,putty是纯英文软件,但是默认设置已经是很好用了,咱这一步不需要设置什么,也就不用学习英文了,认两个按钮就行。
1:打开putty
2:输入用户名@服务器IP地址,输入备注(机器名字)
3:点一下save保存,免得每次都要输入IP地址,太麻烦
4:双击或者选中之后点open,进行远程控制。

10

11

输入密码之后显示这个界面,就是连接成功了

12

第7步:上传并解压#

把安装包上传到云服务器的 /opt文件夹 里,然后运行命令解压。

tar -xJvf /opt/factorio-headless_linux_2.0.28.tar.xz -C /opt

解压之后查看一下文件夹内容

13

你会看到很多个文件,需要先学习几个嘤文单词:
server=服务器,settings=设置,example=模板,admin=管理员,list=列表,mods=模组,saves=存档,map=地图,white=白名单

学会这几个嘤语单词之后你一眼就能看出来,server-settings.json服务器配置文件,打开它。
也可能只有server-settings.example.json,就是”服务器设置模板”的意思嘛,你改一下文件名,把”模板“这个单词删掉就好了

文本编辑器最好别用windows自带的记事本,你可以随便下载一个别的,这里我用的是notepad3,也可以用VS Code或者Notepad++
Notepad3 (github)
VS Code(code.visualstudio.com)
Notepad++ (notepad-plus-plus.org)

只需要改这三个地方,其他的保持默认就行了,name是房间名,username是你的用户名,token刚才已经解释过了。
只需要改这三个地方,其他的保持默认就行了,name是房间名,username是你的用户名,token刚才已经解释过了。
只需要改这三个地方,其他的保持默认就行了,name是房间名,username是你的用户名,token刚才已经解释过了。

14

15

还差一个文件,啊对,管理员,总不能自己开服却没有管理员权限吧,那可真尴尬了,我的老伙计。
server-adminlist.json是管理员列表,打开它,把你的游戏名字写上去。
假如找不到server-adminlist.json,也找不到模板,可以直接将”服务器白名单列表”这个文件复制改名成server-adminlist.json

用这行命令复制并改名

cp /opt/factorio/data/server-whitelist.example.json /opt/factorio/data/server-adminlist.json

16

配置文件好了,恭喜你,现在可以开始游戏了。
首先得准备一个存档是吧?
在你的电脑创建一个呗,如果我没猜错,你的电脑应该是windows系统的,一般情况下存档都会保存在 %appdata%\factorio\saves 文件夹下
上传到云服务器/opt/factorio/saves文件夹下面,如果没有saves文件夹,就自己创建一个。

第8步:输入命令开始游戏#
/opt/factorio/bin/x64/factorio --start-server-load-latest --server-settings /opt/factorio/data/server-settings.json --server-adminlist /opt/factorio/data/server-adminlist.json --port 34197

然后看到你的IP,后面写着”by pingpong1”之类的,就说明服务器创建成功了,可以愉快的玩耍了,游戏大厅里可以进你的服务器了,直连也可以,你的公网IP就是直连IP。

#这是一些参数说明,如果你有兴趣知道这行命令是什么意思的话就看一下。
/opt/factorio/bin/x64/factorio #游戏在哪
--start-server-load-latest #开始-服务-加载-最新(存档)
--server-adminlist #管理员列表
--server-settings #配置文件在哪
--port 34197 #端口,默认是34197

17

如果有显示”goodbye”,就是再见的意思,就是你的服务器出错了。

18

新手最容易犯的错,是你配置文件里没填用户名和密码,要么就是存档都没传上去 稍微难一点的就是是缺少gilbc2.18,你就看提示,有没有提示gilbc2.18,如果有提示,那就要手动编译gilbc2.18

以下是编译glibc-2.18的命令,没报错的跳过,提示了gilbc2.18的话就一行一行执行以下代码。
安装编译所需的常用软件

apt install -y gcc automake autoconf libtool make wget

进入opt文件夹

cd /opt

下载glibc

wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz

解压

tar -zxvf glibc-2.18.tar.gz

进入glibc文件夹

cd glibc-2.18

准备一个编译文件夹

mkdir build

进入编译文件夹

cd build

配置编译参数/路径

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

编译安装(可能会很慢)

make && make install

查看glibc支持的版本

strings libc.so | grep GLIBC

编译安装完glibc-2.18之后,重新执行开服命令就可以开服成功了。

如果你明明开服成功了,但就是进不了房间,那很可能是防火墙问题。 国内的云服务器一般有两层防火墙,第一层防火墙是云服务商提供的,需要在云服务器的管理后台打开。 找到你的云服务器管理后台,阿里云的叫”安全组”,腾讯云的叫”防火墙”,其实就是同一个东西。 打开TCP协议的27015端口和UDP协议的34197端口。

19

打开了云服务器的安全组之后,可以尝试一下能不能进游戏房间,如果还是不能进,那说明你的云服务器系统自带有防火墙。 系统自带的防火墙每个云服务器不一样,我这里只说比较常见的ufw防火墙。

输入这行命令先查看防火墙状态,如果显示一堆看不懂的嘤文,就说明防火墙正在运行

ufw status

21

22
用这两行命令打开防火墙端口

ufw allow 34197/udp
ufw allow 27015/tcp

然后重启防火墙

ufw reload
至此,开服成功,接下来就是维护的问题了。#
  • 有人问了,我要启用MOD怎么办,在你的电脑saves旁边不是有一个mods文件夹吗,和上传存档一样,把它上传到云服务器的saves旁边,也新建一个文件夹叫”mods”就行了。
  • 我要启用DLC怎么办?众所周知,DLC也是一个MOD,服务器安装包里面自带的,开关在mod-list.json里面,你刚才上传MOD的时候已经把DLC设置和MOD设置也一起上传了。

23

24

  • 那开服命令太长,我记不住咋办?
    没问题的,刚刚启动服务器的命令复制下来,放到一个文本里,改名成server-start.sh,放到云服务器的/opt/factorio文件夹里面。
    但是这样前台运行,远程连接一关,服务器也会关,所以我们需要让它后台运行,就是在命令的前面加上nohub,在后面加上&就行了

25

以后开服的时候,运行server-start.sh脚本就行,运行方法就是复制路径,然后直接运行就行,如果提示权限不足,那就修改权限成可执行 执行开服脚本

/opt/factorio/server-start.sh

提升权限命令

chmod +x /opt/factorio/server-start.sh

26

  • 那如果还想开机自启动咋办?
    也简单,编辑rc.local文件,把开服命令加进去,就会每次开机自动执行一次,不过云服务器谁会没事重启啊。

提升权限

chmod +x /etc/rc.d/rc.local

打开这个文件

/etc/rc.d/rc.local

添加这一行

nohup /opt/factorio/factorio-server-start.sh &
  • 那如果要更新游戏怎么办?
    重新去官网下载游戏安装包(无头版),上传到云服务器,先关闭游戏,再解压覆盖就行。

  • 那如果要更新MOD怎么办?
    工厂官方有推荐两个模组更新器,随便选一个。
    Python Mod Updater
    Ruby Mod Updater
    但是由于众所周知的原因,在国内云服务器上并不好用,还是直接在你自己的电脑下载,然后上传到云服务器直接覆盖文件吧,也可以使用winscp的”同步”功能。

  • 那怎么关闭服务器呢?
    用这行命令查看进程ID

    lsof -i:34197

    用这行命令关闭进程,其中”32554”是上一步查看端口占用得到的进程编号

    kill -9 32554

5:使用有公网IP的windows电脑开服。#

windows就简单多了,看了linux开服,你已经知道配置文件的文件名是什么了,找到它,和linux开服一样只需要修改三个地方。 windows就直接装个steam,安装游戏,游戏的安装目录下同样会有配置文件的模板,一样这么改。
连开服命令都差不多,不过Windows运行命令不方便,直接把命令保存到文本里,仅仅是路径书写格式不一样而已,需要把\替换成/ 但是windows保存文件的文件名后缀是bat,而不是sh。
同样的,准备存档,修改配置文件,检查MOD文件夹,然后开服。

start /wait bin/x64/factorio.exe --start-server-load-latest --server-settings "server-settings.json" --port 34197 --no-log-rotation
pause

将上面这行代码保存到文本里改名3.bat,然后脚本一定要放到异星工厂的安装目录(D:\Steam\steamapps\common\Factorio),双击运行就行。

#这是一些参数说明,如果你有兴趣知道这行命令是什么意思的话就看一下。
start #开始程序
/wait bin/x64/factorio #游戏在哪(相对路径)
--start-server-load-latest #开始-服务-加载-最新(存档)
--server-adminlist #管理员列表
--server-settings #配置文件在哪
--port 34197 #端口,默认是34197

27
租云服务器就别玩什么windows了,Linux多香啊。
windows用脚本开服,稳定性并不好,不建议这么做。
当然,如果你有公网IPV6,还是很香的,防火墙打开方法很简单,请自行搜索。

6:使用无公网IP的电脑开服。(反向代理,不需要打开windows防火墙)#

有的小伙伴家里没有公网IP,并且,众所周知,国内的云服务器贼贵,国外的又网络不太行的样子。
如果自己家里有一台性能不错的电脑,但是没公网IP,那就可以租一台稍微差点的云服务器,只要有公网IP就行,利用它来把数据转发到你家的电脑上。
这里就可以选择低配套餐,建议选择”轻量服务器”,带宽大,配置差,但是数据转发并不需要多少性能。
开服过程和上面说到的一样,只是要多装一个FRP反向代理。
FRP是一个开源的反向代理程序,非常出名,这里是github项目地址。(网络不好可能打不开这个网页,找网友帮你下载吧)
https://github.com/fatedier/frp/releases
下载你对应的版本,云服务器一般是linux-amd-64,家用电脑就是windows,两个都要下载

下面是Linux服务端的安装过程
将FRP安装包上传到云服务器的/opt目录

cd /opt
tar -zxvf frp_0.36.2_linux_amd64.tar.gz

然后你会看到几个文件。
frps就是服务端程序
frps.toml就是服务端配置文件
frpc就是客户端程序
frpc.toml就是客户端配置文件
咱们打开服务端配置文件

28
如果你觉得嘤文太多,可以从解压出来的配置模板里面找到一样的代码,复制代码然后自己修改参数。
如果复制都懒得复制,你可以下载我的配置文件来修改
frps.toml
设置好就可以开始运行服务端了。

进入frp目录:cd /opt/frp
测试运行frp服务:./frps -c frps.ini
退出服务:按ctrl+c
打开开机自启文件:vi /lib/systemd/system/frps.service
按I进入编辑模式 按I,是i不是 L
加入以下代码

[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/opt/frp/frps -c /opt/frp/frps.ini
[Install]
WantedBy=multi-user.target

按ESC退出编辑模式,输入 保存(别少打个冒号)

启动服务 systemctl start frps
开机自启 systemctl enable frps
取消开机自启 systemctl disable frps
查看进程 ps auxw

至此,反向代理服务器搭建完成

刚才已经下载FRP的windows安装包了,windows运行软件就简单多了 客户端配置文件如下

29

你可以下载我的配置文件来修改
frpc.toml
确定FRP服务端和客户端配置文件都没问题之后,启动frpc。
windows启动frpc需要用cmd,也就是也要命令行,所以,还是直接保存命令到文本里边吧。
‘frpc.exe -c frpc.ini’ 保存到frpc.bat里面,然后frpc.bat一定要放到frp的根目录下,双击运行就行。
你可以下载我的脚本(不需要修改)
frpc.bat

然后开工厂服务器也是和上面的一样,别人在游戏大厅可以直接进,或者选直连然后输入你的云服务器IP也能和你联机。 这种方法适合家里没有公网IP,买了云服务器也没别的用途的人,是一种折中的用法。 优点是便宜,缺点是多一层数据转发,对你家的网络稳定性有要求,对你家电脑的性能也是一种考验。

[至此,教程结束,去愉快的玩耍吧!]

异星工厂联机开服教程
https://www.pidexe.com/posts/异星工厂联机开服教程/
作者
fang523
发布于
2024-12-30
许可协议
CC BY-NC-SA 4.0

目录