Floppy β Studio
Floppy β Studio

迁移Minecraft服务器并使用原地址

近期莱云推出了十二代i7的游戏容器服务,我需要将我的Minecraft服务器迁移过去,并且要保留原来使用的那个地址

为什么要保留原来的地址

首先,肯定会有很多玩家不看公告,等到连不上的时候在群里说服务器炸了。这种情况我一般喜欢怼回去,但这可能会导致玩家流失,所以最好的结局问题的办法就是让这个问题看起来不存在。

而莱云游戏容器的端口是随机分配的,不能简单地修改DNS记录并让端口号保持一致来简单地解决。

所以本文中将会保留原先使用的容器

转移文件

从老的容器里把所有文件打包,如果存储不够的话就把硬盘资源拉大一点。打包后通过SFTP把文件下载下来,感觉走SFTP比翼龙的HTTP单线程下载要快一点。

然后用SFTP把下载下来的文件上传到新的容器里,解压。把计划任务之类的都按照老的容器配置好,确保容器的配置和老的容器配置一样或者比它更高。

修改服务器配置文件,把端口改到新的端口上。

运行服务器,确保它能正常启动。

转发

这里使用FRP(Releases · fatedier/frp (github.com)),下载Linux amd64版,将frps的二进制文件和frps.ini上传到老的游戏容器上。

FRPS

修改frps.ini

由于需要一个端口用于frp的通信和一个端口用来给MC客户端连接(建议填写原来的那个端口号)

如果懒得设置密钥的话可以把连接密钥的这一样用#符号注释掉,不过这可能会有些危险

FRPC

将frpc和frpc.ini上传到新的容器里,修改frpc.ini

基岩版请保留UDP类型部分,java版请保留TCP类型部分,common部分按照运行frps的服务器的信息填写

上述配置文件中的proxy_protocol_version=v2不要删除,它很重要,在下一段中会具体说明

JE获取玩家真实IP

你需要在MC服务端中添加这样一个插件:andylizi/haproxy-detector

frpc的配置文件中包含proxy_protocol_version=v2,这个服务端插件会从中获取玩家的真实IP

修改启动脚本

FRPS端

这一端只需要运行frps并载入我们设定的配置文件,模板类型选择自定义JAR,然后将run.sh改为以下内容

执行此命令前,你可能需要把frps的权限修改,我通常将它修改为755

https://www.iruanp.com/wp-content/uploads/2023/02/image-10.png

FRPC端

这一端我们要运行frpc和Minecraft服务端,我们需要在运行服务端之前添加以下命令

这样将会把frpc放在后台执行,frpc在控制台中输出的日志会被写在frpc.log中。

执行前请先确保frpc的文件权限已经被进行调整,确保frpc能够被运行

存在的一些问题

先启动运行frps的容器,再启动minecraft服务端的容器,不出意外的话应该可以正常使用了。

通过FRP节点走Geyser进入服务器的基岩版玩家可能无法获取玩家真实IP,服务端获取到的玩家IP是127.0.0.1,这个问题我也不知道有没有现成的解决办法。

发表回复

textsms
account_circle
email


Floppy β Studio

迁移Minecraft服务器并使用原地址
近期莱云推出了十二代i7的游戏容器服务,我需要将我的Minecraft服务器迁移过去,并且要保留原来使用的那个地址 为什么要保留原来的地址 首先,肯定会有很多玩家不看公告,等到连不…
扫描二维码继续阅读
2023-02-18