搭建MC服务器
Reverse Lv4

概述

简单介绍一下 Minecraft 《我的世界》如何搭建属于自己的服务器。

本篇文章主要介绍在Linux下搭建,而非 Windows。

准备工作

你可以在本地起一个 Linux 系统的虚拟机,或者前往云平台购买一台轻量级云服务器,如果玩家少的话配置低一点也够了,比如 2H2G。

这里我准备了一台 Ubuntu 主机,先来准备一下环境。

注意下,如果这边安装的软件包无法成功安装的话,就去换一下apt源再尝试安装,如果不知道怎么换源,就在当前博客的搜索中搜索换源,找到文档后跟着操作即可!

1
2
apt update
apt -y install openjdk-21-jre-headless

下载服务端

他的官网好像不支持中文,如果看不懂的话可以去下载一个浏览器翻译插件或者下载一个有道翻译去阅读,会轻松一点。

访问Minecraft官网(https://www.minecraft.net/en-us/download/server)去下载服务端。

比如我这里直接下载他的minecraft_server.1.21.5.jar这个包。

image

你可以在本地下载好了之后上传到服务器里面,也可以直接用下面这个命令去服务器终端执行,直接下载。

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服务端的配置文件,其中包含了许多设置项,用来控制服务器的行为和玩家的体验。

下面将对文件中每个配置项进行说明:

  1. accepts-transfers

    • 可选值: truefalse
    • 作用: 是否允许玩家从其他服务器转移到当前服务器。设置为false表示禁止玩家从其他服务器转移。
  2. allow-flight

    • 可选值: truefalse
    • 作用: 是否允许玩家飞行。在生存模式下通常禁用飞行,设置为true时玩家可以飞行。
  3. allow-nether

    • 可选值: truefalse
    • 作用: 是否允许玩家进入下界。设置为false时,玩家将无法进入下界。
  4. broadcast-console-to-ops

    • 可选值: truefalse
    • 作用: 是否将控制台输出信息广播给所有 OP 玩家。如果设置为true,控制台的命令输出会显示给所有有 OP 权限的玩家。
  5. broadcast-rcon-to-ops

    • 可选值: truefalse
    • 作用: 是否将 RCON 命令的输出广播给所有 OP 玩家。
  6. bug-report-link

    • 可选值: URL (字符串)
    • 作用: 提供一个链接,玩家可以通过它报告游戏中的错误。此项为空则没有链接。
  7. difficulty

    • 可选值: peacefuleasynormalhard
    • 作用: 设定服务器的难度。
    • peaceful 和平模式
    • easy 简单模式
    • normal 普通难度
    • hard 困难模式
  8. enable-command-block

    • 可选值: truefalse
    • 作用: 是否启用命令方块。命令方块允许执行自动化命令或事件。
  9. enable-jmx-monitoring

    • 可选值: truefalse
    • 作用: 启用 JMX 监控,JMX 用于监控服务器性能。
  10. enable-query

    • 可选值: truefalse
    • 作用: 启用 Minecraft 查询协议,允许外部程序查询服务器状态。
  11. enable-rcon

    • 可选值: truefalse
    • 作用: 启用 RCON(远程控制)功能。true时,允许通过远程命令控制服务器。
  12. enable-status

    • 可选值: truefalse
    • 作用: 是否启用服务器状态显示,允许玩家查询服务器状态。
  13. enforce-secure-profile

    • 可选值: truefalse
    • 作用: 启用正版账户验证。设置为true时,玩家需要拥有正版 Minecraft 账户。
  14. enforce-whitelist

    • 可选值: truefalse
    • 作用: 是否启用白名单。启用时只有列入白名单的玩家才能加入服务器。
  15. entity-broadcast-range-percentage

    • 可选值: 0-100(百分比)
    • 作用: 设置实体广播的范围。例如,100%表示所有实体都在最大范围内广播。
  16. force-gamemode

    • 可选值: truefalse
    • 作用: 是否强制所有玩家在加入时使用指定的游戏模式(gamemode)。true表示强制玩家进入指定模式。
  17. function-permission-level

    • 可选值: 01234
    • 作用: 设置玩家可以执行的函数命令权限等级。等级越高,权限越大。
  18. gamemode

    • 可选值: survivalcreativeadventurespectator
    • 作用: 设置玩家的默认游戏模式。survival表示生存模式,creative表示创造模式,adventure表示冒险模式,spectator表示旁观模式。
  19. generate-structures

    • 可选值: truefalse
    • 作用: 是否生成结构,如村庄、废弃矿井等。设置为false时不会生成这些结构。
  20. generator-settings

    • 可选值: JSON 配置字符串
    • 作用: 用于自定义世界生成设置。例如,可以定义自定义的地形生成规则。
  21. hardcore

    • 可选值: truefalse
    • 作用: 启用硬核模式。硬核模式下玩家死亡后会永久消失。
  22. hide-online-players

    • 可选值: truefalse
    • 作用: 是否隐藏在线玩家。设置为true时,玩家无法看到其他在线玩家。
  23. initial-disabled-packs

    • 可选值: 资源包列表(字符串数组)
    • 作用: 初始禁用的资源包列表。
  24. initial-enabled-packs

    • 可选值: 资源包列表(字符串数组)
    • 作用: 初始启用的资源包列表。
  25. level-name

    • 可选值: 字符串(任意世界名称)
    • 作用: 设置世界名称。默认值是“world”。
  26. level-seed

    • 可选值: 字符串(任意种子)
    • 作用: 设置世界生成的种子,影响生成的世界。为空时随机生成。
  27. level-type

    • 可选值: minecraft:normalminecraft:flatminecraft:largeBiomesminecraft:amplifiedminecraft:custom
    • 作用: 设置世界类型。normal是普通世界,flat是平坦世界,largeBiomes是大生物群落,amplified是放大生物群落。
  28. log-ips

    • 可选值: truefalse
    • 作用: 是否记录玩家的 IP 地址。
  29. max-chained-neighbor-updates

    • 可选值: 整数(例如 1000000)
    • 作用: 设置每次更新过程中允许的最大链式邻居更新次数。
  30. max-players

    • 可选值: 1-1000(玩家数量)
    • 作用: 设置服务器最多允许的玩家数。
  31. max-tick-time

    • 可选值: 整数(毫秒)
    • 作用: 设置每个 tick(更新周期)允许的最大时间,超过此值服务器会认为发生了性能问题。
  32. max-world-size

    • 可选值: 整数(世界的最大大小)
    • 作用: 设置世界的最大大小(以区块为单位)。
  33. motd

    • 可选值: 字符串(任何文本)
    • 作用: 设置服务器的描述,显示在玩家加入时。
  34. network-compression-threshold

    • 可选值: 整数(字节数)
    • 作用: 设置网络压缩的阈值。大于此值的网络数据会被压缩。
  35. online-mode

    • 可选值: truefalse
    • 作用: 启用在线模式时,要求玩家拥有正版 Minecraft 账户。
  36. op-permission-level

    • 可选值: 1234
    • 作用: 设置 OP 玩家的权限级别,数值越大,OP 能执行的命令越多。
  37. pause-when-empty-seconds

    • 可选值: 整数(秒)
    • 作用: 设置服务器在没有玩家时暂停的时间(秒)。
  38. player-idle-timeout

    • 可选值: 整数(秒)
    • 作用: 设置玩家在没有操作时被踢出的时间。
  39. prevent-proxy-connections

    • 可选值: truefalse
    • 作用: 防止代理连接。true时不允许使用代理连接。
  40. pvp

    • 可选值: truefalse
    • 作用: 是否启用玩家间的战斗。
  41. query.port

    • 可选值: 整数(端口号)
    • 作用: 设置查询端口。
  42. rate-limit

    • 可选值: 整数(连接次数)
    • 作用: 限制每秒连接的次数。设置为 0 表示没有限制。
  43. rcon.password

    • 可选值: 字符串(密码)
    • 作用: 设置 RCON 密码,用于远程管理服务器。
  44. rcon.port

    • 可选值: 整数(端口号)
    • 作用: 设置 RCON 端口。
  45. region-file-compression

    • 可选值: nonezlibdeflate
    • 作用: 设置区域文件的压缩方式。
  46. require-resource-pack

    • 可选值: truefalse
    • 作用: 是否强制玩家使用指定的资源包。
  47. resource-pack

    • 可选值: URL(资源包的链接)
    • 作用: 设置资源包的下载链接。
  48. resource-pack-id

    • 可选值: 字符串(资源包 ID)
    • 作用: 设置资源包的唯一 ID。
  49. resource-pack-prompt

    • 可选值: 字符串(提示文本)
    • 作用: 设置资源包提示文本。
  50. resource-pack-sha1

    • 可选值: 字符串(SHA1 值)
    • 作用: 设置资源包的 SHA1 哈希值,用于验证资源包的完整性。
  51. server-ip

    • 可选值: 字符串(IP 地址)
    • 作用: 设置服务器绑定的 IP 地址。
  52. server-port

    • 可选值: 整数(端口号)
    • 作用: 设置服务器监听的端口号。
  53. simulation-distance

    • 可选值: 1-32
    • 作用: 设置模拟区域的大小。
  54. spawn-monsters

    • 可选值: truefalse
    • 作用: 是否允许怪物生成。
  55. spawn-protection

    • 可选值: 整数(方块数量)
    • 作用: 设置生成保护范围,防止玩家在出生点附近破坏环境。
  56. sync-chunk-writes

    • 可选值: truefalse
    • 作用: 是否同步写入区块数据。
  57. text-filtering-config

    • 可选值: JSON 配置
    • 作用: 设置文本过滤器配置。
  58. text-filtering-version

    • 可选值: 整数
    • 作用: 设置文本过滤器的版本。
  59. use-native-transport

    • 可选值: truefalse
    • 作用: 是否启用原生传输协议。
  60. view-distance

    • 可选值: 3-32
    • 作用: 设置玩家的渲染视距,影响可见范围。
  61. white-list

    • 可选值: truefalse
    • 作用: 启用或禁用白名单功能。

如果有些参数看不懂,那就保持默认就行,别去动他了,防止出现意外情况。

比如我已经修改好了一份配置,做了如下修改:

    1. 将游戏模式调整为困难模式
    1. 启用命令方块
    1. 允许非正版账户玩家加入
    1. 世界名称设置为myworld
    1. 将服务器监听端口设置为11375
    1. 服务端 IP 地址设置为0.0.0.0(绑定所有地址)

另外还要提一嘴,服务器端口如果修改为11375的话,需要在你的云平台防火墙中放行这个端口,某则你连不上的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#Minecraft server properties
#Tue Apr 08 23:15:34 CST 2025
accepts-transfers=false
allow-flight=false
allow-nether=true
broadcast-console-to-ops=true
broadcast-rcon-to-ops=true
bug-report-link=
difficulty=hard
enable-command-block=true
enable-jmx-monitoring=false
enable-query=false
enable-rcon=false
enable-status=true
enforce-secure-profile=false
enforce-whitelist=false
entity-broadcast-range-percentage=100
force-gamemode=false
function-permission-level=2
gamemode=survival
generate-structures=true
generator-settings={}
hardcore=false
hide-online-players=false
initial-disabled-packs=
initial-enabled-packs=vanilla
level-name=myworld
level-seed=
level-type=minecraft\:normal
log-ips=true
max-chained-neighbor-updates=1000000
max-players=20
max-tick-time=60000
max-world-size=29999984
motd=A Minecraft Server
network-compression-threshold=256
online-mode=false
op-permission-level=4
pause-when-empty-seconds=0
player-idle-timeout=0
prevent-proxy-connections=false
pvp=true
query.port=25565
rate-limit=0
rcon.password=
rcon.port=25575
region-file-compression=deflate
require-resource-pack=false
resource-pack=
resource-pack-id=
resource-pack-prompt=
resource-pack-sha1=
server-ip=0.0.0.0
server-port=11375
simulation-distance=10
spawn-monsters=true
spawn-protection=16
sync-chunk-writes=true
text-filtering-config=
text-filtering-version=0
use-native-transport=true
view-distance=10
white-list=false

最后一步

配置文件也修改好了,那么直接将服务端托管在后台运行即可。

通过命令nohup&符可以将他放置到后台运行。

1
nohup java -Xmx1024M -Xms1024M -jar ./server.jar nogui &

接着你尝试打开游戏,点击多人游戏,然后添加一个服务器,输入你的 IP+端口。

比如我这里 IP 是:118.12.8.133,端口是: 11375,那么我就输入118.12.8.133:11375即可。

如果有域名的话,直接使用域名也行

到这一步也就结束了,可以开玩了。