部署我的世界-java版服务器-frp内网穿透
官网地址
官方服务端下载地址:Minecraft 服务器下载 | Minecraft
官方教程:教程:架设Java版服务器 - 中文 Minecraft Wiki
服务器配置需求:服务器/需求 - 中文 Minecraft Wiki
启动器下载地址:Hello Minecraft! Launcher
| 本地虚拟机配置 | 系统 |
|---|---|
| 12h+8g | kylinv10sp3 |
安装JDK
shell
#1.检查是否已安装 Java
[root@kylin-csq-v10-sp3 ~]# java --version
#2.若未安装(根据 Tomcat 版本选择兼容的 Java 版本)
yum install -y wget ; mkdir -p /download ; wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz -O /download/openjdk-21.0.2_linux-x64_bin.tar.gz
#3.解压并链接到/usr/local/jdk21
tar -zxvf /download/openjdk-21.0.2_linux-x64_bin.tar.gz -C /usr/local/
ln -s /usr/local/jdk-21.0.2 /usr/local/jdk21
#4.配置jdk环境变量
#tree如果没有需自行yum安装
tree -L 2 /usr/local/jdk21/
echo 'export JAVA_HOME=/usr/local/jdk21' >> /etc/profile
echo 'export PATH=${PATH}:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile
#查看jdk版本
[root@kylinv10sp3-csq ~]# java --version
openjdk 21.0.2 2024-01-16
OpenJDK Runtime Environment (build 21.0.2+13-58)
OpenJDK 64-Bit Server VM (build 21.0.2+13-58, mixed mode, sharing)
启动服务端
shell
#1.下载官方服务端
wget https://piston-data.mojang.com/v1/objects/95495a7f485eedd84ce928cef5e223b757d2f764/server.jar -P /mc/
#2.启动jar包
java -jar server.jar --nogui
# 执行后会自动退出,下面需要修改认证文件
[root@wdsj /mc]# grep eula eula.txt
eula=true
#3.修改自己的配置文件
配置文件
server.properties
shell
# Minecraft 服务器核心配置文件说明
#Tue Nov 04 22:11:48 CST 2025 # 配置文件生成时间
# 是否接受玩家跨服务器转移(如从其他服务器转移到当前服务器)
# accepts-transfers=false
# 是否允许玩家飞行(false:禁止飞行,true:允许,需配合游戏内权限)
# allow-flight=false
# 是否向管理员(OP)广播控制台消息
# broadcast-console-to-ops=true
# 是否向管理员(OP)广播远程控制台(RCON)消息
# broadcast-rcon-to-ops=true
# 漏洞报告链接(留空则使用默认链接)
# bug-report-link=
# 游戏难度(easy:简单,peaceful:和平,normal:普通,hard:困难)
# difficulty=easy
# 是否启用行为准则(用于规范玩家行为,false:禁用)
# enable-code-of-conduct=false
# 是否启用 JMX 监控(用于服务器性能监控,false:禁用)
# enable-jmx-monitoring=false
# 是否启用查询功能(允许外部工具查询服务器状态,如玩家列表,false:禁用)
# enable-query=false
# 是否启用远程控制台(RCON,用于远程管理服务器,false:禁用)
# enable-rcon=false
# 是否启用服务器状态(如在服务器列表中显示状态,true:启用)
# enable-status=true
# 是否强制启用安全档案(验证玩家账号安全性,true:强制)
# enforce-secure-profile=true
# 是否强制启用白名单(true:仅白名单玩家可进入,false:关闭白名单)
# enforce-whitelist=false
# 实体广播范围百分比(相对于默认范围,100:默认范围)
# entity-broadcast-range-percentage=100
# 是否强制玩家使用服务器默认游戏模式(false:保留玩家上次模式)
# force-gamemode=false
# 函数执行权限等级(2:允许管理员执行,0-4 范围,越高权限越严)
# function-permission-level=2
# 默认游戏模式(survival:生存,creative:创造,adventure:冒险,spectator:旁观者)
# gamemode=survival
# 是否生成建筑结构(如村庄、地牢等,true:生成)
# generate-structures=true
# 世界生成器设置(JSON格式,留空则使用默认)
# generator-settings={}
# 是否启用硬核模式(死亡后无法复活,只能删除世界重建,false:禁用)
# hardcore=false
# 是否隐藏在线玩家(true:玩家列表不显示在线人数,false:显示)
# hide-online-players=false
# 初始禁用的资源包(留空则默认启用所有)
# initial-disabled-packs=
# 初始启用的资源包(vanilla:仅启用默认材质包)
# initial-enabled-packs=vanilla
# 世界存档名称(对应服务器目录下的存档文件夹名)
# level-name=world
# 世界种子(用于生成世界的随机种子,留空则随机)
# level-seed=
# 世界类型(minecraft:normal:默认世界,flat:超平坦,largebiomes:大型生物群系等)
# level-type=minecraft\:normal
# 是否记录玩家IP(true:在日志中记录连接的玩家IP)
# log-ips=true
# 是否启用管理服务器(用于远程管理,false:禁用)
# management-server-enabled=false
# 管理服务器主机地址(默认localhost)
# management-server-host=localhost
# 管理服务器端口(0:随机端口)
# management-server-port=0
# 管理服务器密钥(用于身份验证)
# management-server-secret=FTsb9S7SqxienakkQ19lWmaK2WFnngfKQZdUCxAz
# 是否启用管理服务器TLS加密(true:启用)
# management-server-tls-enabled=true
# 管理服务器TLS密钥库路径(留空则不使用)
# management-server-tls-keystore=
# 管理服务器TLS密钥库密码(留空则无密码)
# management-server-tls-keystore-password=
# 最大连锁邻居更新次数(防止红石电路等导致的服务器卡顿,1000000:默认上限)
# max-chained-neighbor-updates=1000000
# 最大在线玩家数
# max-players=20
# 最大tick时间(服务器处理一帧的最长时间,毫秒,超时则可能崩溃,60000:60秒)
# max-tick-time=60000
# 世界最大尺寸(方块坐标上限,29999984:默认值)
# max-world-size=29999984
# 服务器在列表中的描述信息(MOTD:Message of the Day)
# motd=A Minecraft Server
# 网络压缩阈值(字节,小于此值的数据包不压缩,256:默认)
# network-compression-threshold=256
# 是否启用正版验证(true:仅正版账号可进入,false:允许离线账号)
# online-mode=true
# 管理员(OP)权限等级(4:最高权限,0-4 范围)
# op-permission-level=4
# 服务器为空时的暂停时间(秒,60:无人时60秒后暂停世界刷新)
# pause-when-empty-seconds=60
# 玩家闲置超时时间(秒,0:永不超时,超时后踢出)
# player-idle-timeout=0
# 是否阻止代理连接(true:禁止通过代理连接,防止多账号滥用)
# prevent-proxy-connections=false
# 查询功能端口(与服务器端口一致,25565:默认)
# query.port=25565
# 速率限制(0:无限制,限制每秒连接请求数)
# rate-limit=0
# 远程控制台(RCON)密码(启用RCON时需设置)
# rcon.password=
# 远程控制台(RCON)端口(25575:默认)
# rcon.port=25575
# 区域文件压缩方式(deflate:默认压缩算法)
# region-file-compression=deflate
# 是否强制要求玩家加载资源包(false:可选)
# require-resource-pack=false
# 资源包URL(玩家进入时自动下载的资源包,留空则无)
# resource-pack=
# 资源包ID(用于标识资源包,留空则自动生成)
# resource-pack-id=
# 资源包提示信息(显示给玩家的加载提示)
# resource-pack-prompt=
# 资源包SHA1校验值(用于验证资源包完整性,留空则不验证)
# resource-pack-sha1=
# 服务器绑定IP(留空则绑定所有网卡)
# server-ip=
# 服务器端口(25565:默认Minecraft端口)
# server-port=25565
# 模拟距离(加载的实体活动范围,10:默认区块数)
# simulation-distance=10
# 出生点保护范围(方块数,16:默认,仅OP可在此范围内建造)
# spawn-protection=16
# 状态心跳间隔(0:禁用,定期向服务器列表发送状态更新)
# status-heartbeat-interval=0
# 是否同步区块写入(true:确保区块数据写入磁盘后再继续,防止数据丢失)
# sync-chunk-writes=true
# 文本过滤配置文件路径(留空则使用默认过滤规则)
# text-filtering-config=
# 文本过滤版本(用于匹配过滤规则版本)
# text-filtering-version=0
# 是否使用原生传输(true:启用操作系统级网络优化,提升性能)
# use-native-transport=true
# 视野距离(玩家可见的区块范围,10:默认)
# view-distance=10
# 是否启用白名单(true:仅白名单玩家可进入,需配合whitelist.json文件)
# white-list=false
shell
#4.改完后,启动jar包
java -jar server.jar --nogui
#如果没有正版账号修改server.properties文件中的
online-mode=false
部署客户端frp
shell
#1.下载frp
yum install -y wget ; wget https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_linux_amd64.tar.gz -P /download
#2.解压frp二进制包到/usr/local下
tar -zxvf /download/frp_0.65.0_linux_amd64.tar.gz -C /usr/local
#3.软链接简化路径
ln -s /usr/local/frp_0.65.0_linux_amd64/ /usr/local/frp
#4.配置frp客户端配置文件
cat > /usr/local/frp/frpc.toml <<EOF
serverAddr = "服务端IP"
serverPort = 7100
loginFailExit = true
log.to = "/var/log/frpc.log"
log.level = "info"
log.maxDays = 3
auth.method = "token"
auth.token = "testtoken"
[[proxies]]
name = "test"
type = "tcp"
localIP = "本机IP"
localPort = 80
remotePort = 6100
EOF
#5.配置frp的service
cat > /lib/systemd/system/frpc.service <<'EOF'
[Unit]
Description = frp client
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /usr/local/frp/frpc -c /usr/local/frp/frpc.toml
ExecStop = /bin/kill $MAINPID
Restart = always
RestartSec = 5
RestartPreventExitStatus=1
[Install]
WantedBy = multi-user.target
EOF
#生效配置文件
systemctl daemon-reload
#开启frpc
systemctl enable --now frpc && systemctl status frpc
下载完客户端
打开客户端,点进去多人游戏

添加服务器

输入公网IP:25565,点击完成即可登陆

