如何搭建 Minecraft Java 版服务器
架设一个属于你自己的 Minecraft: Java Edition 世界,朋友随时都能进来玩。服务端程序由 Mojang 免费提供,可以在 Windows、Linux 和 macOS 上运行。
准备工作
一台在大家玩的时候一直开着的电脑、Java 25,以及从 minecraft.net 下载的 server.jar(62 MB)。服务器本身不需要购买游戏;每个玩家都需要 Minecraft: Java Edition,而且版本必须和服务器完全一致。
内存:Mojang 官方的启动命令给服务器分配 4 GB(-Xmx4G)。我们的测试服务器跑一个新世界、没人在线时用 2 GB 就够了;玩家越多、view-distance 越大、模组越多,占用就越高。
玩家通过 TCP 端口 25565 连接。如果有不在你家里的朋友要加入,就要在路由器上转发这个端口(见下文“端口和防火墙”)。
测试环境:服务端版本 26.3,Java 25,2026 年 10 月 31 日。
安装服务器
1. 安装 Java 25。Mojang 随游戏附带的是 Microsoft Build of OpenJDK,同一个版本也能用来跑服务器。选择 25 版本的 Windows x64 .msi。
2. 给服务器建一个文件夹,比如 C:\minecraft-server,然后从官方下载页面把 server.jar 保存到里面。
3. 打开 PowerShell 或命令提示符,启动服务器:
cd C:\minecraft-server
java -Xms4G -Xmx4G -jar server.jar nogui4. 第一次启动几秒后就会结束,并生成 eula.txt。打开它,把 eula=false 改成 eula=true 来同意 Mojang 的 EULA,保存后再运行一次那行 java 命令。
在 Ubuntu 24.04 上,Java 25 就在默认的软件源里。服务器不需要图形桌面:
sudo apt update
sudo apt install openjdk-25-jre-headless
mkdir ~/minecraft-server && cd ~/minecraft-server
# put server.jar from minecraft.net in this folder, then:
java -Xms4G -Xmx4G -jar server.jar nogui和 Windows 一样,第一次启动后在 eula.txt 里同意 EULA,然后再次启动。想在退出登录后让服务器继续运行,就在 screen 或 tmux 里启动它。
Mojang 没有发布自己的镜像,不过官方的 Eclipse Temurin Java 镜像可以直接运行宿主机某个文件夹里的原版 server.jar:
mkdir ~/minecraft-server && cd ~/minecraft-server
# put server.jar from minecraft.net in this folder, then:
docker run -d -it --name minecraft -p 25565:25565 \
-v ~/minecraft-server:/server -w /server \
eclipse-temurin:25-jre java -Xms4G -Xmx4G -jar server.jar nogui第一次启动后,那个文件夹里会出现 eula.txt:设成 eula=true,然后运行 docker start minecraft。docker attach minecraft 可以打开服务器控制台,先按 Ctrl+P 再按 Ctrl+Q 就能退出控制台而不停止服务器。
首次启动和文件
当控制台输出类似 Done (8.703s)! For help, type "help" 这样一行时,世界就准备好了,玩家可以加入。在我们的测试电脑上,从输入 java 命令到出现这条消息大约要半分钟,新世界和重启都一样。
| 文件或文件夹 | 内容 |
|---|---|
server.properties | 所有服务器设置(见下一节)。 |
eula.txt | 同意 Mojang 的 EULA 后为 eula=true。没有它服务器无法运行。 |
world | 世界本身。名字来自 level-name。 |
whitelist.json | 允许加入的玩家。 |
ops.json | 管理员(OP):可以使用管理命令的玩家。 |
banned-players.json, banned-ips.json | 封禁名单。 |
logs | 每次启动一个日志文件;latest.log 是当前的。 |
libraries, versions | 首次启动时由 server.jar 解压出来。不要动它们。 |
服务器设置
先停止服务器,用文本编辑器修改 server.properties,再重新启动:这个文件只在启动时读取。每行的格式是 key=value。示例如下:
motd=YOUR-SERVER-NAME
max-players=10
difficulty=normal
white-list=true
view-distance=10| 设置项 | 默认值 | 作用 |
|---|---|---|
motd | A Minecraft Server | 多人游戏列表里服务器名字下面显示的文字。 |
max-players | 20 | 同时在线的最大玩家数。 |
white-list | true | 只有白名单上的玩家能进。从 26.3 起默认开启。 |
enforce-whitelist | false | 设为 true 时,被移出名单的玩家会立刻被踢出。 |
online-mode | true | 验证每个玩家的 Microsoft 账户。保持开启。 |
gamemode | survival | 新玩家的模式:survival、creative、adventure 或 spectator。 |
difficulty | easy | peaceful、easy、normal 或 hard。 |
hardcore | false | 每个玩家只有一条命。 |
level-name | world | 世界的文件夹。换个新名字就会生成新世界。 |
level-seed | (空) | 新世界的种子。留空则随机生成。 |
view-distance | 10 | 玩家能看多远,单位是区块。会占用内存和 CPU。 |
simulation-distance | 10 | 玩家周围多远范围内作物会生长、生物会移动,单位是区块。 |
spawn-protection | 16 | 出生点周围只有管理员能改动的方块范围。设为 0 关闭。 |
pause-when-empty-seconds | 60 | 没人在线持续这么久之后,世界停止运行(tick)。 |
server-port | 25565 | 玩家连接的端口。 |
enable-rcon | false | TCP 25575 上的远程控制台。需要设置 rcon.password。 |
PvP、生物生成和命令方块已经不在这个文件里了:从 1.21.9 起它们是游戏规则,要在控制台用 /gamerule 修改,例如 gamerule pvp false。
白名单和管理命令
从 26.3 起,白名单默认开启而且是空的:服务器会拒绝所有人,包括你自己,直到你添加名字。在服务器控制台里输入这些命令时不加斜杠;成为管理员后在游戏聊天里输入时要加斜杠:
whitelist add YOUR-PLAYER-NAME
op YOUR-PLAYER-NAME| 命令 | 作用 |
|---|---|
whitelist add <player> | 允许某个玩家加入。 |
whitelist remove <player> | 把玩家移出名单。 |
whitelist list | 显示名单上有谁。 |
whitelist off | 对所有人开放服务器(on 会重新关闭)。 |
op <player> | 让玩家成为拥有全部管理命令的管理员。 |
deop <player> | 取消管理员权限。 |
kick <player> <reason> | 把玩家踢出一次。 |
ban <player> <reason> | 封禁玩家;pardon <player> 解除封禁。 |
list | 显示在线玩家。 |
save-all | 立即把世界写入硬盘。 |
stop | 保存所有内容并关闭服务器。 |
用 stop 关闭服务器:它会在关闭前保存玩家数据和全部三个维度。
端口和防火墙
游戏只用一个端口:TCP 25565,或者 server-port 里设置的端口。Query(UDP)和 RCON(TCP 25575)只有在你开启后才会打开。
在 Windows 上,以管理员身份打开 PowerShell,放行一次这个端口:
New-NetFirewallRule -DisplayName "Minecraft Java server" -Direction Inbound -Protocol TCP -LocalPort 25565 -Action Allow在 Ubuntu 上用 ufw:sudo ufw allow 25565/tcp。如果有不在你家里的朋友要加入,就在路由器上把 TCP 25565 转发到服务器电脑的局域网 IP 地址。
加入服务器
在 Minecraft 里打开“多人游戏”,然后点“添加服务器”。名字随便填,输入地址后保存,服务器就会一直留在你的列表里。“直接连接”只连一次,不会保存。
| 玩家所在位置 | 要输入的地址 |
|---|---|
| 就在服务器电脑上 | localhost |
| 在同一个家庭网络里 | 服务器电脑的局域网 IP 地址 |
| 其他任何地方 | YOUR-SERVER-IP(你的公网 IP 地址) |
只有服务器不用 25565 时,才需要在地址后面加上 :端口,例如 YOUR-SERVER-IP:25570。
存档、备份和更新
整个世界就是 server.jar 旁边的 world 文件夹。从 26.1 起,主世界、下界和末地都放在 dimensions/minecraft 下,玩家数据放在 players 下。提到 DIM-1 和 DIM1 的教程讲的是旧的结构。
最简单的备份方法:执行 stop,然后把 world 文件夹连同 server.properties、whitelist.json 和 ops.json 一起复制。如果要在玩家在线时复制,先暂停保存:
save-off
save-all flush
(copy the world folder now)
save-on更新时,先停止服务器并备份,然后把 server.jar 换成 minecraft.net 上的最新版本。下次启动时世界会自动升级。玩家需要和服务器完全相同的版本,而新的大版本可能需要更新的 Java:26.1 及以后需要 Java 25。
插件、模组和数据包
Mojang 的 server.jar 运行的是原版游戏。数据包可以直接用:放进 world/datapacks 就行。
插件(Paper、Spigot)和模组(Fabric、NeoForge)需要用这些项目提供的另一个服务端程序。Mojang 不制作也不支持它们,而且它们往往在 Minecraft 新版本发布几天后才跟上。
常见问题
服务器一启动就关闭
在控制台里找 You need to agree to the EULA。在 eula.txt 里设置 eula=true,然后再启动。
朋友收到“你不在此服务器的白名单中!”的提示
从 26.3 起,新服务器默认开启白名单。在控制台用 whitelist add <name> 逐个添加朋友,或者在 server.properties 里设置 white-list=false 后重启。
启动时出现 UnsupportedClassVersionError
电脑上的 Java 版本太旧。Minecraft 26.1 及更新版本需要 Java 25:安装后用 java -version 检查。
游戏提示服务器的版本不同
玩家必须使用和服务器完全相同的版本。更新服务器,或者让玩家在启动器的 Installations 里选择服务器的版本。
不在我家里的朋友连不上
检查 TCP 25565 是否转发到了正确的局域网 IP、防火墙规则是否存在,以及他们用的是不是你的公网 IP 地址。有些网络运营商不给家庭用户分配公网 IPv4 地址(CGNAT),这种情况下端口转发没用。
服务器卡顿或内存不足
如果电脑内存够,就调高启动命令里的 -Xmx,并在 server.properties 里调低 view-distance 和 simulation-distance。
问答
Minecraft Java 版服务器免费吗?
是的。server.jar 可以在 minecraft.net 免费下载。只有玩家需要购买 Minecraft: Java Edition。
Minecraft Java 版服务器要转发哪个端口?
TCP 25565。在路由器上转发它,并在服务器电脑的防火墙里放行。
Minecraft 服务器需要多少内存?
Mojang 的启动命令给它分配 4 GB。我们的测试世界在没人在线时用 2 GB 就能运行;玩家多或视距大的话要多给一些。
为什么朋友进不了我新开的 Minecraft 服务器?
从 26.3 版本起,新服务器启动时白名单是开启的。在控制台用 whitelist add <name> 添加他们。
怎么让自己成为 Minecraft 服务器的管理员(OP)?
在服务器控制台输入 op 加上你的玩家名。
Minecraft 服务器需要哪个 Java 版本?
Minecraft 26.1 及更新版本需要 Java 25。1.20.5 到 1.21.11 版本用 Java 21。
基岩版玩家能加入 Java 版服务器吗?
Mojang 的原版服务端不行:它只接受 Java Edition。基岩版有自己的服务器。
Wikily Servers 提供 Minecraft 服务器托管
每月 €4.99 起