在Minecraft服务器中查看下线的OP,主要看ops.json文件和服务器日志,记录是永久保留的,哪怕OP已经下线和换端,你都能从文件里翻出来。
查询下线的OP:最直接的两种途径
从ops.json文件里精确找出OP名单
原版服务端和绝大多数模组端都把OP名单存在ops.json文件里,位置在服务器根目录下(也就是你放server.properties的那个文件夹)。
用文本编辑器打开ops.json,你能看到类似这样的内容:
[
{
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "玩家ID",
"level": 4,
"bypassesPlayerLimit": false
}
]
这里的name字段对应的就是OP的玩家ID,level是权限等级(1-4),即便这个玩家早已不上线,只要他没被手动deop掉,这条记录就会一直留在文件里,行业共识认为,这是检查下线OP的最可靠方式,因为它不依赖任何历史日志,直接看当前服务器的OP列表快照。
从日志文件里找历史OP操作记录
想知道某个OP是什么时候下线的,或者想查很久以前被deop掉的玩家,就要翻logs文件夹了。
服务器启动后,控制台输出的每一行操作都会被记录到logs/latest.log里,找到历史记录的方法:用文本编辑器或者grep命令搜索关键词Dispatching request和deop。
- 玩家下线的提示形如:
xxx lost connection: Disconnected - 玩家被取消OP的提示形如:
Deopped xxx
如果你用的是面板服(比如MCSManager、Pterodactyl),直接在面板的“文件管理”里找到logs文件夹就能看到这些文件,这里要特别注意:logs文件夹里面存在按日期命名的旧日志(例如2026-03-01-1.log.gz),里面同样记录了当年的操作信息。
不同服务端和插件环境下的差异
原版/Paper/Spigot服务器:文件结构基本一致
大多数Java版服务器都遵循相同逻辑,ops.json文件和各日志文件路径几乎一致,即使服务端从旧版本跨版本升级,ops.json里的记录也会自动迁移,但如果添加了权限组插件,例如LuckPerms,OP可能不再存在ops.json中,而是以权限节点的形式分配,这时查实底数据库文件(通常为luckperms的SQLite或MySQL数据)更准确,直接在后台运行/lp user <玩家名> info也能立刻看到该玩家的权限记录。
基岩版服务器(Bedrock Dedicated Server):路径略有不同
基岩版的OP名单写在permissions.json文件里,日志记录的格式也和Java版不一样,不过整体查询思路完全一致,先定位文件,再搜索玩家ID,就能找到下线的OP记录。
如何通过指令快速查当前在线的OP
如果你想查目前在线的OP列表,不需要翻文件,直接在游戏内或后台输入:
/op @a
这条指令会列出所有在线玩家的OP状态,该命令虽然在服务器内不常用,但它能帮你快速对照名单,如果想看某个具体玩家是否还拥有OP权限,直接输入:
/deop 玩家ID
若系统反馈“该玩家不是OP”,就证明他早已不在OP名单;若提示成功移除,则说明他之前还挂着OP身份,这是一个非常实用的验证技巧。
查下线OP的实战场景与对应方案
离散OP的审计排查
服务器里曾有多个OP,其中一位服主的好友早已不玩,但权限依然挂在身上,存在安全隐患,这种情况下:
- 打开
ops.json,逐个比对这个文件里的name与当前活跃玩家名单。 - 找到长期未上线的OP ID,直接后台输入
/deop 玩家ID清除权限。 - 在后台/控制台查询
logs/latest.log,确认该玩家最近一次下线时间,判断其是否真的不再回来。 - 修改服务器密码或白名单,防止该OP账号被他人利用。
面板服误删存档后找回数据
MCSManager这类面板会提供文件备份机制,但如果你没开自动备份,则可以通过日志来识别该OP最后一次的操作记录,在logs/latest.log中找到该玩家的命令操作历史,通过grep命令:
grep "玩家ID" logs/latest.log
就能列出该OP所有的执行命令与上下线时间戳,这个数据在处理“删错了东西、谁动了配置”这类纠纷时很有说服力。
查看OP的充值或消费记录(模组服)
很多开服者用的是含有经济插件的整合包,比如Catserver、Mohist,想在后台查下线的OP曾经买了什么,怎么办?直接去数据库或者economy插件生成的文件夹中搜索玩家ID,但需要注意的是,经济插件的交易记录文件通常独立于服务器日志,所以不能用查OP文件的方式直接推断历史交易,先分清插件权限和服务器OP权限是两码事,再按对应插件的路径去查。
| 查询目标 | 推荐路径 | 备注 |
|---|---|---|
| 当前OP名单 | ops.json(Java版)/ permissions.json(基岩版) |
精确、实时 |
| OP历史操作 | logs/latest.log及历史logs文件 |
包含上下线与指令记录 |
| 权限组插件配置 | LuckPerms数据库或权限文件 | 适用于使用插件的服务器 |
| 在线OP状态 | /op @a指令 |
快速筛出当前在线OP |
忘记OP名字了怎么搜回来
很多服主开了几年服务器,连自己都给过谁OP都忘了,这时最有效的方式是直接在日志文件里全局搜索op相关关键词。
用面板服的在线文件编辑器打开某个历史日志,Ctrl+F搜索“Opping”或“Deopped”,所有被给予过或移除过OP权限的玩家ID都会一一列出,顺便多说一句:不要只查latest.log,历史日志文件(以.gz同样记录了完整变更历史,只是需要一个解压工具(WinRAR或面板自带解压功能),解压后再搜索即可。
查不到下线OP记录时可能的原因
如果上述路径都查不到,极大概率是以下四种情况:
- 服务器曾经被清空过日志,
logs文件被手动删除过。 - 换端时没有保留
ops.json和logs,而是直接重开新服。 - 该OP是在旧服务端版本中通过
server.properties里的op-permission-level配置临时升权的,这条路径不会在ops.json留下痕迹。 - 权限并非通过OP系统分配,而是由权限组插件(如LuckPerms、GroupManager)托管。
遇到这种情况,建议你直接检查server.properties中的op-permission-level设置,以及插件配置文件中是否有相关玩家记录,若都没有,那只能说这份OP历史记录已经无法追溯,因为第一次开服时的数据没有留存。
常见问题解答
用面板服(MCSManager等)能直接看到下线的OP吗?
面板本身不直接显示OP列表,但它提供文件管理和日志查看功能,你可以通过面板文件管理进入ops.json和logs文件夹,进行查看和搜索,部分面板还支持在线编辑器直接打开文件,免下载就能完成查询。
查OP记录会不会影响服务器运行?
不会。ops.json和日志文件都是静态读取,不涉及任何在线写入操作,只要你不在日志文件路径内直接删除或覆盖文件,查询操作不会干扰服务器正常运转,通过后台文件管理器或SSH连接查看,都是安全的。
有些OP是通过权限组插件给的,还能在ops.json里面看到吗?
不能,插件分配的权限写入到插件自己的存储文件(SQLite/MySQL或其他格式),不会同步到ops.json,这时你需要打开权限组插件的前端界面,或直接查询它的数据库表luckperms_user_permissions等来定位该玩家权限记录,否则即使查遍整个logs文件夹,也找不全真正拥有OP权限的完整名单。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/743309.html





