新土共建-BDS+LL3 开服指南

iktf0713 完成文档的大部分编写工作。其中安装教程部分使用了其他作者的文章,如有侵权,请联系我(1716748362)

前言

在Minecraft社区中,对于我的世界服务器讨论热度一直在Java版当中。社区中有关Java版服务器的技术教程随处可见,但是对于国际基岩版却缺少一个完整的、实用的、能够解决大多数问题的开服教程。故我编写此文档,来解决一些基岩版开服问题

看不懂怎么办?

这个文档有上万字,凝集我一年多的开服经验,它能够解决你开服时遇到的绝大多数问题,尽管其他开服教程可能就几百字,但是当你遇到各种问题无处解决时,你就会感谢这份超级长的文档。

有些地方字特别多,不过不一定重要,看看就行,如果后面有看不懂的再回来翻。前面的术语解释你懂的就不用再花很多时间理解了,如果你只是想把服务器开起来,你甚至可以直接跳转到服务器配置教程,有不懂得就问AI或者翻前面的术语解释。

如果你遇到了一些问题/文档内容有误,欢迎前往评论区提问。如果你发现在这上万字的文档中找不到你想要的答案,欢迎使用本网站的AI服主功能,他会帮你解决一切疑惑,AI的回复可能不准确

一些科普

专业术语科普(重要)

服务端(Server / BDS)

指你在服务器上运行的基岩版专用服务端(Bedrock Dedicated Server,BDS),也就是服主开服用到的程序。

  • 无图形界面,以命令行方式运行,只负责后台运算。
  • 负责游戏逻辑:存档数据、方块/物品规则、生物 AI、天气、计分板、权限验证等。
  • 负责联机:监听端口(默认 UDP 19132),接受多个客户端连接并同步世界状态。
  • 常见第三方基岩版服务端还有 PocketMine-MP、Nukkit 等。

主流服务端省流介绍

客户端(Client)

指玩家手机、平板、Xbox、Switch、Win10 上安装的 Minecraft 基岩版游戏本体。

  • 负责显示与交互:渲染方块/实体/光影、播放音效、响应玩家按键/触屏输入。
  • 不含世界运算核心,只把你的操作发给服务端,并接收服务端下发的数据来刷新画面。
  • 连接 BDS 时填入服务器 IP+端口即可加入游戏。

简单类比:

  • 服务端 = 餐厅后厨:处理订单、做菜(运算游戏逻辑和世界数据)。
  • 客户端 = 顾客餐桌:看菜单、点菜、享用菜品(显示画面、输入指令)。
  • 多人游戏时,所有玩家的客户端都连到同一个服务端,保证大家看到同一世界的同步状态。

⚠️ 注意:BDS 服务端和客户端的版本号(协议版本)必须匹配,否则会出现"客户端过期/服务端过期"无法连接。在新土共建服务器中,我们使用了Glacie插件来让多个客户端的协议版本与服务端版本号兼容,有关插件的部分将会在后续介绍。

内存(RAM — Random Access Memory)

在聊 MC 服务器或普通电脑时,内存(RAM)和硬盘/存储(Storage/SSD/HDD)经常被混淆,它们作用和特性差别很大:

  • 用途:CPU 直接快速读写的临时工作区。程序运行时,代码和数据先加载进内存才能执行。
  • 特点:速度极快(纳秒级),但断电/关机后数据全部清空(易失性)。
  • MC 服务器中:BDS 会把世界区块、实体、玩家数据、插件/附加包常驻在内存中,以提升读写效率。内存不足会导致卡顿、TPS 下降甚至服务端崩溃。
  • 容量举例:小型基岩版 BDS(几个玩家)通常 1~2GB 可用内存就够;大服或加大量附加包建议 4GB+。

硬盘 / 存储(SSD 或 HDD)

  • 用途:长期保存数据的介质——系统文件、游戏服务端程序、世界存档(level.dat、db 文件夹)、备份、日志等。
  • 特点:速度比内存慢很多(尤其是机械硬盘),但断电后数据不丢失(非易失性)。
  • MC 服务器中:世界会定期从内存写入硬盘(自动保存),玩家加入时从硬盘读取区块。SSD 能明显加快启动、地图加载和备份速度。
  • 容量举例:基岩版世界存档视游玩范围几十 MB 到几 GB,建议预留数 GB 空间用于存档+日常备份。

存储(硬盘)与内存的核心区别

对比项 内存(RAM) 硬盘/存储(SSD/HDD)
作用 程序运行中临时存放数据 永久/长期存储数据
速度 极快 较慢(SSD 快于 HDD)
断电后 数据丢失 数据保留
MC 关联 影响运行流畅度、最大承载人数 决定能否存下世界、备份快慢

🍽️ 再套用 MC 类比:内存 = 厨师手边的案板,食材(数据)放上面才能快速切炒,但收摊就没了。硬盘 = 仓库冷库,食材和成品做好后存进去,下次开店再从这里取。

带宽与宽带

"带宽"和"宽带"经常被混着说,但不是一回事,一个指指标,一个指服务类型。

带宽(Bandwidth)—— 是个物理量/技术指标

指通信链路单位时间内能传输的数据量,也就是"路有多宽"。

  • 单位:bps(bit per second),常见 Mbps、Gbps
    • 注意是 bit 不是 Byte,1 Byte = 8 bit,所以 100M 宽带下载理论峰值约 12.5 MB/s
  • 两种含义(不同学科):
    • 网络/数字通信:指数据传输速率上限,比如"这条链路带宽是 100M"
    • 模拟信号/电路:指频率范围宽度(Hz),比如 Wi-Fi 在 5GHz 频段"带宽"80MHz,指的是占用的频带宽度
  • 类比:水管直径,直径越大(带宽越高),单位时间流过的水(数据)越多

宽带(Broadband)—— 是个业务概念

指相对于"窄带"而言的高速互联网接入服务,是个营销和技术兼顾的词。

  • 起源:早期拨号上网(56Kbps)叫"窄带",ADSL/光纤上来之后速率跨越式提升,就叫"宽带"了
  • 没有绝对数值门槛,ITU 早年定义是 >128 Kbps 就算宽带,现在国内家用起步一般是 100M/200M/1000M
  • 常说的"装宽带"="办运营商的宽带上网业务",背后可能是光纤(FTTH)、网线(FTTB)、甚至 5G CPE

一句话区分:带宽是"这条路每秒能跑多少车"(技术指标);宽带是"这属于高速路这一类业务"(服务品类)。

宽带是宽的带,带宽是带的宽

IDC/服务商

IDC(Internet Data Center)全称为"互联网数据中心",是指一种拥有完善设备(包括高速互联网接入带宽、高性能局域网络、安全可靠的机房环境等)和专业化管理的应用服务平台。

下文的"服务商"指的就是IDC服务商。近似地来讲,IDC就是卖服务器的。

VPS和虚拟化

VPS(虚拟专用服务器)和虚拟化是云计算和现代IT基础设施中非常核心的两个概念。简单来说,虚拟化是底层技术,而 VPS 是基于这项技术提供的一种服务产品。

什么是虚拟化 (Virtualization)?

核心思想:"把物理资源打散,再重新拼装"。

在没有虚拟化之前,一台物理服务器通常只能运行一个操作系统,这就好比一套大别墅只能住一户人家,如果这家人只用了一间卧室,剩下的房间和客厅就全浪费了。

虚拟化技术通过一层软件(称为 Hypervisor / 虚拟机监视器),直接在物理硬件和操作系统之间加了一个"抽象层"。它把物理服务器的 CPU、内存、硬盘、网卡等硬件资源"池化",然后按需切割、分配给多个相互隔离的虚拟机 (VM)。

常见比喻:

  • 合租公寓:物理服务器是一栋大楼,虚拟化技术是"隔断",把大楼分成了多个独立的公寓。每个公寓有自己的门锁(隔离性)、水电表(资源分配),互不干扰。
  • 电脑上的多开:就像你在电脑上用 VMware 或 VirtualBox 开几个虚拟机一样,只不过服务器级别的虚拟化更强大、性能损耗更低。

主流虚拟化技术:

  • 全虚拟化 (Full Virtualization):如 KVM、VMware ESXi、Hyper-V。虚拟机不需要修改操作系统,完全模拟底层硬件,性能接近物理机。
  • 半虚拟化/容器化 (Paravirtualization / OS-level):如 LXC、Docker。不模拟硬件,而是共享宿主机的操作系统内核,极度轻量,启动秒级。

什么是 VPS (Virtual Private Server)?

核心思想:"卖给你一台拥有独立权限的虚拟服务器"。

VPS 的全称是 Virtual Private Server(虚拟专用服务器)。它是云服务商利用上述的虚拟化技术,将一台强大的物理服务器分割成多个虚拟服务器,然后按月或按年租给用户。

VPS 的特点:

  1. 独立操作系统:你可以自己决定装 Linux 还是 Windows,拥有 Root/Administrator 最高权限。
  2. 资源隔离:虽然大家共用一台物理机,但你的 CPU、内存、带宽是独立分配的,邻居服务器崩溃或中毒,通常不会影响你。
  3. 独立 IP:拥有自己专属的公网 IP 地址。
  4. 弹性:随时可以重启、重装系统、升级配置。

VPS 的演进:早期的 VPS 多基于 OpenVZ 等半虚拟化技术,资源超卖严重,性能不稳定。现在的 VPS 绝大多数基于 KVM 虚拟化,甚至很多已经演变成了云服务器 (Cloud Server / ECS),底层结合了分布式存储和更高级的调度系统。

一张表看懂它们的关系

维度 虚拟化 (Virtualization) VPS (虚拟专用服务器)
本质 技术手段 / 软件架构 商业产品 / 服务
作用 提高硬件利用率,实现资源隔离与灵活调度 为用户提供低成本、易管理的服务器环境
使用者 系统管理员、云架构师、运维工程师 网站站长、开发者、中小企业、个人用户
类比 盖楼时的钢筋混凝土框架和隔断技术 租给你住的那间精装公寓

总结:

  • 如果你想搭建数据中心,你需要研究虚拟化(比如部署 Proxmox VE, ESXi, KVM),考虑如何分配资源、做高可用和容灾。
  • 如果你只是想建个网站、跑个爬虫、搭个游戏私服,你只需要买一台 VPS,不用关心底层是用什么技术虚拟出来的,只要好用、稳定、便宜就行。

服务商超开

是云计算 / IDC(数据中心)领域的行业黑话,"超开 = Overcommitment,也叫资源超卖 / 超配",指的是服务商在单台物理服务器上分配的虚拟资源总量,超过了这台机器实际的物理资源上限。

核心逻辑

虚拟化环境下,一台物理机(比如 16 核 / 64G 内存)通过 KVM / VMware 切成几十台 VPS 卖给不同用户。服务商敢这么干,是基于一个假设:

💡 不是所有用户都会同时 100% 跑满自己买的配置。

所以理论上可以"切多一点"出去——比如物理 16 核切出 32 个"1 核"VPS,超开比例 200%;物理 64G 内存分配出总计 80G 给各实例。

常见超开尺度

资源类型 正常分配 超开典型比例 超开后果
CPU 1 物理核 ≈ 1 vCPU 2–5 倍(KVM/VMware 常见) 高峰抢核,计算排队
内存 物理内存 = 分配总和 ≤ 1.3–1.5 倍为宜 Swap 频繁,性能掉 50%+
磁盘 I/O 独立通道 多实例共享 数据库延迟飙 3–5 倍
带宽 独享 超售共享 晚高峰变"拨号"

为什么服务商要超开

  • 压成本(圈钱):一台物理机多塞几十台 VPS,才能把你那台"月付 30 块"的机器卖出去还能赚钱
  • 弹性假设合理:普通个人站长 / 小企业,CPU 利用率常年个位数,超开本身在轻度负载下没问题
  • 但踩坑点在高峰:邻居一搞促销、挖矿、备份,你的网站就跟着躺平——CPU 抢不过、IO 堵死、晚高峰网络掉速

端口、IP地址、NAT

顺着 BDS 管理员的角度,把 IP 地址 + 端口这两个概念一起铺开讲,比单讲端口更清楚。

IP 地址:定位"哪台机器"

IP(Internet Protocol)地址的作用,相当于现实里的收件地址——告诉数据包"该送到哪台设备"。

两个版本你在 BDS 里都会碰到:

  • IPv4:形如 192.168.1.1008.8.8.8,点分十进制,每段 0–255。总量约 42 亿,早就不够用了,所以有了 NAT(一台公网 IP 后面藏一堆内网机)
  • IPv6:形如 2001:db8::1,冒分十六进制。量大到每粒沙子都能分几个,家用宽带现在基本都带公网 v6

服务器场景下三种 IP 你要分清:

类型 例子 谁能用
公网 IP 1.2.3.4 全网任何人都能连(云服务器、部分家用宽带)
内网 / 私有 IP 192.168.x.x10.x.x.x172.16–31.x.x 只在同一局域网内能达,外网进来要靠路由器转发
回环地址 127.0.0.1(v4)/ ::1(v6) 本机自己连自己

💡 BDS 的 server.properties 里有一项 server-ip=,默认留空就行,表示绑定本机所有 IP。除非你机器有多网卡想限定只监听某一个,否则别乱填。

家用服主最容易踩的坑:你以为有公网 IP,其实没有。很多家用宽带是 ISP 层面再 NAT 一次(叫 CGNAT,100.64.x.x 段),这时候:

  • 你路由器 WAN 口拿到的 100.64.x.x 并不是真公网
  • 端口转发做了也白做,外网连不上
  • 解决办法:找运营商要公网 IPv4(越来越难),或者直接走 IPv6(现在主流方案)

端口:定位"机器上的哪个程序"

IP 把包送到机器,端口决定交给这台机器上哪个进程。

为什么需要端口?一台 BDS 服务器上可能同时跑:

  • BDS 自己(UDP 19132)
  • SSH(TCP 22,你远程管理用)
  • 可能有 Web 面板(TCP 8080)
  • 可能有 RCON(TCP 19132 常被复用或另配)

操作系统靠端口号区分:"哦这包是给 BDS 的,不是给 SSH 的"。

端口号范围 0–65535:

  • 0–1023:知名端口,root 权限才能绑(HTTP 80、SSH 22、DNS 53)
  • 1024–49151:注册端口,BDS 的 19132 就在这档
  • 49152–65535:临时端口,客户端随机往外连时系统分配

TCP vs UDP,基岩版走的是哪一个:

  • TCP:可靠、有序、重传——适合网页、SSH、Java 版 MC
  • UDP:无连接、不保证送达、快——适合游戏位置同步、语音、视频流

基岩版 BDS 用 RakNet 协议 → 跑在 UDP 上,所以:

  • 防火墙 / 安全组 / 路由器转发,必须放行 UDP,只开 TCP 是废的
  • server-port=19132 指的是 UDP 19132
  • 如果你同时跑 Java 版(默认 TCP 25565)在同一台机器,端口不冲突,因为协议层不同

📌 一个端口能不能被两个程序共用?可以,但得满足"协议不同"或"IP 不同"之一。比如 BDS(UDP 19132)和某个 TCP 服务绑 19132 不冲突;但两个程序都想绑 0.0.0.0:UDP:19132 就会报 Address already in use

把两者拼起来:玩家连接时到底发生了什么

玩家在基岩版客户端填:

服务器地址: 1.2.3.4
端口:       19132 (不填的话客户端默认试 19132)

数据包的"信封"长这样:

目标 IP:1.2.3.4 : 19132 (UDP)
来源 IP:玩家IP : 随机端口

路径:

  1. 玩家网络 → 运营商 → 你服务器公网 IP
  2. 如果服务器在路由器/NAT 后,路由器按"端口转发"规则把 UDP 19132 转给内网 BDS 机器的 19132
  3. BDS 进程绑着 0.0.0.0:19132/udp,收到包 → RakNet 解包 → 游戏逻辑

任何一环 IP 或端口对不上,结果都是连不上或能搜到房间但进不去。

教程中使用的服务端介绍(仅作了解)

本教程中使用 Levilamina(LL3)+ Bedrock Dedicated Server (BDS) 作为开服所使用的工具(服务端)。

以下内容仅作了解

BDS 是 Mojang Studio 官方开发的服务端。过去,基岩版并没有完善的官方开服工具,当时市面上的服务端大多对原版游戏特性/模组/存档支持较差。在这种状况下,Mojang 官方提供了 BDS 这一服务端框架,其突出特点是:

  • 兼容原版存档、模组
  • 更新迅速
  • 早期性能表现良好

LeviLamina 来自哪里?LeviLamina 从 Minecraft 基岩服务器的深处出现,从 LiteLoaderBDS 项目的种子中发芽。

(以下关于 LL3 的介绍摘自 LeviLamina 官方文档,仅作了解)

Minecraft Bedrock Edition 的最初版本缺乏 Minecraft Java Edition 中存在的广泛的模组和服务器插件生态系统,从而限制了其游戏可能性。一群精通 Minecraft Bedrock Server 的 C++ 爱好者,进行了分析,并利用逆向工程技术和钩子注入机制,干预了游戏服务器的运行,从而开创了第一套服务器模组的开发。

然而,这种开发范式遇到了一些挑战。首先,缺乏底层框架的支持,使得模组开发过程中需要依赖各种低级工具来进行符号分析、注入实现、钩子注册等功能。这导致了不同模组之间的代码冗余和重复,以及潜在的冲突。其次,缺乏明确的类型定义,迫使开发者在创建模组时进行逆向工程分析,导致了开发门槛的提高和效率的降低。

为了应对这些困境,前期项目 LiteLoaderBDS 的维护者,构建了一个基于注入的模组加载引擎和一个模组开发框架。此外,他们还提供了类型信息,使模组开发者无需深入了解底层原理就能创建模组。这大大降低了模组开发的入门难度,促进了模组生态系统的繁荣。

然而,随着 LiteLoaderBDS 的进展,一些问题也暴露出来。早期的设计没有考虑到未来的发展,使得许多方面过时和难以使用现代化的工具,从而无法满足最新的性能要求。此外,它的紧耦合设计在适应新版本的 Minecraft Bedrock Server 时也需要付出巨大的努力。因此,LeviMC 决定从头开始,利用现有的专业知识,进行全面的框架重设计,培育一个对维护者、开发者和用户都友好的模组引擎。

BDS 的缺陷(了解即可)

随着BDS开发的进展,BDS的性能一代不如一代

在 1.14.xx 版本时,BDS 的性能强悍到即便是一个 20 年前的 E5 处理器都能够流畅支撑 50+ 玩家的服务器流畅运行。经过数年的沉淀,BDS 的性能终于在 Microsoft 这家美国公司的引导下实现"屎食级"的飞跃,在目前相对稳定的 1.21.13x 服务端版本(也就是新土共建服务器现在使用的版本)中,即便是最强大的 CPU: AMD R9-9950X 也只能够勉强支持 20 人左右的服务器运行(限制生电的前提下)。

在较新的 26.10/26.30 等 BDS 版本中,BDS 的性能也是质的"飞跃":仅仅一人在线就会吃掉 6GB 内存,最多只能在限制生电的情况下保证 10 人左右正常游戏。这也是为什么目前大多数 BDS 服主选择恪守 1.21.13x 作为服务器的游戏版本。

多线程灾难

随着计算机硬件技术的发展,现代的 CPU 通常配备多个 CPU 核心。像现在的手机 CPU 以 8 核心为主,家用电脑 CPU 通常具有 424 个核心,而一些专业的服务器/工作站 CPU 具有更多的核心数量,通常在 16300 甚至更多个 CPU 核心。

增加 CPU 核心数量相当于给服务器多增加了许多个进行计算的"大脑"。一般来讲,增加 CPU 数量,能够让计算机的性能成倍数地增长,但 BDS 就是个例外。

由于 BDS 的开发者并没有对其做过多的多线程优化,导致 BDS 的绝大多数任务(生物AI、红石计算等)只能够运行在一个 CPU 核心上,因此,哪怕使用 512 核心的恐怖 CPU 也无法挽救 BDS 最多只能带 20 个人的悲惨事实。

那我们怎么办呀?既然前面说了一个 BDS 只能够将核心任务集中在一个核心上,那我开多个 BDS 就能够将核心任务给分配到多个核心上了!这种思路叫做开群组服,也就是在一台服务器上运行多个服务端,充分压榨每一个 CPU 核心,让 CPU 性能得到充分利用。对于绝大多数同样多线程优化不足的 Java 版服务器,也是使用此思路来解决多线程优化灾难的问题。

锁死Windows生态

依照微软一贯的做事风格,他们想让你在有关计算机的一切领域都使用 Microsoft 公司的产品,比如编程有 C# 语言和 .NET 生态,操作系统有 Windows,只要你使用了他们的一个产品,你就不得不搭配这家公司的其他产品使用,否则无法发挥出其最佳效果。比如在过去 .NET 编程制作的程序在搭载 Linux 操作系统上性能极差,几乎没有优化,这使得 C# 以及 .NET 编写的服务端程序不得不运行在 Windows Server 服务器上,使用 Windows Server 作为大型数据中心的服务器操作系统,就得不得不忍受 Windows Server 高昂的正版费用、较差的性能和稳定性以及屎中之屎的自动更新机制。

而 BDS 也是同理。绝大多数《我的世界》服务端程序运行在 Linux 服务器上,Linux 服务器可以做到一年不重启也能够在操作系统层面不出现任何问题,同时能够保证比 Windows 更加强悍的性能,但是 BDS 对于 Linux 系统完全没有优化(甚至说不支持 Linux 系统),强硬地在一台 Linux 服务器上安装 BDS,会导致 50% 的服务端性能损耗。

正式开始

第一步:选购一台服务器

对此我不做详细介绍与服务商推荐,简要地介绍一下服务器选购要点:

在后文中我会给出一些可供参考的配置清单

服务器出租类型

服务器通常按照以下类型售卖:

  • VPS(虚拟专用服务器)/ECS(轻量云服务器)
  • 游戏面板服务器
  • 物理机出租
  • 物理机托管

我们通常选用第一种服务器(VPS(虚拟专用服务器)/ECS(轻量云服务器)),它的租用成本很低,而且开箱即用,无需自己装机,升降配置也更加灵活。

对于 BDS,选用具有更高线程数量与内存/存储的物理机并无过高收益,因此我还是推荐购买成本低不少的 VPS/ECS 服务器。

对于面板服务器(比如简幻欢卖的服务器、网易我的山头也是类似这种类型),它能够一键部署游戏服务端,所有的操作都可以在一个网站控制台操控,学习成本接近 0,使用很方便,成本也比传统 VPS/ECS 还要便宜,但我只推荐小型亲友服服主购买,因为它有如下的致命缺点(主要是服务商的问题):

  • 通常使用 Linux 系统,带来 50% 性能损耗
  • 服务商超开问题严重(服务器性能难以被估量)
  • 功能局限:只能用来游戏开服,而且某些插件无法正常运行。

对于CPU:单核心性能、主频频率(GHz) >> CPU核心数量

我这里提供两个可参考指标:

  1. 主频:建议 3GHz 或者更高,对于单个服务端需要承载 10+ 日活的"大型"服务器,主频建议 4.3GHz 以上
  2. cpu-z 跑分:通过 cpu-z 软件计算的 cpu 性能跑分。在 17 标准中,单线程跑分最好在 600 分以上,对于日活较高的服务器,建议使用 cpu-z 单线程跑分 800 分以上。
  3. cpu 核心数:单个服务端使用 4 个核心以获得最大收益(跑图时可能会占用多个 CPU 核心的性能),但是在预算不足的情况在优先考虑高频/单核心性能强悍的 CPU
  4. 推荐选择高频的消费级 CPU 系列,比如 AMD锐龙Intel Core i5/i7/i9/u9,下方 CPU 深受 BDS 服主喜爱:
AMD R9-9950X
Intel i9-14900k
AMD R9-7950X
Intel i7-13600k
...

如果需要极致性能,最好不要选用一些工作站 CPU 系列,他们的多线程性能强大,但是单线程性能较差,开 BDS 的表现一般,只推荐预算不足时选择租用,比如:

Intel Platinum(铂金)
Intel Xeon(志强)
AMD EPYC(霄龙)
AMD THREADRIPPER(线程撕裂者)

如果你是土豪,能够自己买一些超高端工作站CPU(比如线程撕裂者PRO 9995WX)拿来开服,那么上面的当我没说。

对于内存:最少5GB,之后每增加一个在线玩家多预留0.5GB的内存

运行 Windows Server 服务器最少需要 4GB 内存,之后再留 1GB 内存以应对突发情况。

对于标题的计算公式,这边我做一个示例:
对于新土共建服务器,高峰期需要承载 25 个玩家。保险起见,服务器需要内存大小计算公式为:

5GB(保底) + 25*0.5GB = 17.5GB

也就是服务器最少需要准备 17.5GB 内存。

本公式中的"在线玩家"为所有群组服玩家数量之和。比如主服有15人在线,生电服6人在线,资源服4人在线,总人数就是25人。

对于带宽:一个人=0.5Mbps

基岩版服务器对带宽的要求较低,不跑图的话 1M 带宽甚至可以支撑 5 个人运行。

为了防止一些突发情况(如集体跑图)造成的高带宽占用影响游戏稳定,这里推荐一个人预留 0.5M 带宽。

硬盘:存档大小的4倍+2GB预留空间+25GB

存储预留存档大小的 4 倍是为了应对某些特殊情况,比如存档备份(需要先拷贝出一份存档,需要预留两倍硬盘空间)、开群组服(多个存档)等。

2GB 是 BDS+LL3 服务端占用空间。

25GB 是操作系统占用的空间。

存档大小会随着时间推移逐渐增大,购买服务器时先估算存档 0.5~2 年后会有多大。如果是亲友服,只是和几个亲朋好友一起玩的话,一般一年后存档也就 1GB 左右(中度跑图),但如果是大型生存服,像新土共建这样周末常年在线 10 人以上的服务器,存档大概每年增加 10GB(限制跑图)。

网络环境

这里提出几个硬性要求:

  • 公网 IPv4 环境(独立 IP 地址或者 NAT 转发型皆可)
  • 不封 UDP 协议
  • 不封国外

以下是服务器网络环境的加分项:

  • DDoS 防护 100Gbps 以上(高防服务器),防御网络攻击
  • 国内服务器的 BGP 线路(低延迟,成本高)

一些配置示例

对于一个亲友服:高峰期平时一两个人在线,最多 6 个人左右在线,如图配置可以保证 100% 稳定运行(8252c,服务商标注跑分约600分)。

配置4h8G

对于一个中小型服务器,高峰期有 5~8 个人日活,建议选择下方服务器(CPU:i5-13600k,实际跑分约790分,主频约4.5GHz):

4h12g

对于一个较大的服务器,高峰期 10 个左右日活,且通过群组服缓解单线程压力,推荐选用下方服务器(CPU:i5-13600k):

6h16g

下方是 BDS 服务器最理想的配置(注意编辑时间:2026年7月):100GB 硬盘足以支撑一个大型服务器运行一年,18GB 内存能扛住 3 个群组服,6 核服务器应对三个群组刚刚好。CPU 型号为 AMD R9-9950X,是编辑时宇宙最强单线程性能的 CPU。

6h18g

一些服务商会用一些简写来代表服务器配置,比如 6h18g(6c18G)代表 6 个核心,16G 内存。

第二步:配置云服务器

在付款之前(后),服务商会让你填写某些配置项:

  • 硬盘容量
  • 带宽
  • 内存大小
  • 操作系统
  • IP 信息
  • 数据盘与系统盘大小
  • 主机名称
  • 主机密码(远程连接密码)
  • 租用时长
  • 防御类型
  • 网络环境
  • ...

先声明,以上是常见的配置项,有些服务商可能不会提供那么多配置项,可能只会提供上述的几条配置,有的话就按照我下面的教程填。

必须修改的配置项

  1. 操作系统:必须要选择 Windows,推荐使用 Windows Server 2022 (Windows-2022-Datacenter) 及以上的,选择 Windows Server 2022 以前的系统,比如 Windows Server 2012/2016,会导致安装服务端时出现问题如果不可选 Windows Server 2022 及以上的系统,就不要买这个服务器了
  2. 硬盘容量、内存大小、带宽、核心数量按照前面写的服务器配置讲解来按需要填写
  3. 网络环境:看到"封国外""封UDP"字样直接跑路。

可选的配置项

以下的配置项如果有就看我的讲解来填,如果服务商不提供以下配置项的修改就不用管。

  1. 主机名称:随便
  2. DDoS 防护:高防护会大幅度增加成本,如果不需要考虑服务器被网络攻击的问题就随便填(按照服务商默认防护)
  3. IP:第一种是 NAT 型,一般告诉你提供 xx 个 NAT 端口,20 个左右就已经绰绰有余了。第二种是独立 IP 型,告诉你给你提供 x 个独立 IP,一般来讲一个就够了。如果相同配置的服务器给你同时提供 NAT 和独立 IP 的选择,这里我建议选择 NAT 型,因为成本更低;独立 IP 的话,对于 BDS 而言,你购买后唯一的好处就是可以让玩家使用默认端口 19132 进入游戏,但是也仅此而已。选择独立 IP 会增加服务器租金。
  4. 主机密码/远程密码:容易记忆且复杂的密码,随机的密码可能难以记忆。
  5. 远程连接端口:默认为 3389,但是服务商也有可能给你随机一个端口。为了防止爆破(通过默认端口来破解密码黑入服务器),这里我建议使用服务商的随机端口,或者是自己改一个(端口号建议范围 10000~65535)。

完成实名认证

依照国家相关法律,购买云服务器需要先实名认证,这里按照服务商给的流程走就行了,一般使用支付宝身份验证,提交后 1 分钟内就会自动通过审核。未成年人可以正常通过审核。

连接到服务器

购买好服务器后,在服务器产品的后台找到你购买的服务器,点进控制台,查看你的服务器信息,如下图:

服务器信息截图1

服务器信息截图2

看到这里,你已经购买并自动配置了一台服务器,现在你需要连接到这台服务器了。

首先你需要有一个连接工具。

以下为连接图示:

连接图示1

连接图示2

连接图示3

连接图示4

连接图示5

连接图示6

对于 Windows 系统用户,请使用系统自带的远程桌面连接程序:

远程桌面位置1

远程桌面位置2

按照以下方法连接:

  1. 打开远程桌面连接程序

打开远程桌面

  1. 打开服务器控制台,查看连接信息。图中连接信息仅作示例

连接信息

  1. 点击连接,继续填入密码用户名

填入密码

  1. 连接成功

连接成功

第三步:安装服务端

  1. 连接到服务器
  2. 在服务器上,安装以下前置:

安装后按照指引完成配置即可。

  1. 安装 LeviLamina:

安装教程请参考相关文档。注意安装好后启动服务端,你会发现服务器无法连接,请按照下文的方法再去解决。

安装教程

注意:Linux 相关的教程可以无视。

安装过后

你是装好了服务端,但是你先别急。

装好之后,来到服务端文件夹下方,找到 server.properties,打开它。

server.properties

你会看到一个有 200 多行,像代码一样的文件内容。他是服务端的配置文件,也就是有关服务器的一些设置,用户通过修改这个配置文件的信息来更改服务器的配置。这里面有很多配置项,现在为了让你先连接上服务器,我只在这里修改一个配置项,目的是让你的客户端能够连接到服务器。

在配置文件中,找到:

server-port=19132
# Which IPv4 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]

这是服务器的连接端口。如果你是独立 IP 用户,你可以选择不修改它,让玩家直接通过默认端口连接到服务器。如果你是 NAT 用户(多个服主共用一个 IP 地址),建议自行修改一个端口,范围推荐 [10000, 40000]。编辑好后,保存(使用 VS Code 图形页面的菜单 File → Save)。

放行防火墙与安全组(NAT转发)

设置端口后就要放行防火墙与安全组(NAT转发)了,这两步是 BDS 服主必过的关。

一、Windows 本机防火墙放行 UDP 端口

BDS 跑在 Windows 上,Windows Defender 防火墙默认拦一切,所以哪怕 server.properties 写得对,外网也进不来。两条路选一个。

图形界面方法:

  1. Win + R → 输 wf.msc 回车,打开"高级安全 Windows Defender 防火墙"
  2. 左边入站规则 → 右边新建规则
  3. 规则类型选端口 → 下一步
  4. 协议 UDP,特定本地端口填你刚才在配置文件设置的端口(如 19132、23333)→ 下一步
  5. 选允许连接 → 下一步
  6. 三个网络勾全部勾上(域/专用/公用)→ 下一步
  7. 名字随便,比如 "BDS-UDP-19132" → 完成

如果你改过 server-port,端口号跟着改。

二、云服务器那边放行

云厂商这一层叫安全组/防火墙/网络转发,本质是厂商在网络侧替你挡一刀,得手动开。

通用路径:

  1. 登录云控制台 → 进你的 ECS / 云服务器实例
  2. 找到安全组/防火墙/网络管理(端口转发)
  3. 添加入方向规则:
    • 协议类型:自定义 UDP(基岩版是 UDP,选 TCP 白开)
    • 端口范围:内部端口填 19132(改过端口就填你改的那个),外网端口如果允许填就填 19132(改过端口就填你改的那个),方便区分,如果是自动分配(不让你填),就不用管他。
    • 外网自动分配端口会影响客户端连接服务器需要填写的端口,它指向一个内网端口。 比如说我放行了一个 UDP 端口(自动分配外网端口型),放行过后你去控制台看到如下信息:

端口转发示意

这时候你在配置文件中写的是 19132 端口,服务商给的外部端口是 20045,那么你在使用客户端连接服务器时就应该输入 20045 端口,连接时,你通过 20045 端口连接服务器。

  • 授权对象/源:0.0.0.0/0(允许所有 IP 连,服主一般这么干,没有这个选项就不用管。)
  • 备注随便写,比如 "BDS基岩版"
  1. 保存

在确认好你已经配置好端口转发与防火墙时,这个时候启动服务器,没有红色的报错提示就开始尝试进入游戏。进入游戏时,编辑服务器地址,地址填服务器的 IP 地址,端口填你放行的外部端口,如果正常加载世界,那么恭喜你!


服务端功能

有用的配置项

server.properties 中,还有很多配置项,这里我讲几个关键的(最好要调的)。其他配置项我劝你别乱动,防止出现一些猎奇问题。

server-name=官网npcsmc.com永不删档|和谐社区
# 服务器名称
# 任意

gamemode=survival
# 服务器默认游戏模式,重启时恢复这里配置的游戏模式
# 允许填的值: "survival", "creative", "adventure"

difficulty=easy
# 服务器默认难度,重启时恢复这里配置的难度
# 可填值: "peaceful", "easy", "normal", "hard"

allow-cheats=true
# 游戏内作弊功能可使用,比如指令
# 可填值: "true" or "false"

max-players=128
# 服务器最大玩家数
# 允许值(Allowed values): 建议在128以内

allow-list=true
# 开启白名单功能
# Allowed values: "true" or "false"

server-port=23333
# 服务器端口

view-distance=12
# 服务器视距,玩家客户端怎么调高都不会超过这个视距
# Allowed values: 大于4的整数,注意这个值太高会导致服务器卡顿(不建议超过16)

tick-distance=4
# 模拟距离
# Allowed values: 整数区间[4, 12]

max-threads=0
# Maximum number of threads the server will try to use. If set to 0 then it will use as many as possible.
# Allowed values: Any positive integer.

level-name=ikagain
# Allowed values: 存档名称,字符串(不含非法字符的文本)

level-seed=
# 种子,如果worlds目录为空或者找不到"level name"对应名称的存档文件夹,就会自动生成一个世界,使用这个种子进行生成
# Allowed values: 任意,不填的话随机生成

content-log-file-enabled=true
# 启用服务器日志,保存在服务端文件中
# Allowed values: "true" or "false"

content-log-console-output-enabled=false
# 在命令行输出日志,会刷屏,建议把默认值true调成false
# Allowed values: "true" or "false"

compression-threshold=128
# 压缩阈值,默认为0,建议调为128~256,压缩阈值过低会增加服务器性能消耗
# Allowed values: 0-65535

常见安装问题

问题1:Github无法访问

Github 等一些外国网站被墙,有时候无法访问。

解决方案:打开 Watt Toolkit,找到网络加速,勾选 Github 后打开加速然后重新访问。

Watt Toolkit

维护教程

导入自己的存档到服务端

方法介绍

注意:上面这个文档源自简幻欢,文件操作页面在他们的面板上面,在VPS服务器上面操作时,请把简幻欢的文件管理当成Windows资源管理器来看!!!

怎么把文件上传到服务器?对于 Windows 服务器而言,你直接用网盘就行了。

控制台功能介绍

这里所说控制台,就是打开服务器过后的那个命令行窗口,下图是新土共建服务器的控制台。

控制台截图

这上面会实时显示服务器运行的日志,他也包括某些功能:

  • 输入原版《我的世界》指令
  • 输入服务端专用指令

服务端专用指令

  • ll list:显示服务器已经加载的插件
12:05:09.596 INFO [Server] There are 42 mods: LeviOptimize, GMLIB-LegacyRemoteCallApi, legacy-script-engine-nodejs, ModAPI, Glacie, BedrockServerClientInterface, iListenAttentively, GMSidebar, redstone-frequency-limiter, LegacyMoney, legacy-script-engine-lua, CoralFans, PLand, FastMiner, legacy-script-engine-quickjs, LegacyRemoteCall, GMLIB, HuHoBot, Ranking, NoExplosion, QC_clean, EffectShop, PlayerLogger, PotatoTasks, TeleportMaster, AIChan, AntiXray, ShoppingMall, SignInPlugin, DMayFly, YEssential, CD, ScheduleJS, GwChat, SpawnFlow, UniteBan, PotatoSponsorship, CoordinationWsc, PTitle, BDSLM_JS, Meow, CoordinationWss
  • ll load 插件名:热加载插件(不重启服务器,直接加载新的插件)
  • ll unload 插件名:热卸载插件
  • ll reload 插件名:热重载插件

比如:

ll unload UniteBan
12:07:30.244 INFO [Server] Unload mod UniteBan successfully
ll load UniteBan
12:07:38.822 INFO [UniteBan] [UniteBan] 当前主域名:https://uniteban.megastudio.cn
12:07:38.822 INFO [UniteBan] [UniteBan] 当前备用域名:https://sp.uniteban.megastudio.cn
12:07:38.822 INFO [UniteBan] [UniteBan] 申诉地址:https://uniteban.megastudio.cn/appeal
12:07:38.822 WARN [legacy-script-engine-quickjs] 运行时命令 uniteban 已经存在,除 setOverload 外的更改将不会被应用!
12:07:38.822 INFO [UniteBan] [UniteBan] 已注册封禁指令:/uniteban < 玩家名> <原因> (别名:/ub)
12:07:38.822 WARN [legacy-script-engine-quickjs] 运行时命令 ubtoken 已经存在,除 setOverload 外的更改将不会被应用!
12:07:38.822 INFO [UniteBan] [UniteBan] 已注册设置 Token 指令:/ubtoken <token>
12:07:38.822 INFO [Server] Load mod UniteBan successfully
12:07:39.185 INFO [UniteBan] [UniteBan] 玩家 DriedTrout3645 联合封禁检查通过
12:07:39.185 INFO [UniteBan] [UniteBan] 已绑定服务器:新土共建 (#11)
12:07:39.185 INFO [UniteBan] [UniteBan] 插件已完成 API 握手,可正常 上传封禁
ll reload UniteBan
12:07:50.426 INFO [UniteBan] [UniteBan] 当前主域名:https://uniteban.megastudio.cn
12:07:50.426 INFO [UniteBan] [UniteBan] 当前备用域名:https://sp.uniteban.megastudio.cn
12:07:50.426 INFO [UniteBan] [UniteBan] 申诉地址:https://uniteban.megastudio.cn/appeal
12:07:50.426 WARN [legacy-script-engine-quickjs] 运行时命令 uniteban 已经存在,除 setOverload 外的更改将不会被应用!
12:07:50.426 INFO [UniteBan] [UniteBan] 已注册封禁指令:/uniteban < 玩家名> <原因> (别名:/ub)
12:07:50.426 WARN [legacy-script-engine-quickjs] 运行时命令 ubtoken 已经存在,除 setOverload 外的更改将不会被应用!
12:07:50.426 INFO [UniteBan] [UniteBan] 已注册设置 Token 指令:/ubtoken <token>
12:07:50.426 INFO [Server] Reload mod UniteBan successfully
12:07:50.670 INFO [UniteBan] [UniteBan] 玩家 DriedTrout3645 联合封禁检查通过
12:07:50.670 INFO [UniteBan] [UniteBan] 已绑定服务器:新土共建 (#11)
12:07:50.670 INFO [UniteBan] [UniteBan] 插件已完成 API 握手,可正常 上传封禁
  • stop:关闭服务器
  • sync stop(安装了CoordinationWss后群组服使用这个指令重启,不是服务端自带的)
  • allowlist add "玩家名"(添加白名单)(需要确保配置文件中已经将 allow-list 设置为 true)
  • allowlist remove "玩家名"(删除白名单)

插件数据处理

在服务器的插件中会产生各种各样的数据,比如领地数据、经济数据等等。

在这里,我把插件数据分为两类:

  • 配置文件
  • 插件数据

以下是一个插件完整的文件数据结构:

---ParticularPlugin
|
|--Files(文件夹,由插件定义,有些插件会有,里面放数据等)
|--ParicularPlugin.js/ParticularPlugin.dll
|备注:插件代码文件/动态链接库(近似理解为代码文件)     
|--manifest.json
|备注:储存了插件的信息,与插件入口的代码文件放在同一个目录下面
|这个文件被用于服务端定位这个插件的位置
|--Config.json(插件配置文件,也有可能存储在Config文件夹下面)
|--others.xxxx
|备注:其他文件(由插件定义)

//对于任意一个插件,它必须要有manifest.json
//和一个插件程序入口文件,一般是
//xxx.js/xxx.dll

先来讲第一种:配置文件。
它和server.properties同为配置文件,用于设置插件的信息。
下面是领地插件PLand的配置文件:

{
    "economy": {
        "economyName": "Coin",
        "enabled": true,
        "kit": "LegacyMoney",
        "scoreboardName": "Scoreboard"
    },
    "internal": {
        "devTools": false,
        "telemetry": true
    },
    "land": {
        "bought": {
            "allowDimensions": [
                0,
                1,
                2
            ],
            "dimensionPriceCoefficients": {},
            "forbiddenRanges": [],
            "squareRange": {
                "max": 1260000,
                "min": 1,
                "minHeight": 1
            },
            "threeDimensionl": {
                "calculate": "square * 14 + height * 16",
                "enabled": true
            },
            "twoDimensionl": {
                "calculate": "square * 8",
                "enabled": true
            }
        },
        "discountRate": 1.0,
        "drawHandleBackend": "DefaultParticle",
        "drawRange": 64,
        "landTp": true,
        "maxLand": 200,
        "minSpacing": 0,
        "minSpacingIncludeY": true,
        "refundRate": 0.1,
        "setupDrawCommand": false,
        "subLand": {
            "calculate": "(square * 8 + height * 20) * 0",
            "enabled": true,
            "maxNested": 5,
            "maxSubLand": 6,
            "minSpacing": 8,
            "minSpacingIncludeY": 1
        },
        "tip": {
            "bottomContinuedTip": true,
            "bottomTipFrequency": 1,
            "enterTip": true
        }
    },
    "logLevel": "Info",
    "selector": {
        "alias": "木棍",
        "tool": "minecraft:stick"
    },
    "version": 31
}

在这个配置文件当中,储存了一些PLand插件的设置信息。至于他储存的是什么配置信息?你看它名字就知道了。

比如说"discountRate": 1.0中,我们都知道discount是打折的意思,所以这个配置项代表的是领地价格打折的倍率。

如何调整配置插件呢?我举个例子:
比如说我想要把discountRate改成0.8(打八折),我只需要把1.0改为0.8,修改后就是:

"discountRate": 0.8,

对于插件的配置文件介绍,一般插件作者都会在插件的发布页做介绍,比如PLand的配置文件,没有看文档的时候还是不建议乱动

插件文档要认真看口牙

基本数据类型介绍(了解即可)
//修改插件的时候,你可能会看到作者写出"字符串""整型"等你看不懂的词汇,这边我简单介绍下。
//同时我会说明配置文件遇到这些怎么修改
//请忽略文中的c++语法

//整型(Integer)就是一个整数
int a{114514};

//字符串(string)就是一行字,它需要被""英文双引号括起来
string b{"请输入文本aaa114514```***}}}{{{}}}"};

//浮点(float)双整形(double),就是小数
double c{3.1415926};
float d{3.1415};
//布尔型(boolean)就是"真"或"假",配置文件很常见
bool fuwuqiyongtudoukaifu = false //假
bool zanzhufuwuqiderenyouhaoyun = true //真
//这是AIChan插件的配置文件
//以json为后缀的配置文件
//不允许存在"//(注释)"(这里做示例就不用管他)
{
    "version": 2,//配置文件版本,遇到它最好别乱动
    "PotatoEnabled": true,//意思是"允许在进入服务器的时候给玩家毒土豆"
   //把他设置为"false",代表不允许玩家进入服务器的时候给他毒土豆

   //如果把这些改为false会发生什么
    "CompassEnabled": true,//进服给与指南针
    "HelpEnabled": true,   //新手教程开关
    "join_notice": true,   //进服查看新手教程提醒
    "Debug": false         //调试模式(勿动)
}
//这是PLand的配置文件片段
//插件文档:https://iceblcokmc.github.io/PLand/#/md/Config
"land": {
        "bought": {//购买
            "allowDimensions": [
                0,
                1,
                2
            ],
            "dimensionPriceCoefficients": {},
            "forbiddenRanges": [],
            "squareRange": {
                "max": 1260000,//领地面积最大值,超过它的领地无法被创建
                //改为"max": 114514时,代表最大面积为114514
                "min": 1,
                "minHeight": 1
            },
            "threeDimensionl": {
                "calculate": "square * 14 + height * 16",//这是什么?把他修改了有什么意义?
                "enabled": true//这是什么?
            },
            "twoDimensionl": {
                "calculate": "square * 8",
                "enabled": true
            }
        },
}

然后来讲第二种:
数据文件

数据文件一般以.db(database,数据库)或者.json(和配置文件一样)结尾,储存着玩家的数据,不要乱动。

其他的懒得讲了,除非插件的文档说明,否则不要动

习惯养成/警告!!!

  1. 修改任何文件不要使用记事本,用vscode打开
  2. 修改完文件一定要保存,否则修改不会被应用
  3. 关闭服务器请使用stop(新土共建服务器采用sync stop)关闭服务器命令行窗口,千万不要直接叉掉窗口,否则会导致存档损坏
  4. 修改任何数据文件(对服务端/存档进行高风险操作)时务必先备份
    备份方法:压缩整个数据文件夹。
  5. 提问的时候请提供完整的问题描述(把你看到的现象,复现方式,报错日志、截图视频等等,能有多详细就有多详细地告诉帮你解决问题的人)
  6. 插件文档多看看
  7. 不要把服务器远程连接信息告诉别人!!!!

最后的补充

对于服务器插件,你可以自行注册一个minebbs.com账号,很多插件都可以在这上面下载

下载插件时注意下载有LSE ll3 ll2标签的插件,有些插件ll3不兼容。

作业

连接到服务器,安装好服务端,进入服务器并录屏;
正常进入过后,关闭服务器,分别安装如下插件:

  • PLand
  • EffectShop (作者为iktf0713)
  • LKroBot
  • ScheduleJS
  • CoordinationWss
  • 更好的崩服自动重启(Bear制作,并非插件)

安装过后,前往配置文件,实现以下效果:

  1. 正常创建领地,关闭3d领地创建功能。
  2. 正常购买药水效果,经济系统中货币的显示名称修改为"大土豆洋"
  3. 设置群组服务器,一个"主服",一个"生电服"
  4. 实现每20秒执行一次give @a egg
  5. 通过sync stop关闭群组服,但是因为安装了更好的崩服自动重启,所以控制台执行sync stop过后服务器又自动重启了

如果你有不懂的地方,请私信iktf0713
完成过后私信私信服主你的成果发视频