使用NeoForge搭建Minecraft服务器

2025-12-28

[!INFO]

文章最后修改时间为2025年12月28日,请注意部分内容可能已改变。如有问题可在评论区提出哦~~~

自NeoForge从Forge分叉后,已成为许多模组在新版本中的主要支持平台。如果你想搭建一个兼容最新模组的Minecraft服务器,本文章将带你一步步完成NeoForge服务器的部署与配置。

服务端环境搭建

NeoForge通常要求Java版本在Java 17或更高版本,这里使用Java 21来作为示范。

Linux服务端

这里使用Ubuntu系统来演示

使用下面的代码来安装Java 21

sudo apt update
sudo apt install openjdk-21-jdk -y

等待安装完成后,运行

java -version

显示以下信息说明安装成功了

openjdk version "21.0.9" 2025-10-21
OpenJDK Runtime Environment (build 21.0.9+10-Ubuntu-124.04)
OpenJDK 64-Bit Server VM (build 21.0.9+10-Ubuntu-124.04, mixed mode, sharing)

Windows服务端

这里使用Windows 11来演示

进入到这个网址Java Downloads | Oracle 中国

windows_java21

下载完安装软件后使用win+R打开powershell

powershell

在powershell窗口中输入

java -version

若出现

java version "21.0.9" 2025-10-21 LTS
Java(TM) SE Runtime Environment (build 21.0.9+7-LTS-338)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.9+7-LTS-338, mixed mode, sharing)

则说明安装成功

NeoForge服务端搭建

Linux服务端

首先打开The NeoForged project,选择你所需要的Minecraft版本对应的安装程序文件,并复制下载链接

neoforge_install_linux

在服务器中运行以下代码,其中后面的链接换为自己的链接。这里使用的是1.21.1,neoforge版本为21.1.217

mkdir neoforge_minecraft
cd neoforge_minecraft
curl -L -O https://maven.neoforged.net/releases/net/neoforged/neoforge/21.1.217/neoforge-21.1.217-installer.jar

下载可能会由于网络问题出现

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (35) Recv failure: Connection reset by peer

这里可以多试几次或者在自己的电脑上下载后传到服务器上

下载之后运行

ls

会出现安装程序文件的名字

root@aericiaff:~/neoforge_minecraft# ls
neoforge-21.1.217-installer.jar

这个.jar结尾的文件就是下面需要更换的名字

以下的两行代码当第一行下载失败的可以选择第二行,将neoforge-21.1.217-installer.jar换成你的.jar结尾文件的名字

java -jar neoforge-21.1.217-installer.jar --installServer
java -jar neoforge-21.1.217-installer.jar --installServer -mirror "https://neoforged.forgecdn.net/release"

安装成功会显示

The server installed successfully
You can delete this installer file now if you wish

接下来运行ls

root@aericiaff:~/neoforge_minecraft# ls
libraries  neoforge-21.1.217-installer.jar  neoforge-21.1.217-installer.jar.log  run.bat  run.sh  user_jvm_args.txt

使用vim编辑user_jvm_args.txt

vim user_jvm_args.txt

点击i键进行编辑

# Xmx and Xms set the maximum and minimum RAM usage, respectively.
# They can take any number, followed by an M or a G.
# M means Megabyte, G means Gigabyte.
# For example, to set the maximum to 3GB: -Xmx3G
# To set the minimum to 2.5GB: -Xms2500M

# A good default for a modded server is 4GB.
# Uncomment the next line to set it.
-Xms2G -Xmx4G

这里的-Xms2G意思是最小运行内存为2G,-Xmx4G是最大运行内存为4G。根据自己所需要的大小添加

编辑之后点击esc,之后输入:wq回车就编辑完成了

完成以上步骤后,运行

./run.sh -nogui

运行之后会出现

[15:32:58] [main/WARN] [minecraft/Eula]: Failed to load eula.txt
[15:32:58] [main/INFO] [minecraft/Main]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

这里需要编辑eula.txt文件

vim eula.txt

将false改为true

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Sun Dec 28 15:32:58 UTC 2025
eula=true

修改步骤与保存退出步骤与上面一致

在再次运行run.sh之前把你需要的mod放在neoforge_minecraft文件夹下的mods文件夹中

之后再次运行

./run.sh -nogui

当出现以下这句话时

[15:39:35] [Server thread/INFO] [ne.ne.ne.se.pe.PermissionAPI/]: Successfully initialized permission handler neoforge:default_handler

就说明服务器已经搭建好了,默认开放端口为25565,有防火墙的需要放行这个端口

Windows服务端

打开The NeoForged project,选择你所需要的Minecraft版本对应的安装程序文件下载

neoforge_install_windows

下载完成之后,创建一个文件夹,将下载的文件放入这个文件夹中

双击运行这个文件

neoforge_installer_windows

如果出现下载失败的话就多试几次

下载成功后会出出现

complete

接下来点击刚刚创建的文件夹中的user_jvm_args.txt文件,将内容改为

# Xmx and Xms set the maximum and minimum RAM usage, respectively.
# They can take any number, followed by an M or a G.
# M means Megabyte, G means Gigabyte.
# For example, to set the maximum to 3GB: -Xmx3G
# To set the minimum to 2.5GB: -Xms2500M

# A good default for a modded server is 4GB.
# Uncomment the next line to set it.
-Xms2G -Xmx4G

这里的-Xms2G意思是最小运行内存为2G,-Xmx4G是最大运行内存为4G。根据自己所需要的大小添加

保存之后在文件夹中找到run.bat,双击运行之后会出现

[23:54:47] [main/WARN] [minecraft/Eula]: Failed to load eula.txt
[23:54:47] [main/INFO] [minecraft/Main]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

这里需要更改eula.txt文件的内容,将false改为true

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Sun Dec 28 23:54:47 CST 2025
eula=true

在再次运行run.bat之前把你需要的mod放在neoforge_minecraft文件夹下的mods文件夹中

之后运行run.bat

当出现以下这句话时

[23:57:09] [Server thread/INFO] [ne.ne.ne.se.pe.PermissionAPI/]: Successfully initialized permission handler neoforge:default_handler

就说明服务器已经搭建好了,默认开放端口为25565,有防火墙的需要放行这个端口

server.properties文件

server.properties文件可以修改服务器的端口以及是否开启正版验证

server-port=25565 #这里的25565指的是服务器开放端口
online-mode=true #如果要关闭正版验证需要将这里的true改为false

其他的功能可以慢慢探索~~~

# 是否接受玩家从其他服务器转移(BungeeCord相关功能)
accepts-transfers=false
# 是否允许非创造模式玩家飞行(使用Mod或插件飞行)
allow-flight=false
# 是否允许进入下界维度
allow-nether=true
# 是否将控制台消息广播给在线OP玩家
broadcast-console-to-ops=true
# 是否将RCON消息广播给在线OP玩家
broadcast-rcon-to-ops=true
# Mojang漏洞报告链接(通常留空)
bug-report-link=
# 游戏难度:peaceful(和平), easy(简单), normal(普通), hard(困难)
difficulty=easy
# 是否启用命令方块
enable-command-block=false
# 是否启用JMX性能监控(需要特殊配置)
enable-jmx-monitoring=false
# 是否启用GameSpy4查询协议(用于服务器状态查询)
enable-query=false
# 是否启用RCON远程控制协议
enable-rcon=false
# 是否在服务器列表中显示在线状态
enable-status=true
# 是否强制要求玩家拥有Mojang签名的安全档案
enforce-secure-profile=true
# 是否强制检查白名单(为true时即使有白名单文件也会失效)
enforce-whitelist=false
# 实体广播范围百分比(100=默认值,减小可降低网络负载)
entity-broadcast-range-percentage=100
# 是否强制玩家使用默认游戏模式(覆盖玩家原有模式)
force-gamemode=false
# 函数/数据包的权限等级(1-4)
function-permission-level=2
# 默认游戏模式:survival(生存), creative(创造), adventure(冒险), spectator(观察者)
gamemode=survival
# 是否生成世界结构(村庄、神庙等)
generate-structures=true
# 自定义世界生成器设置(JSON格式,通常留空)
generator-settings={}
# 是否为极限模式(死亡后无法重生,并自动封禁)
hardcore=false
# 是否在服务器列表中隐藏在线玩家数量
hide-online-players=false
# 初始禁用的数据包列表
initial-disabled-packs=
# 初始启用的数据包列表
initial-enabled-packs=vanilla
# 世界存档文件夹名称
level-name=world
# 世界种子(留空为随机生成)
level-seed=
# 世界类型:minecraft:normal(标准), minecraft:flat(超平坦), minecraft:large_biomes(巨型生物群系), minecraft:amplified(放大化)
level-type=minecraft\:normal
# 是否在日志中记录玩家IP地址
log-ips=true
# 最大连锁邻居更新次数(防止水/红石等连锁更新导致的卡顿)
max-chained-neighbor-updates=1000000
# 服务器最大同时在线玩家数
max-players=20
# 服务器单次tick最大允许时间(毫秒),超过则判定为卡死
max-tick-time=60000
# 世界的最大半径(以方块计),从世界中心开始计算
max-world-size=29999984
# 服务器描述信息,玩家在服务器列表中看到的标题
motd=A Minecraft Server
# 网络数据压缩阈值(字节),小于此值的包不压缩
network-compression-threshold=256
# 是否启用正版验证(true=必须拥有正版账号才能进入)
online-mode=true
# OP(管理员)的权限等级(1-4,4为最高权限)
op-permission-level=4
# 玩家闲置自动踢出时间(秒),0为禁用
player-idle-timeout=0
# 是否阻止通过代理(VPN/代理服务器)的连接
prevent-proxy-connections=false
# 是否允许玩家之间互相攻击
pvp=true
# 查询协议端口号
query.port=25565
# 连接速率限制(每玩家每分钟最大数据包数),0为禁用
rate-limit=0
# RCON远程控制的密码(留空为禁用)
rcon.password=
# RCON远程控制的端口号
rcon.port=25575
# 区域文件压缩格式:deflate(默认), gzip, none
region-file-compression=deflate
# 是否强制玩家使用服务器资源包
require-resource-pack=false
# 服务器资源包的下载URL(留空为无资源包)
resource-pack=
# 资源包的唯一标识符
resource-pack-id=
# 资源包提示信息(当require-resource-pack为true时显示)
resource-pack-prompt=
# 资源包的SHA-1校验和(用于验证资源包完整性)
resource-pack-sha1=
# 服务器绑定的IP地址(留空为绑定所有可用IP)
server-ip=
# 服务器监听端口(默认25565)
server-port=25565
# 服务器模拟实体和方块更新的区块距离(影响服务器性能)
simulation-distance=10
# 是否生成被动动物(牛、羊、猪等)
spawn-animals=true
# 是否生成敌对怪物
spawn-monsters=true
# 是否生成村民等NPC
spawn-npcs=true
# 出生点保护半径(方块数),防止非OP玩家破坏
spawn-protection=16
# 是否同步写入区块数据(更安全但可能轻微影响性能)
sync-chunk-writes=true
# 聊天文本过滤配置文件路径
text-filtering-config=
# 是否使用操作系统原生的网络传输优化(Linux性能优化)
use-native-transport=true
# 客户端可见的区块渲染距离
view-distance=10
# 是否启用白名单(需要配合whitelist.txt文件使用)
white-list=false

修改完server.properties保存后需要重启minecraft服务器之后生效