概述
简单介绍一下 Minecraft 《我的世界》如何搭建属于自己的服务器。
本篇文章主要介绍在Linux下搭建,而非 Windows。
准备工作
你可以在本地起一个 Linux 系统的虚拟机,或者前往云平台购买一台轻量级云服务器,如果玩家少的话配置低一点也够了,比如 2H2G。
这里我准备了一台 Ubuntu 主机,先来准备一下环境。
注意下,如果这边安装的软件包无法成功安装的话,就去
换一下apt源再尝试安装,如果不知道怎么换源,就在当前博客的搜索中搜索换源,找到文档后跟着操作即可!
1 | apt update |
下载服务端
他的官网好像不支持中文,如果看不懂的话可以去下载一个
浏览器翻译插件或者下载一个有道翻译去阅读,会轻松一点。
访问Minecraft官网(https://www.minecraft.net/en-us/download/server)去下载服务端。
比如我这里直接下载他的minecraft_server.1.21.5.jar这个包。

你可以在本地下载好了之后上传到服务器里面,也可以直接用下面这个命令去服务器终端执行,直接下载。
1 | wget https://piston-data.mojang.com/v1/objects/e6ec2f64e6080b9b5d9b471b291c33cc7f509733/server.jar |
尝试运行服务端
服务端的 jar 包下载到服务器后,你可以直接运行这个 jar 包,看看能不能运行起来。
注意,因为我下载下来的服务端 jar 包名字就叫
server.jar,所以我这里使用的是相对路径指定这个 jar 包的,你们要根据实际的文件名字来。
1 | java -Xmx1024M -Xms1024M -jar ./server.jar nogui |
注意!首次运行他会自动结束,并且在当前目录位置释放一些配置以及支持库等。
并且会在当前目录下创建一个
eula.txt文件,这个文件的作用是让你同意其最终用户许可协议(EULA,End User License Agreement)才能运行你可以使用
vim eula.txt去编辑,或者使用下面的命令。将
eula这个选项,从eula=false改到eula=true即可。
1 | sed -i 's/eula=false/eula=true/g' ./eula.txt |
接着再次运行服务端,就可以了。
1 | java -Xmx1024M -Xms1024M -jar ./server.jar nogui |
配置文件介绍
在当前目录下除了eula.txt文件之外,还有一个server.properties文件。
这是一个Minecraft服务端的配置文件,其中包含了许多设置项,用来控制服务器的行为和玩家的体验。
下面将对文件中每个配置项进行说明:
accepts-transfers
- 可选值:
true或false - 作用: 是否允许玩家从其他服务器转移到当前服务器。设置为
false表示禁止玩家从其他服务器转移。
- 可选值:
allow-flight
- 可选值:
true或false - 作用: 是否允许玩家飞行。在生存模式下通常禁用飞行,设置为
true时玩家可以飞行。
- 可选值:
allow-nether
- 可选值:
true或false - 作用: 是否允许玩家进入下界。设置为
false时,玩家将无法进入下界。
- 可选值:
broadcast-console-to-ops
- 可选值:
true或false - 作用: 是否将控制台输出信息广播给所有 OP 玩家。如果设置为
true,控制台的命令输出会显示给所有有 OP 权限的玩家。
- 可选值:
broadcast-rcon-to-ops
- 可选值:
true或false - 作用: 是否将 RCON 命令的输出广播给所有 OP 玩家。
- 可选值:
bug-report-link
- 可选值: URL (字符串)
- 作用: 提供一个链接,玩家可以通过它报告游戏中的错误。此项为空则没有链接。
difficulty
- 可选值:
peaceful、easy、normal、hard - 作用: 设定服务器的难度。
peaceful和平模式easy简单模式normal普通难度hard困难模式
- 可选值:
enable-command-block
- 可选值:
true或false - 作用: 是否启用命令方块。命令方块允许执行自动化命令或事件。
- 可选值:
enable-jmx-monitoring
- 可选值:
true或false - 作用: 启用 JMX 监控,JMX 用于监控服务器性能。
- 可选值:
enable-query
- 可选值:
true或false - 作用: 启用 Minecraft 查询协议,允许外部程序查询服务器状态。
- 可选值:
enable-rcon
- 可选值:
true或false - 作用: 启用 RCON(远程控制)功能。
true时,允许通过远程命令控制服务器。
- 可选值:
enable-status
- 可选值:
true或false - 作用: 是否启用服务器状态显示,允许玩家查询服务器状态。
- 可选值:
enforce-secure-profile
- 可选值:
true或false - 作用: 启用正版账户验证。设置为
true时,玩家需要拥有正版 Minecraft 账户。
- 可选值:
enforce-whitelist
- 可选值:
true或false - 作用: 是否启用白名单。启用时只有列入白名单的玩家才能加入服务器。
- 可选值:
entity-broadcast-range-percentage
- 可选值:
0-100(百分比) - 作用: 设置实体广播的范围。例如,100%表示所有实体都在最大范围内广播。
- 可选值:
force-gamemode
- 可选值:
true或false - 作用: 是否强制所有玩家在加入时使用指定的游戏模式(
gamemode)。true表示强制玩家进入指定模式。
- 可选值:
function-permission-level
- 可选值:
0、1、2、3、4 - 作用: 设置玩家可以执行的函数命令权限等级。等级越高,权限越大。
- 可选值:
gamemode
- 可选值:
survival、creative、adventure、spectator - 作用: 设置玩家的默认游戏模式。
survival表示生存模式,creative表示创造模式,adventure表示冒险模式,spectator表示旁观模式。
- 可选值:
generate-structures
- 可选值:
true或false - 作用: 是否生成结构,如村庄、废弃矿井等。设置为
false时不会生成这些结构。
- 可选值:
generator-settings
- 可选值: JSON 配置字符串
- 作用: 用于自定义世界生成设置。例如,可以定义自定义的地形生成规则。
hardcore
- 可选值:
true或false - 作用: 启用硬核模式。硬核模式下玩家死亡后会永久消失。
- 可选值:
hide-online-players
- 可选值:
true或false - 作用: 是否隐藏在线玩家。设置为
true时,玩家无法看到其他在线玩家。
- 可选值:
initial-disabled-packs
- 可选值: 资源包列表(字符串数组)
- 作用: 初始禁用的资源包列表。
initial-enabled-packs
- 可选值: 资源包列表(字符串数组)
- 作用: 初始启用的资源包列表。
level-name
- 可选值: 字符串(任意世界名称)
- 作用: 设置世界名称。默认值是“world”。
level-seed
- 可选值: 字符串(任意种子)
- 作用: 设置世界生成的种子,影响生成的世界。为空时随机生成。
level-type
- 可选值:
minecraft:normal、minecraft:flat、minecraft:largeBiomes、minecraft:amplified、minecraft:custom - 作用: 设置世界类型。
normal是普通世界,flat是平坦世界,largeBiomes是大生物群落,amplified是放大生物群落。
- 可选值:
log-ips
- 可选值:
true或false - 作用: 是否记录玩家的 IP 地址。
- 可选值:
max-chained-neighbor-updates
- 可选值: 整数(例如 1000000)
- 作用: 设置每次更新过程中允许的最大链式邻居更新次数。
max-players
- 可选值: 1-1000(玩家数量)
- 作用: 设置服务器最多允许的玩家数。
max-tick-time
- 可选值: 整数(毫秒)
- 作用: 设置每个 tick(更新周期)允许的最大时间,超过此值服务器会认为发生了性能问题。
max-world-size
- 可选值: 整数(世界的最大大小)
- 作用: 设置世界的最大大小(以区块为单位)。
motd
- 可选值: 字符串(任何文本)
- 作用: 设置服务器的描述,显示在玩家加入时。
network-compression-threshold
- 可选值: 整数(字节数)
- 作用: 设置网络压缩的阈值。大于此值的网络数据会被压缩。
online-mode
- 可选值:
true或false - 作用: 启用在线模式时,要求玩家拥有正版 Minecraft 账户。
- 可选值:
op-permission-level
- 可选值:
1、2、3、4 - 作用: 设置 OP 玩家的权限级别,数值越大,OP 能执行的命令越多。
- 可选值:
pause-when-empty-seconds
- 可选值: 整数(秒)
- 作用: 设置服务器在没有玩家时暂停的时间(秒)。
player-idle-timeout
- 可选值: 整数(秒)
- 作用: 设置玩家在没有操作时被踢出的时间。
prevent-proxy-connections
- 可选值:
true或false - 作用: 防止代理连接。
true时不允许使用代理连接。
- 可选值:
pvp
- 可选值:
true或false - 作用: 是否启用玩家间的战斗。
- 可选值:
query.port
- 可选值: 整数(端口号)
- 作用: 设置查询端口。
rate-limit
- 可选值: 整数(连接次数)
- 作用: 限制每秒连接的次数。设置为 0 表示没有限制。
rcon.password
- 可选值: 字符串(密码)
- 作用: 设置 RCON 密码,用于远程管理服务器。
rcon.port
- 可选值: 整数(端口号)
- 作用: 设置 RCON 端口。
region-file-compression
- 可选值:
none、zlib、deflate - 作用: 设置区域文件的压缩方式。
- 可选值:
require-resource-pack
- 可选值:
true或false - 作用: 是否强制玩家使用指定的资源包。
- 可选值:
resource-pack
- 可选值: URL(资源包的链接)
- 作用: 设置资源包的下载链接。
resource-pack-id
- 可选值: 字符串(资源包 ID)
- 作用: 设置资源包的唯一 ID。
resource-pack-prompt
- 可选值: 字符串(提示文本)
- 作用: 设置资源包提示文本。
resource-pack-sha1
- 可选值: 字符串(SHA1 值)
- 作用: 设置资源包的 SHA1 哈希值,用于验证资源包的完整性。
server-ip
- 可选值: 字符串(IP 地址)
- 作用: 设置服务器绑定的 IP 地址。
server-port
- 可选值: 整数(端口号)
- 作用: 设置服务器监听的端口号。
simulation-distance
- 可选值: 1-32
- 作用: 设置模拟区域的大小。
spawn-monsters
- 可选值:
true或false - 作用: 是否允许怪物生成。
- 可选值:
spawn-protection
- 可选值: 整数(方块数量)
- 作用: 设置生成保护范围,防止玩家在出生点附近破坏环境。
sync-chunk-writes
- 可选值:
true或false - 作用: 是否同步写入区块数据。
- 可选值:
text-filtering-config
- 可选值: JSON 配置
- 作用: 设置文本过滤器配置。
text-filtering-version
- 可选值: 整数
- 作用: 设置文本过滤器的版本。
use-native-transport
- 可选值:
true或false - 作用: 是否启用原生传输协议。
- 可选值:
view-distance
- 可选值: 3-32
- 作用: 设置玩家的渲染视距,影响可见范围。
white-list
- 可选值:
true或false - 作用: 启用或禁用白名单功能。
- 可选值:
如果有些参数看不懂,那就保持默认就行,别去动他了,防止出现意外情况。
比如我已经修改好了一份配置,做了如下修改:
- 将游戏模式调整为困难模式
- 启用命令方块
- 允许非正版账户玩家加入
- 世界名称设置为
myworld
- 将服务器监听端口设置为
11375
- 服务端 IP 地址设置为
0.0.0.0(绑定所有地址)
另外还要提一嘴,服务器端口如果修改为
11375的话,需要在你的云平台防火墙中放行这个端口,某则你连不上的。
1 | #Minecraft server properties |
最后一步
配置文件也修改好了,那么直接将服务端托管在后台运行即可。
通过命令nohup和&符可以将他放置到后台运行。
1 | nohup java -Xmx1024M -Xms1024M -jar ./server.jar nogui & |
接着你尝试打开游戏,点击多人游戏,然后添加一个服务器,输入你的 IP+端口。
比如我这里 IP 是:118.12.8.133,端口是: 11375,那么我就输入
118.12.8.133:11375即可。如果有域名的话,直接使用域名也行
到这一步也就结束了,可以开玩了。