在Minecraft服务器中,有一个很重要的系统:白名单系统。
什么是白名单?简单来说,白名单就是服务器随身携带的一个小本本,上面记录了一些玩家。当一个服务器启用白名单系统后,每个玩家想要进入服务器时,服务器就会从兜里掏出小本本,看看该玩家是否被记录在小本本上。如果有记录,那么服务器会允许玩家游玩服务器,反之则会拒之门外。
可以说,有了白名单系统,服务器就能够几乎不受熊的骚扰。对于Java服务器来说,白名单再加上正版验证,那安全性简直不要太好。
Minecraft服务器的白名单系统简单来说由两部分组成:服务器根目录下的whitelist.json文件和/whitelist指令。(注:作者没有开过基岩版Minecraft服务器,暂不清楚基岩版服务器是否和Java版服务器情况一致。如果有开过基岩版服务器的读者可以在这儿留言说明一下。)
这个whitelist.json文件内用JSON记录了白名单上的玩家数据。这个玩家数据的组成也很简单:由玩家名和UUID组成。
在Java版服务器中,开启正版验证的情况下,玩家名和UUID都有用处。因为每个正版玩家都有一个独一无二的UUID和玩家名。什么是UUID?简单来说,UUID就是你在Minecraft中的身份证号码,游戏需要通过UUID来识别你。UUID可以通过Mojang提供的官方api接口进行查询,因此可以保证不会有玩家冒充某个获得白名单的另一个玩家进入服务器。
至于基岩版服务器。基岩版服务器没有离线账号一说,全部账号都是XBOX的游戏账号,因此也有独一无二的UUID。
但如果没有开启正版验证,离线服务器的白名单就没有那么保险了。至于为什么会不保险,我们待会再研究。
白名单的另一部分是/whitelist指令。该指令的使用方法如下:
/whitelist add <玩家名>——将玩家添加到白名单,并且该玩家不需要在线。
/whitelist list——列出白名单中的玩家。
/whitelist off——在此服务器上禁用白名单系统。
/whitelist on——在此服务器上启用白名单系统。
/whitelist reload——从服务器文件夹中重新读取white-list.txt(1.7.5及以前)或whitelist.json(1.7.6及以后)文件中的白名单列表。