孤灯从流
的博客
ShuninYu 's Blog

页内导航

Tags

Minecraft JAVA版纯净服frp开服

2025-3-28 - 18:27 | 最后更新:/-/-/

Minecraft JAVA版的联机一直都是比较麻烦的事情,很多玩家通过frp内网穿透来开房间联机,这样做有一个缺点:因为是P2P连接,所以房主的游戏客户端必须一直在线,如果房主关闭游戏,那么房间也会关闭,而且如果有闲置的旧电脑也利用不上。所以在本地配合frp开启一个JAVA版纯净服务器就是一个不错的替代方法,这样不需要服主进游戏也能让其他人来玩,并且如果有闲置的旧电脑,还能够让它发挥余热,不影响你主力电脑的使用。

这个方法十分简单,只需要跟着文章操作就可以开启你的服务器。简而言之,这种方法就是用你的电脑来当服务器主机,在没有公网IP的情况下使用frp来让其他人能够访问你的服务器。

不过需要注意,这种方法需要你运行服务器的电脑保持开启,并且只适合几个朋友一起玩原版内容的轻量应用场景,不适合开多人的公开服务器,并且只支持最新版本,如果需要插件和mod,需要使用其他第三方服务端核心(例如PaperMC、Spigot等等)。联机效果会受你选择的frp供应商的影响,通常frp供应商的免费线路带宽上限较低,人多的话有可能连接质量会受到影响。

演示使用的配置:
CPU AMD 9950X
GPU RTX 4090
RAM 64G DDR5
网络 电信500M下行 60M上行

安装服务端核心

原版纯净服直接使用mojang官方的服务端核心即可,打开Minecraft官网的服务端核心下载页面,关闭让你去网易版官网的窗口,点击minecraft_server_1.xx.x.jar下载服务端核心。

不要点绿色按钮,点下面这行字

点击这一行字下载服务端核心(此处版本就是服务器版本)

注意:Minecraft官网只有最新版本的服务端核心,如果需要历史版本则需要自己寻找。下载好的服务端核心文件不要改名,保持原样。

下载完成后,将jar文件放到你想要存放服务端核心的文件夹中,这个文件夹之后也会是服务器的文件夹。

初始化服务端

服务端正式开始运行之前,需要进行一些初始化操作才能够正常部署,在存放服务端核心的文件夹内右键 -> 在终端中打开,打开Windows终端(Win11是Windows PowerShell),输入下面的代码然后回车:

java -Xmx1024M -Xms1024M -jar minecraft_server.1.21.5.jar nogui

该指令会初始化服务端,但是服务端并不会启动,终端会提示:"You need to agree to the EULA in order to run the server. Go to eula.txt for more info."

关闭终端,找到服务端文件夹内的 eula.txt 文件,打开后将 eula=false 修改为 eula=true ,保存并关闭文件。

修改好 eula.txt 以后,再次使用上面的方法通过终端命令启动服务端。

出现如图所示的内容,表示服务端启动成功,服务器已经在运行中

如图所示,终端中提示服务器启动成功,代表初始化已经大功告成,注意不要关闭这个终端窗口,关闭这个窗口服务器就会关闭。

配置frp

虽然已经成功在电脑上运行了服务器,但是想要朋友进入你的服务器游玩的话,还需要给朋友提供一个能够连接到服务器的ip地址。没有公网ip该怎么办?这时候就需要frp登场了。

需要注意的是,挑选frp时可以多留意线路的配置,最重要的是带宽(越高越好),越高的带宽就能够提供越流畅的连接体验,即使你宽带的上行带宽非常高,服务器实际能够跑到的带宽也会受到frp线路带宽的限制(例如:你的宽带上行100M,frp线路限速20M,那么你的服务器实际能跑到的带宽就只有20M),一般frp商家都有免费的线路,内地线路需要实名认证。本文不推荐frp商家,文章内容也不构成消费建议,虽然下面使用了我在用的frp做演示,但是实际操作时可以自己选择市面上的frp,操作步骤基本相同。当免费线路不能满足你的需求时,再考虑是否要购买付费线路,并且消费前留意商家的交易条款(例如退款策略)。

启动frp客户端,添加隧道。

点击隧道管理,添加隧道(图片部分内容已经过处理)

选择线路,隧道类型选择 TCP ,隧道名称随便填,本地ip填写 127.0.0.1 (如果frp客户端提示留空为本机ip则可以留空),本地端口填写25565(Minecraft服务端默认的端口)。远程端口直接留空让系统随机生成或者填写一个没有被占用的数字即可,但是要记住这个远程端口(没记住也没关系,之后还可以查看)。

做好这些设置之后,创建隧道。

隧道配置,注意红框中的配置

创建好隧道后,回到隧道管理页面,启动刚刚创建好的隧道。

启动隧道后,切换到日志界面,可以看到frp提供的ip,这个ip就是连接到你服务器的ip了。到这里开服的基本步骤已经完成,你已经可以打开对应服务器版本的游戏连接自己的服务器进行测试了!

隧道启动后,可以看到frp提供的ip:frp-mix.com:27164

不过服务器目前的状态还没有完全准备好,在正式把你的服务器ip分享给你的好友们之前,让我们再对服务器做一些设置。

配置服务端

目前我们只是开启了服务器,但是服务器的一切都运行在默认配置下,我们需要对其进行配置以获得更好的游戏体验。关闭你的服务器(即你启动服务器的终端窗口),打开服务器文件夹,开始我们的操作。

服务器启动设置

新建一个文本文档,粘贴下面的代码,并按照代码下面的说明修改中间一行的代码(一定要修改!因为这是不完整的代码,需要根据你的实际情况进行填写,不要直接粘贴保存!):

@echo off
java -Xmx -Xms -jar minecraft_server.1.xx.x.jar nogui
pause

-Xmx:服务器能被允许使用的内存量 数字单位M 建议5人以内4-8G/5-10人8-16G 记得换算 1G = 1024M
例:-Xmx1024M(服务器最多可以使用1G内存)

-Xms:初始化内存大小 数字单位M 如果xmx没有设置为电脑一半以上的内存 那么设置成和xmx相同大小即可 否则设置为xmx的1/2或1/4
例:-Xmx1024M (服务器初始化内存1G)

minecraft_server.1.xx.x.jar:服务器的Minecraft版本 根据你下载的服务端核心版本决定
例:minecraft_server.1.21.5.jar(服务器Minecraft版本1.21.5)

nogui:服务器启动时不显示图形界面 如果电脑配置不是老古董 那么推荐删除它来启用gui gui可以监控服务器内存用量、在线玩家、以及正确显示服务器中文聊天内容(中文聊天内容在终端内会显示为乱码)

完整示例:java -Xmx16384M -Xms16384M -jar minecraft_server.1.21.5.jar
(服务器内存16G 初始化内存16G 服务器Minecraft版本1.21.5 启用gui)

编辑完后将文件保存,重命名为 start.bat(如果没有开文件后缀显示,请开启后再修改文件名)。

这样你就创建好了一个服务器启动脚本,以后就可以通过双击这个脚本运行它来启动服务器了。如果需要修改启动配置,用文本编辑器打开它即可修改。

服务器配置

在服务器文件夹内找到 server.properties 文件,使用记事本或者你的文本/代码编辑器打开它。
在文件中找到下面的几行,根据你的需求进行修改:

max-players=:服务器最大玩家数,根据你的电脑配置和网络条件修改。

view-distance=:服务器渲染距离(区块),根据你的电脑配置和网络条件修改。

difficulty=:服务器难度。

gamemode=:服务器游戏模式。

spawn-protection=:出生点保护范围。

online-mode=:是否启用正版验证,如果你的服务器不需要正版验证,请修改为 false 。

添加管理员

在终端或GUI(GUI的指令输入框在窗口最下面)中输入/op 玩家ID 来将玩家设置为管理员,如果要取消管理员权限则使用 /deop 玩家ID 。

替换服务器存档(可选)

初始化你的服务器时,服务端会自动创建一个世界,如果你想让服务器玩一个现有的存档,则可以按照下面的步骤操作:

1. 删除服务器文件夹内的 world 文件夹。

2. 将你的存档文件夹复制到服务器文件夹内,并将复制的存档文件夹重命名为 world(必须要与 server.properties 中的 level-name 相同,默认为world。不建议把world修改成其他名称,直接保持配置文件默认并将存档文件夹重命名为world即可)。

为你的服务器启用白名单(可选)

在 server.properties 文件中找到 white-list=false ,将 false 修改为 true ,保存文件,白名单将会在下次服务器启动时启用。

启动服务器,在终端或GUI(GUI的指令输入框在窗口最下面)中输入/whitelist add 玩家ID 来把玩家添加进白名单,输入/whitelist remove 玩家ID 来把玩家移出白名单。

为你的服务器添加描述(可选)

在 server.properties 文件中找到 motd=A Minecraft Server ,将 A Minecraft Server 修改为你的服务器描述,例如:motd=ShuninYu的服务器。

为你的服务器添加预览图(可选)

服务器默认的预览图是和存档预览图相同,这个图片可以自定义。打开存档文件夹(默认为world文件夹),找到 icon.png ,用图片编辑软件打开,把图片替换成你想要的内容,但是记得要保持64x64的比例,编辑完后保存即可。

注意:如果你的存档中没有 icon.png 文件,你可以在存档文件夹内新建一个名为icon.png的文件,然后用图片编辑软件打开它,在里面粘贴你想要的内容的图片即可。

至此,你的服务器已经配置完成,你可以把你的服务器ip分享给你的朋友们了!如果你还有其他的需求,请继续往下看。

用自己的域名当ip

如果你有自己的域名(例如 example.com),想要用它创建一个二级域名来代替frp提供的ip(例如 mc.example.com),那么你可以按照下面的步骤操作(以阿里云为例):

登录你的域名服务商的控制面板,进入DNS管理。在DNS管理页面找到你的域名,进入解析设置,点击添加记录。

在添加记录的页面,按照以下参数添加记录

记录类型:SRV

主机记录:_minecraft._tcp.mc(表示服务为 Minecraft,协议为 TCP,子域名为 mc)

记录值/目标地址:frp提供的ip地址(例如frp-mix.com:27164去掉端口号 即frp-mix.com)

端口:frp ip的端口(例如frp-mix.com:27164 端口号就是27164)

优先级:5(默认值)

权重:0(默认值)

TTL:600(默认,单位秒 即 10分钟)

阿里云添加记录设置示例

添加记录后,等待几分钟让DNS生效。然后就可以使用你的二级域名(以上面的示例为 mc.example.com)来连接服务器了。

进阶设置

server.properties 文件内还有很多其他的服务器属性设置,具体的内容可以参考Minecraft官方wiki