部署我的世界-java版服务器-frp内网穿透

部署我的世界-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

frp内网穿透-CSDN博客

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,点击完成即可登陆

相关推荐
小肖爱笑不爱笑3 小时前
2025/11/5 IO流(字节流、字符流、字节缓冲流、字符缓冲流) 计算机存储规则(ASCII、GBK、Unicode)
java·开发语言·算法
噜啦噜啦嘞好3 小时前
Linux进程信号
linux·运维·服务器
CodeCraft Studio3 小时前
PPT处理控件Aspose.Slides教程:使用Java将PowerPoint笔记导出为PDF
java·笔记·pdf·powerpoint·aspose·ppt转pdf·java将ppt导出pdf
手握风云-3 小时前
Java 数据结构第二十八期:反射、枚举以及 lambda 表达式
java·开发语言
ᐇ9593 小时前
Java Vector集合全面解析:线程安全的动态数组
java·开发语言
毕设源码-朱学姐3 小时前
【开题答辩全过程】以 广州网红点打卡介绍网站为例,包含答辩的问题和答案
java·eclipse
samroom3 小时前
Linux系统管理与常用命令详解
linux·运维·服务器
程序定小飞3 小时前
基于springboot的web的音乐网站开发与设计
java·前端·数据库·vue.js·spring boot·后端·spring
百锦再4 小时前
第1章 Rust语言概述
java·开发语言·人工智能·python·rust·go·1024程序员节