概述
简单介绍一下 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,那么我就输入
118.12.8.133:66666
即可。如果有域名的话,直接使用域名也行
到这一步也就结束了,可以开玩了。