server.properties
修改服务器的运行配置,以此来定制一些基本功能。
这些是定义在 server.properties 中的标准 Minecraft 服务器设置。如需 Nukkit-MOT 高级设置,请参阅 nukkit-mot.yml。
motd
| 数据类型 | 默认值 |
|---|---|
| String | Minecraft Server |
服务器名称/显示在服务器列表上的文本
不能为空
sub-motd
| 数据类型 | 默认值 |
|---|---|
| String | Powered by Nukkit-MOT |
motd 的第二行
只有当在游戏中的好友列表中查看服务器时,才会显示给本地网络中的玩家
自 1.16.210 以来不能为空
server-port
| 数据类型 | 默认值 |
|---|---|
| Integer | 19132 |
服务器的端口
同一端口不能运行多个服务器
如果不能访问请检查防火墙
基岩版使用 UDP 协议
启用 NetherNet 时,同一端口还会通过 TCP 提供 WebRTC 信令,因此也需要放行该端口的 TCP
server-ip
| 数据类型 | 默认值 |
|---|---|
| String | 0.0.0.0 |
服务器的 IP 地址
同一端口不能运行多个服务器
如果不能访问请检查防火墙
基岩版使用 UDP 协议
该地址同时绑定 RakNet UDP 监听器和 NetherNet TCP 信令
server-udp-ports
| 数据类型 | 默认值 |
|---|---|
| Integer / String | 19132 |
NetherNet(WebRTC)媒体使用的 UDP 端口,语法与 Bedrock 官方服务端一致:
| 取值 | 说明 |
|---|---|
19132 | 媒体与 RakNet 共用 server-port 的 UDP 侧,由 RakNet socket 进程内中继(默认——无需额外放行端口) |
0 | 每个连接的媒体端口由系统自动分配 |
N | 钉住独立的媒体端口,如 19134(ICE 复用,单端口服务所有连接) |
A-B | 钉住一段媒体端口窗口 |
[ip:]external[-external]:internal[-internal] | 同时发布外部端口映射(例如在 NAT 后)。冒号两侧的范围长度必须一致 |
条目可带 IP 前缀(IPv6 需加方括号,如 [2001:db8::1]:...),多个逗号分隔的条目会累积发布的 IP,但端口窗口与偏移必须一致
共用端口的条件:钉住的单个端口恰好是 server-port 或 IPv6 监听器端口,或者以单端口映射映射到它们——19132:50000 表示在 19132 上发布媒体、从内部端口 50000 中继。此时媒体流量到达 RakNet socket,由进程内中继转发到回环端口。
端口窗口不得覆盖 server-port(其 UDP 侧属于 RakNet)或 IPv6 监听器端口——只有单个钉住端口或单端口映射可以与它们共用。非法取值会中止启动,而不是回退到自动分配端口。
媒体 UDP 不通——玩家卡在连接
当 NetherNet 玩家卡在"连接中"或加入后立刻掉线时,通常是媒体 UDP 路径被阻断。服务器会自行报告——日志中出现告警:
NetherNet media may be unreachable: 6 ICE attempts, 0 connected in the last 5 minutes.
Check the firewall/port forwarding for the media UDP window udp/... (server-udp-ports)
同时 /status 里"接受的加入"在增长而 ICE 连通数恒为 0。
按以下方法解决:
- 放行媒体 UDP 端口的入站——主机防火墙、云安全组、路由器端口转发都要放行。默认配置下媒体与 RakNet 共用
server-port的 UDP 侧(19132),RakNet 本就要求放行,无需额外操作;钉住独立端口(如server-udp-ports=19134)时则必须显式放行/转发该端口;只有设为0时端口才由系统分配、不可预知——先钉住窗口(如server-udp-ports=50000-50010)再转发 - 公网端口与内部端口不一致(NAT 映射)?改为发布外部一侧:
server-udp-ports=60000-60010:50000-50010 - 对称 NAT 后的玩家仍然连不上?在
network-settings.nethernet.ice-servers中配置 TURN 中继转发媒体:
network-settings:
nethernet:
ice-servers:
- stun:stun.l.google.com:19302
- 'turn:user:pass@turn.example.com:3478?transport=udp'
- 接受的加入在增长而 ICE 连通数恒为 0 —— 媒体 UDP 被阻断;按上面的步骤处理
- ICE 连通数在增长但完成的握手很少 —— DTLS 握手失败,通常是中间设备干扰 UDP
- 连接后掉线很多 —— NAT 超时或链路抖动
server-ipv6-port
| 数据类型 | 默认值 |
|---|---|
| Integer | -1 |
可选 IPv6 监听器的端口
当此值为 0 或更低时(默认 -1),IPv6 监听器处于禁用状态
要启用它,请设置一个与 server-port 不同的有效端口
server-ipv6
| 数据类型 | 默认值 |
|---|---|
| String | :: |
可选 IPv6 监听器绑定的 IPv6 地址
必须是有效的 IPv6 地址;留空则禁用 IPv6 监听器
view-distance
| 数据类型 | 默认值 |
|---|---|
| Integer | 8 |
最大视距(以区块为单位)
更大的值 = 加载更多区块 = 更多的内存和 CPU 使用
max-players
| 数据类型 | 默认值 |
|---|---|
| Integer | 50 |
服务器允许的最大玩家人数
language
| 数据类型 | 默认值 |
|---|---|
| String | eng |
Nukkit 使用的默认语言
force-language
| 数据类型 | 默认值 |
|---|---|
| Boolean | off |
强制使用服务器端翻译
只有在您有插件来实现这些翻译时才启用
shutdown-message
| 数据类型 | 默认值 |
|---|---|
| String | §cServer closed |
当您停止服务器时向玩家显示的消息
可以使用颜色符号§,换行请使用 §n。
gamemode
| 数据类型 | 默认值 |
|---|---|
| Integer | 0 |
服务器的默认游戏模式
0 = 生存, 1 = 创造, 2 = 冒险, 3 = 旁观
force-gamemode
| 数据类型 | 默认值 |
|---|---|
| Boolean | on |
每次加入时将玩家游戏模式设置为默认游戏模式
difficulty
| 数据类型 | 默认值 |
|---|---|
| Integer | 2 |
服务器的默认难度(0-3)
hardcore
| 数据类型 | 默认值 |
|---|---|
| Boolean | off |
玩家死亡后将其封禁
pvp
| 数据类型 | 默认值 |
|---|---|
| Boolean | on |
是否启用玩家对战
level-name
| 数据类型 | 默认值 |
|---|---|
| String | world |
默认世界的名称
level-seed
| 数据类型 | 默认值 |
|---|---|
| String |
默认世界的种子
level-type
| 数据类型 | 默认值 |
|---|---|
| String | default |
如果默认世界不存在,则使用的生成器
默认支持:default, normal, flat, nether, the_end 或 void
generator-settings
| 数据类型 | 默认值 |
|---|---|
| String |
默认级别的特殊世界生成器设置
spawn-protection
| 数据类型 | 默认值 |
|---|---|
| Integer | 10 |
非管理员(OP)玩家无法在区块内建造或破坏方块的生成保护区域大小(以方块为单位)
white-list
| 数据类型 | 默认值 |
|---|---|
| Boolean | off |
仅允许白名单中的玩家加入服务器
使用/whitelist命令或修改 white-list.txt 来添加玩家到白名单
whitelist-reason
| 数据类型 | 默认值 |
|---|---|
| String | §cServer is white-listed |
启用白名单的原因,显示给被阻挡在外的玩家
xbox-auth
| 数据类型 | 默认值 |
|---|---|
| Boolean | on |
需要经过 Xbox 帐户验证后才能加入
不会绕过客户端的限制条件。
如果您选择禁用此功能(不推荐这样做),请安装登陆插件以确保玩家的账号安全。
keep-existing-session-on-duplicate-login
| 数据类型 | 默认值 |
|---|---|
| Boolean | off |
发生重复登录时,保留已经在游戏中的会话
默认情况下,使用相同名称或身份的新登录会把已在线的玩家踢下线;开启后将改为拒绝新连接,避免正在游戏的玩家(身上还带着物品)被冒用昵称的人顶掉
已经断线的残留会话仍会自行超时下线
encryption
| 数据类型 | 默认值 |
|---|---|
| Boolean | on |
启用网络加密(针对 RakNet 会话)
如果不使用代理软件,则建议启用此功能
NetherNet 会话始终由 DTLS 加密,不受此选项影响
force-resources
| 数据类型 | 默认值 |
|---|---|
| Boolean | off |
强制玩家下载服务器的资源包后才能加入
force-resources-allow-client-packs
| 数据类型 | 默认值 |
|---|---|
| Boolean | off |
在启用 force-resources 时不要禁用客户端自己的资源包
spawn-animals
| 数据类型 | 默认值 |
|---|---|
| Boolean | on |
启用动物生成
spawn-mobs
| 数据类型 | 默认值 |
|---|---|
| Boolean | on |
启用怪物生成
allow-flight
| 数据类型 | 默认值 |
|---|---|
| Boolean | off |
启用/禁用允许玩家飞行
如果服务器经常提示玩家因飞行被踢出,可以尝试将此项设置为 on
auto-save
| 数据类型 | 默认值 |
|---|---|
| Boolean | on |
自动保存世界、玩家数据
如果禁用,则对世界的更改不会自动保存,即使在卸载时也是如此,如果需要可以使用插件手动保存
enable-rcon
| 数据类型 | 默认值 |
|---|---|
| Boolean | off |
启用远程控制台访问
RCON 不是一个非常安全的远程控制服务器的方式
RCON 可以使用与服务器相同的端口(TCP 协议)
详见:https://developer.valvesoftware.com/wiki/Source_RCON_Protocol
rcon.password
| 数据类型 | 默认值 |
|---|---|
| String | 随机10位字符 |
RCON 连接的密码
rcon.port
| 数据类型 | 默认值 |
|---|---|
| Integer | 25575 |
RCON 连接的端口
enable-query
| 数据类型 | 默认值 |
|---|---|
| Boolean | on |
启用 Query 查询
server-authoritative-movement
| 数据类型 | 默认值 |
|---|---|
| String | server-auth |
服务器移动验证方式
可选:client-auth / server-auth-with-rewind / server-auth
server-authoritative-block-breaking
| 数据类型 | 默认值 |
|---|---|
| Boolean | on |
服务器权威方块破坏
server-authoritative-inventory
| 数据类型 | 默认值 |
|---|---|
| Boolean | on |
服务器权威物品栏交易(ItemStackRequest)
仅对协议版本 1.16.100 及以上的客户端生效
这是服务器权威移动在物品栏上的对应项 —— 由服务器校验物品移动,而不是信任客户端