手把手教你从零搭建一台原版Minecraft服务器
本文最后更新于168 天前,其中的信息可能已经过时,如有错误请发送邮件到qiye0813@gmail.com

阅读前说明

本文的教程比较偏新手,小白类型的用户,所以文内不会出现太过复杂的代码及其他多余的说明内容。

有问题可在评论区提问,我会为你解答啦。

第一步:准备工作

既然需要搭建一台服务器,那么你首先需要做好以下准备:

硬件层面

1.一台性能足够强劲的电脑(具体的硬件配置要求下文会细说);

2.一个有100GB存储空间以上的硬盘(最好是固态);

3.一个足够快且具有公网地址的宽带(没有公网也可以内网穿透);

软件层面:

1.Windows、Mac OS 与 Linux的操作系统;

2.Minecraft官方提供的服务端;

下载地址1:https://www.minecraft.net/zh-hans/download/server/(官方最新版本的原版服务器核心)

下载地址2:https://getbukkit.org/download/vanilla(官方其他版本的原版服务器核心)

3.JAVA JDK 17或更高版本;

下载地址: https://www.java.com/(官网会自动检测你的操作系统来为你提供对应的JAVA)

关于服务器的硬件配置与网络带宽

服务器硬件及带宽选择

服务器的配置高低要看你要开什么类型的服务器,开多大的服务器,Minecraft的服务器与其他的服务器一样,比较吃cpu的单核性能,这里就以你要搭建一个100人的服务器为例:

类型CPU内存SSD上传宽带下载宽带
纯净服3.0Ghz及以上16GB及以上60GB及以上40Mbp/s及以上20Mbp/s及以上
插件服3.0Ghz及以上20GB及以上120GB及以上40Mbp/s及以上20Mbp/s及以上
模组服3.5Ghz及以上30GB及以上250GB及以上150Mbp/s及以上100Mbp/s及以上
这里是百人服务器的推荐配置

当然了,上诉配置前提是:

  • 不计服务器系统及其他程序运行所需内存
  • 不使用优化很差的核心、插件或 模组
  • 跑图的玩家较少
  • 玩家不会疯狂搭建刷怪塔或圈养巨量宠物
  • 没有玩家玩高频红石

而还有一种服务器对性能的要求更高,那就是插件+模组服,但这种类型的服务器的资源占用并不像单纯的插件服或模组服一样,在此就不多说了。

第二步:安装并启动服务器

做好准备

如果你下载了官方的服务器核心,它的文件名应该是server.jar<minecraft版本>.jar

接下来,我们打开固态硬盘,新建一个文件夹并重命名为“minecraft-server”以便于我们后续管理服务器文件,然后把你下载好的服务器核心文件移动到这个文件夹内。

启动服务器

进入你的服务器文件夹,右键新建一个文本文档并重命名为start.txt,接着使用记事本打开该文件输入以下指令;

对于Windows:

java -Xms1G -Xmx1G -jar server.jar nogui
pause
# 完成后记得将文件后缀改为.bat

对于Mac OS:

#!/bin/bash
cd "$(dirname "$0")"
exec java -Xms1G -Xmx1G -jar server.jar nogui
# 完成后记得将文件后缀改为.bat

对于Linux

#!/bin/sh
java -Xms1G -Xmx1G -jar server.jar nogui;
# 完成后记得将文件后缀改为.bat

在 Mac 或 Linux 中,可能还需要修改文件权限来使其成功运行。

chmod a+x start.command 或 chmod a+x start.sh

当你完成上诉操作后,我们就可以着手开始启动你的 Minecraft 服务器了。

双击运行一次启动脚本,这时你会发现并没有启动成功。别担心,这是正常的,在绝大多数核心下,你需要同意 EULA(最终用户许可协议),命令行中会提示:

You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

这个意思是让你阅读并同意最终用户许可协议,你可以在下面的网址查看详细内容https://account.mojang.com/documents/minecraft_eula

若你同意了协议要启动服务器,需打开目录下出现的 eula.txt,将里面的 eula=false 修改为 eula=true。

保存更改后再次打开启动脚本,等待服务器执行安装操作;

它会自动下载支持库、创建或加载世界、初始化插件和模组,等命令行出现 Done (5.330s)! For help, type “help” 后,就代表服务器已经完成了启动。

想要停止服务器,只需在终端中输入 stop 即可。

JVM启动参数

现在,我们再回过头来解释一下那行启动参数到底是什么。

java -Xms1G -Xmx1G -jar server.jar nogui
java调用 Java 运行时环境(JRE)
-XmsJVM 启动时申请的最小 RAM 大小,默认为物理内存的 1/64
-XmxJVM 启动时申请的最大 RAM 大小,默认为物理内存的 1/4
-jar将 JRE 指向特定的.jar文件
server.jarMinecraft 服务器程序文件(核心)
nogui用基于文本的界面来显示,可减少内存使用
Minecraft服务器启动参数

对于基础服务器,只需设置一个较大的内存即可,推荐是 10G 。

java -server -Xms10G -Xmx10G -jar server.jar nogui

第三步:配置你的服务器

服务器配置文件说明

在服务器完成启动后,你会注意到根目录新出现了一堆文件,他们分别是:

banned-ips.json通过IP地址ban掉的玩家列表
banned-players.json通过 Minecraft 用户名ban掉的玩家列表
crash-reports服务器崩溃时的报告
logs服务器的历史消息
ops.json服务器上所有具有管理员权限的玩家列表
server.properties主要的配置文件
usercache.json所有连接过服务器的玩家客户端数据缓存
whitelist.json开启白名单后允许的玩家用户名
world服务器地图存档
服务器配置文件说明

这是原版服中的所有文件,就像你客户端的 .minecraft 目录,里面包含了运行服务器需要的所有文件。

server.properties文件配置

在正式连接到服务器之前,我们还需要对服务器进行一些配置。输入 stop 停止服务器后,右键使用记事本打开 server.properties:

#通过将该值进行2x+1的运算来决定出生点的保护半径。设置为0将不会禁用出生点保护,但会保护位于出生点的那一个方块。如果服务器没有设置OP,这个选项会自动禁用。
spawn-protection=16
#设置每个tick花费的最大毫秒数。超过该毫秒数时,服务器看门狗将停止服务器程序并附带上信息。
max-tick-time=60000
#设置监听服务器的端口号(参见 enable-query)
query.port=25565
#用于自定义世界的生成
generator-settings=
#强制玩家加入时为默认游戏模式
force-gamemode=false
#允许玩家进入下界
allow-nether=true
#强制开启白名单,使不在白名单中的用户无法加入游戏
enforce-whitelist=false
#定义默认游戏模式,survival\creative\adventure\spectator
gamemode=survival
#将控制台信息显示给OP
broadcast-console-to-ops=true
#允许使用GameSpy4协议的服务器监听器,用于获取服务器信息。
enable-query=false
#玩家空闲超时(分钟)
player-idle-timeout=0
#游戏难度,peaceful\easy\normal\hard
difficulty=easy
#动物生成
spawn-monsters=true
#将 RCON 信息显示给OP
broadcast-rcon-to-ops=true
#OP 权限等级
op-permission-level=4
#是否允许玩家互相攻击
pvp=true
#数据采集,是否允许服务端定期发送统计数据到 http://snoop.minecraft.net
snooper-enabled=true
#确定地图所生成的类型,default\flat\largebiomes\amplified\buffet
level-type=default
#开启后强制设置为困难模式
hardcore=false
#启用命令方块
enable-command-block=false
#允许玩家人数上限
max-players=20
#网络压缩阈值,默认会允许n-1字节的数据包正常发送, 如果数据包为n字节或更大时会进行压缩。所以,更低的数值会使得更多的数据包被压缩,但是如果被压缩的数据包字节太小将反而使压缩后字节更大。
network-compression-threshold=256
#资源包的SHA-1值,必须为小写十六进制,建议填写它。这还没有用于验证资源包的完整性,但是它提高了资源包缓存的有效性和可靠性。
resource-pack-sha1=
#世界大小
max-world-size=29999984
#函数权限等级
function-permission-level=2
#RCON 远程访问的端口号
rcon.port=25575
#服务器(监听的)端口号。如果服务器在使用 NAT 的网络中运行,该端口必须被转发
server-port=25565
#将服务器与一个特定IP绑定。强烈建议留空该属性值!
server-ip=
#是否生成村民
spawn-npcs=true
#允许玩家在安装添加飞行功能的模组下在生存模式下飞行
allow-flight=false
#服务器世界名称及其文件夹名
level-name=world
#视野距离
view-distance=10
#可输入指向一个资源包的URI,玩家可选择是否使用该资源包。注意若该值含":"和"="字符,需要在其前加上反斜线(\)。资源包大小理应不能超过50 MiB。
resource-pack=
#是否生成动物
spawn-animals=true
#启用服务器的白名单
white-list=false
#设置RCON远程访问的密码(参见enable-rcon)
rcon.password=
#是否生成遗迹等建筑,即使设为false,地牢仍然会生成
generate-structures=true
#正版验证
online-mode=true
#最大建造高度
max-build-height=256
#地图种子
level-seed=
#是否禁止玩家使用虚拟专用网络或代理
prevent-proxy-connections=false
#是否使用针对Linux平台的数据包收发优化
use-native-transport=true
#服务器标语
motd=A Minecraft Server
#是否允许远程访问服务器控制台
enable-rcon=false

如果你没有用正版登录情况下运行客户端,请将正版验证关闭:online-mode=false,否则将无法登入至服务器。

对于启用命令方块,请将 enable-command-block 设置为 true 。

请注意:如果关闭正版验证后,在纯净服中最好开启白名单。否则当其他玩家若修改用户名为管理员的名称,即可继承其权限!

world文件夹

当此文件夹内没有地图文件时,服务器会自动生成全新的地图文件;

如果要手动备份服务器的存档,直接复制整个world文件夹备份即可;

如果要使用其他的地图开服务器,直接更换world文件夹里面的地图文件即可;

如果更换地图以后要保存玩家数据,请记得将 world 文件夹中的 playerdata 文件夹保留。

第四步:加入你的服务器

服务器连接地址

启动服务器后,让我们打开与服务器对应版本的客户端,进入多人游戏。

选择添加服务器,在服务器地址处输入你的IP地址。如果只是本地测试用,可以直接填写回送地址:localhost 或 127.0.0.1:25565

如果你不知道你的电脑的IP,通过以下途径可以获取IP:

对于 Windows

打开命令提示符窗口(Win+R > 输入cmd > 回车),输入 ipconfig,即可在 IPv4 地址 处找到IP地址。

对于 Mac OS

打开 终端,输入 ifconfig | grep “inet “,即可找到IP地址。

对于 Linux

在 Shell 中输入 /sbin/ifconfig 或 ip addr show,即可找到IP地址。

将 IPv4 地址输入后,点击完成后即可在多人游戏服务器列表中看见你的服务器了。

不过,你可能还无法直接让局域网外的朋友通过这个 IP 直接连接到你的服务器,我们需要确定你的IP是内网IP还是公网IP;

如何确定你的 IP 是否为内网IP,只需对照你的 IPv4 是否属于以下地址段。

10.0.0.0 - 10.255.255.255 

172.16.0.0 - 172.31.255.255

192.168.0.0 - 192.168.255.255

如果你的 IP 为 192.168.0.102,那么属于内网 IP。

如果你的 IP 不属于上面任何一段,那就是公网IP,你只需要确保防火墙或安全策略开放了 server-port,默认是 25565。使用 Minecraft:Java 服务器默认端口可以直接通过 IP 连接服务器,而无需加上端口。

内网穿透

如果你的IP是内网IP,那你就只能使用内网穿透来进行联机了;

我这里首先推荐樱花映射,网址为https://www.natfrp.com

1.创建隧道

我这里使用樱花映射为例:

隧道配置如下:

  • 隧道名称:SERVER
  • 隧道类型:TCP 隧道
  • 本地 IP:127.0.0.1
  • 本地端口:25565

如非必要,其他设置保持默认。

设置完后开启隧道,日志中会出现一行 “使用 [frp-xxx.top:xxxxx] 来连接到你的隧道” 的提示,其他的玩家就可以使用这个连接 (frp-xxx.top:xxxxx) 来加入你的服务器。

2.设置srv解析(只是为了美观,非必要)

关于详细的教程请参阅樱花映射的官方帮助文档:

https://doc.natfrp.com/app/mc.html#srv

第五步:管理你的服务器

设置管理员

首先,你需要先给设置为管理员来执行高权限命令,假设你的用户名是Qiyeya,在控制台(Console)里输入 /op Qiyeya 即可。Qiyeya 为你游戏的用户名,如果不小心给到了 Qiyaya,也不必担心,用 /deop Qiyaya 即可取消TA的管理员身份。

注意,在控制台中输入指令请不要添加斜杠”/”!!!

你可以在 logs 文件夹中查看到服务器所有的历史消息。为了节省空间,Mojang 会将除最后一次以外的记录文件进行压缩。这样如果有管理员使用指令破坏服务器,你也可以知道是谁干的。

服务器玩家管理

1.kick

用法:/kick <玩家名> [理由]

作用:强制切断用户与服务器的连接,可在用户名后可加上原因以警告。

例:/kick Qiyeya 不许开挂!

2.ban

用法1:/ban <玩家名> [理由]

作用:封禁,永久切断用户与服务器的连接,可在用户名后可加上原因以警告。

例:/ban Qiyeya 你违法了服务器规则!

用法2:/ban-ip <IP地址 | 玩家名> [理由]

作用:封禁,永久切断用户的 IP 与服务器的连接,可在用户名后可加上原因以警告。

例:/ban-ip Qiyeya 你违法了服务器规则,被封禁IP!

用法3:/banlist [list | ips]

作用:显示被封禁的 IP 地址或玩家。

例:/banlist list

3.pardon

用法1:/pardon <玩家名>

作用:解除对玩家的封禁。

例:/pardon Qiyeya

用法2:/pardon-ip <IP地址>

作用:解除对 IP 地址的封禁。

例:/pardon-ip 192.168.0.1

4.whitelist

用法1:/whitelist add <玩家名>

作用:将玩家添加进白名单。

例:/whitelist add Qiyeya

用法2:/whitelist remove <玩家名>

作用:将玩家从白名单移除。

例:/whitelist remove Qiyeya

用法3:/whitelist list

作用:显示白名单中的玩家。

例:/whitelist list

用法4:/whitelist on

作用:开启白名单。

例:/whitelist on

用法5:/whitelist off

作用:关闭白名单。

例:/whitelist off

写在结尾

我觉得,用这个教程应该小白都可以学会如何搭建及管理Minecraft服务器了吧…

关于服务器插件,模组之类的东西,我会单独再写一篇文章进行教学的;

到这里,你的服务器已经搭建完毕啦,觉得这篇文章对你来说有帮助的话可以打赏用来维持博客运行,最后,祝你玩得开心~

最后更新日期:2023.12.31

关于如何开插件服,模组服,插件模组服请查看我的其他文章啦~

评论

  1. chocolates
    Windows Edge
    9 月前
    2023-9-08 20:00:48

    好,好强

    来自安徽
  2. 111b
    Windows Edge
    9 月前
    2023-9-16 21:15:50

    awa

    来自福建
    • 博主
      111b
      Windows Edge
      9 月前
      2023-9-30 19:24:40

      awa

      来自安徽

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇