Minexa说明书
入门配置与管理

白名单、OP 与封禁管理

白名单怎么开才真的挡住人、OP 等级 1–4 分别能做什么、离线模式下名字为什么不可信。

凌晨一点,服务器列表里冒出一个从没见过的名字。你确定没把地址发给这个人——但地址可能被转发过;如果你还关了正版验证,任何人只要知道 IP 就能进来。

白名单、OP、封禁,是三个最常被混为一谈的东西:白名单决定“谁能进”,OP 决定“进来的人能做什么”,封禁决定“谁暂时或永久别进来”。它们存在不同的文件里,生效条件也不一样。

本页要点
  • 白名单、OP、封禁是三份不同的名单,存在不同文件里,生效条件也不同。

  • 白名单开关只发命令,重启后回到配置文件的值。

  • 加人、删人、开关都要求服务端正在运行,服务端没跑按钮就是灰的。

  • 手动选 OP 等级 1–4 要停止再启动才生效,默认等级不用重启。

  • 应用提示“已加入”只代表命令发出去了,它不解析服务端回执。

先分清:白名单、OP、封禁各管什么#

你要解决的问题用哪个数据存在哪改完什么时候生效
只让认识的人进服白名单whitelist.json + server.properties 的 white-list命令即时;改配置要重启
让朋友能飞、能传送、能管人OPops.json默认等级即时;手动等级要重启
把捣乱的人挡在门外封禁banned-players.json命令即时

三者是叠加关系,不是替代关系:开了白名单,普通玩家必须在名单里;Java 版的 OP 可以绕过白名单直接进(这一点后面会细说)。封了玩家,他就算在白名单里也进不来。Minexa 的「玩家」页把在线、OP、白名单、封禁分成四个标签,对应的就是这四类数据。页面位置和按钮说明见 玩家页:在线、OP、白名单与封禁。

白名单的两种开法,别只做一半#

白名单有两条开启路径,很多人只做了其中一步,然后奇怪“为什么还是谁都能进”。

方式一:改 server.properties,长期有效。

server.properties
# server.properties
# 改完必须重启服务端才生效
white-list=true

这是“根上的开关”。服务端每次启动都会读这个值,所以它决定重启之后白名单还在不在。

方式二:在控制台发 whitelist on,立即生效。

Minecraft 命令
whitelist on

这条命令只改变当前这次运行的状态,不会回写 server.properties。用命令打开的白名单,重启后会回到配置文件里的值。

开了开关不等于名单里有人

whitelist on 只是把门锁上,不会自动把谁加进去。如果名单是空的,普通玩家一个都进不来。Java 版的 OP 可以绕过白名单进服,所以最稳的顺序是:先把自己加进名单(或先把自己设为 OP),再加朋友,最后 whitelist on。

在 Minexa 里,玩家页的白名单标签也有一个开关,它做的是同一件事:发 whitelist on 或 whitelist off,不改 server.properties。所以只拨应用开关的话,重启后照样恢复成文件里的状态。想长期生效,去 服务器配置页 把 white-list 改成 true,或在文件管理里编辑 server.properties。

两种方式的差别可以记成一张表:

方式入口生效速度重启后适合
改 white-list=true配置页 / server.properties重启后仍然开启长期开服
whitelist on控制台 / 玩家页开关立即可能被配置覆盖临时开关、测试

把人加进去:应用里两步,命令里一行#

在 Minexa 里加白名单,顺序不要反:

  1. 先启动服务端。玩家页所有写操作都要求服务端正在运行,未运行时按钮是灰的,横幅会写「服务器未运行 · 所有命令操作不可用,请先启动服务端」。

  2. 打开白名单开关(如果还没开)。开关只负责 whitelist on,不负责加人。

  3. 在「添加白名单」里输入玩家名,点「添加」。应用会发 whitelist add <玩家名>,成功后提示「已将 X 加入白名单」。

  4. 让玩家进服验证。白名单按 UUID 匹配,名字打错、大小写不对,都可能加进去一个“不存在的人”。

用命令更直接,下面几条都在控制台执行(控制台不需要 /):

Minecraft 命令
whitelist add <玩家名>
whitelist remove <玩家名>
whitelist list
whitelist reload
  • <玩家名> 是占位符,要换成真实名字,尖括号不要一起输入。

  • whitelist list 用来确认到底加了谁。

  • whitelist reload 在你手动改过 whitelist.json 之后用,让服务端重新读文件。

  • 加人、删人都是即时命令,不需要重启。

名字照抄,不要凭记忆

最稳的做法是让玩家先进一次服(或临时关白名单),从在线列表里复制他的名字,再粘到添加框。离线模式下名字的大小写不同会被算成不同的 UUID。

OP 等级 1–4:每一级多出什么#

OP(Operator,管理员)不是“开”或“关”这么简单,它有一个 1–4 的等级。下面这张表按原版规则整理,也是 Minexa「OP 等级指引」页展示的内容:

等级能做什么典型用途风险
1仅绕过出生点保护,没有额外命令几乎用不到低
2单人作弊类命令,如 /gamemode、/give、/tp给朋友发物品、换模式中,能刷物品
3多人管理命令,如 /op、/deop、/kick、/ban信任的管理员高,能踢人封人
4全部命令,含 /stop、/save-all 等(默认等级)只有你自己最高,能停服、能给别人 OP

新 OP 的默认等级由 server.properties 的 op-permission-level 决定,默认是 4 级,点一下就拿到最高权限。给不熟的人 OP,等于把服务器钥匙交出去。

不要把 4 级 OP 给陌生人

4 级 OP 可以执行 /stop 停服、/op 给自己人提权、/ban 封掉你。需要朋友帮忙管理时,先想清楚他需不需要 3 级;只是想让朋友飞行、传送,2 级就够。装了权限管理插件(例如应用 OP 指引里提到的 LuckPerms)时,还可以做到更细的权限分配,但那是插件的能力,不是原版 OP 等级。

加 OP 为什么有时要重启#

Minexa 的 OP 标签里有一个复选框:「使用配置文件默认 OP 等级(无需重启服务器)」。

  • 保持勾选:应用发一条普通的 op <玩家名>,服务端按当前 op-permission-level 给等级。这条路径不需要重启。

  • 取消勾选、手动选等级:原版 /op 不支持指定等级。应用的做法是先发 op,约 800ms 后改 ops.json:服务端已经把旧等级读进内存了,所以界面会用红字提示「下次重启服务器后生效」。

也就是说,手动等级不是“点了就生效”,而是要停一次服再启动。Minexa 没有独立的重启按钮,做法是先点「停止」,等它正常退出,再点「启动」。停止最多等 180 秒,超时不会强杀,会提示你可以强制停止。

反过来,如果你只是想把某个人加进来当普通管理员,保持勾选默认等级最省事;要精确控制等级,就接受一次重启。两种路径的按钮文案也不一样,一个是「添加 OP(默认等级)」,一个是「添加 OP(等级 N)」,点之前看清楚。

封禁:应用能封玩家,不能封 IP#

玩家页的「封禁」标签做两件事:封玩家、解封。封禁时可以填原因,永久封禁走 ban,限时封禁走 tempban,时长有 30 分钟、1 小时、6 小时、1 天、7 天、30 天几档,结果写进 banned-players.json。

Minecraft 命令
ban <玩家名> [原因]
pardon <玩家名>

这里有两个必须知道的边界:

  1. 限时封禁依赖 tempban,而tempban 不是原版命令,原版服没有这一条。多数只装基础插件的 Paper 服也不带它。Minexa 不检测核心是否支持,所以限时封禁可能看起来“点了”,实际没有生效。用之前先在控制台试一次,或者改用永久封禁加手动解封。

  2. 应用没有 banned-ips 管理入口。玩家页只有玩家封禁,没有 IP 封禁的列表或按钮。文件 banned-ips.json 确实存在,但应用不读也不写它。

要封 IP,只能在控制台发命令:

Minecraft 命令
ban-ip <IP地址>
ban-ip <玩家名>
pardon-ip <IP地址>

ban-ip <玩家名> 会封掉该玩家当前登录的 IP。改 banned-ips.json 也能达到目的,但必须先停服再改;格式写错时,封禁列表可能整份读不出来。

IP 封禁可能误伤一整个网络

同一个家庭、同一个学校、同一个运营商大内网(CGNAT)下的玩家,可能共用出口 IP。封一个 IP,可能把一整批人挡在外面,而真正想封的人换个网络就进来了。优先封玩家名;IP 封禁只作为临时手段。

离线模式:白名单挡不住“同名的人”#

白名单只有在“名字能代表身份”的前提下才有意义,而离线模式恰好破坏了这个前提。

关闭正版验证(online-mode=false)后,服务端不再向 Mojang 验证账号。玩家的 UUID 由名字直接算出来:同一个名字,谁用都能得到同一个 UUID。于是会出现这种情况:

  • 你把 Steve 加进白名单;

  • 一个陌生人把客户端名字改成 Steve;

  • 服务端认为他就是白名单里的 Steve,放行。

更细的一点:离线 UUID 对名字是敏感的,Steve 和 steve 会被算成两个不同的人。这既会让“加错大小写”变成加了个空气,也会让冒名者只要拼得一模一样就能混进来。

所以,白名单不是万能锁。它能挡住“随手连进来的人”,挡不住“知道你名单里有什么名字的人”。

关正版验证 + 开公网 = 把门开着

如果你为了让人进来而关了 online-mode,请同时做到:开白名单、只把地址发给信任的人、不要把端口长期暴露在公网、定期备份。离线模式下,管理员权限尤其危险——冒名者只要顶着一个 OP 的名字进来,就继承了他的权限;而 Java 版的 OP 还能绕过白名单,等于后门开得更大。能恢复正版验证就恢复;确实不能,就按“所有人都是潜在冒名者”来设计权限。

加了白名单还是有人进?按这几条查#

现象最可能的原因怎么处理
谁都能进只改了 whitelist.json,没开 white-list,也没发 whitelist on先开开关,再让人进
重启后又谁都能进用命令或应用开关开的,没写进 server.properties把 white-list=true 写进配置
朋友加不进去名字打错、大小写不对、带了空格从在线列表复制名字,重新 whitelist add
手动改完文件不生效服务端还在用旧名单控制台 whitelist reload,或重启
应用提示“已加入”,但人进不来应用只确认命令发出去了,不解析服务端回执去终端看有没有报错,用 whitelist list 复核
名单里的人都进不来白名单开了但名单是空的,或配置写错先确认自己是不是 OP;没有 OP 就用控制台 whitelist add 自己

“应用提示已加入,但人进不来”这条尤其容易误判:Minexa 的玩家页在命令发出 600 毫秒后就刷新列表,它不解析服务端的返回内容。名字打错时,服务端可能回一句“玩家不存在”,但应用仍可能弹出“已将 X 加入白名单”。

上机自查
  • 玩家页「白名单」标签里的名单,能看到你自己和刚加的朋友。

  • 控制台发 whitelist list,返回的名字和你加的一致,没有拼错。

  • 重启一次服务端后 white-list 仍是 true(说明写进了文件,不只是拨了开关)。

  • 刚加过的人能真的进服一次,不只看那句“已将 X 加入白名单”。

  • 手动选过 OP 等级的,界面提示过「下次重启服务器后生效」,并且你已经重启过。

下一步#

读到这儿了,给你点个赞。如果这页内容帮你解决了问题,说明说明书的方向是对的;如果发现错误、过时信息或看不懂的地方,欢迎到 GitHub Issues 告诉我们。

⚡ 回到极速开服 📖 查术语表