MC群组服开服教程系列六: 登陆插件
简介
登陆插件主要是给我们离线服务器设置的, 如果是正版的服务器,不需要关注这个问题的。
常见的登陆插件
- AuthMe Reloaded (5.X): 很老牌很经典的登陆插件了。可以配置的比较多。
- xAuth:
- CrazyLogin
- LoginSecurity
- AdvancedLogin (Paid) : 有gui界面,需要花钱买的。
- UltraAuth
- BungeeAuth (BungeeCord/Waterfall plugin): 只能在代理安装的插件。
这里重点说下另外一个插件fastlogin可以在离线的服务器进行安装,这样盗版的用户需要走上面的登录插件进行认证,正版的账户可以直接快速登录,无需走上面的认证插件。
关于插件推荐,如果不差钱推荐AdvancedLogin + FastLogin的方式,否则推荐AuthMe Reloaded + FastLogin 的方式。
考虑到大部分的情况,我们推荐使用AuthMe Reloaded + FastLogin的方式。
AuthMe Reloaded的简介
防止在您的服务器上窃取用户名! 使用它来保护您的离线模式服务器或增强您的在线模式服务器的保护! AuthMeReloaded 不允许未通过身份验证的玩家执行放置块、移动、 键入命令或使用命令。 它还可以踢出不常见的长名或短名的玩家,或者踢出来自被禁国家的玩家。 使用会话登录功能,您不必在每次连接到服务器时都执行身份验证命令! 每个命令和每个功能都可以从我们结构良好的配置文件中启用或禁用。
AuthMe Reloaded的安装
安装启动
authme的下载地址: authme
登陆插件,我们只需要在一个登陆分区进行安装即可, 其他的分区不需要安装,具体安装部署如下。
注意: 请保证代理端的WaterFall的配置文件,force_default_server 是设置为true的,让用户登陆进来都先到登陆分区,避免直接越过登陆分区直接到主城或者后面的其他的分区。
# 进入插件目录 [root@mc plugins]# pwd /home/mc/instances/dl/plugins # 下载插件 wget https://github.com/AuthMe/AuthMeReloaded/releases/download/5.6.0-beta2/AuthMe-5.6.0-beta2.jar # 重启让插件生成默认配置文件 systemctl restart mc_dl
# 进入插件目录
cd AuthMe/
# 备份原始文件
cp config.yml config.yml.default
配置文件变更diff图
上面修改的配置简单说明:
- backend: 指定登陆信息存放的位置,我们选择mysql,我们的mariadb是mysql的fork.
- mySQLUseSSL: 这个是否使用ssl,我们关闭就是了。选择false.
- mySQLUsername: 数据库账户名字。
- mySQLPassword: 数据库账户密码。
- mySQLDatabase: 数据库的数据库名字, 需要我们提前使用CREATE DATABASE d_authme CHARACTER SET utf8 COLLATE utf8_general_ci;
- sessions: 启用会话能力,这样可以设置一天,用户只要登录一次,一天内在登陆就不用输入密码的。
- messagesLanguage: 设置语言,我们推荐设置中文的为zhcn。
- maxRegPerIp: 每个ip运行的最大注册数量,防止大量注册小号。
- kickOnWrongPassword: 如果用户输入错误密码一次,就踢出去用户,不建议设置。
- timeout: 多长时间用户没有输入登录信息,给用户踢出去,我们这里设置5分钟。
- messageInterval: 用户进来后,我们多久提示一次让他输入密码登录系统。
- bungeecord: 注册bc的hook
- sendPlayerTo: 登陆成功后将用户送到那个分区(我们期望是用户连接代理,先到登陆分区,登陆成功后,直接送到主城去),填写你想/server 的目标分区即可。
修改完毕,我们还是重启下服务。
效果如下
登陆后我们直接跳转到了主城,这个都是我们配置文件配置好的。
常见问题
Could not download GeoLiteAPI database [FileNotFoundException]: plugins/AuthMe/GeoLite2-Country.mmdb
这是提示我们没有geo文件,我们需要下载一个geo文件,然后放到这个未知就可以了。https://github.com/P3TERX/GeoLite.mmdb 这个页面找到我们要下载的country文件放到错误提示中提示的位置即可。
[AuthMe] Can't initialize the MySQL database: [SQLSyntaxErrorException]: Unknown column 'x' in 'authme'
出现这个问题,你首先去确保你的文件里面配置的数据库的账户密码数据库名字都是存在的,数据通过CREATE DATABASE d_authme CHARACTER SET utf8 COLLATE utf8_general_ci; 这种方式创建支持utf8的编码的。
第二,还有这个问题,建议你调整下数据库的表名字后再重启下。比如将mySQLDatabase: d_authme 和mySQLTablename: t_authme 这个数据库的名字和表名字修改下,重启下就可以了。感觉是个bug。
AuthMe的完整配置介绍:
FastLogin的安装
下载安装
fastlogin可以在离线的服务器进行安装,这样盗版的用户需要走上面的登录插件进行认证,正版的账户可以直接快速登录,无需走上面的认证插件。
下载地址:fastlogin
下载好,放到登陆分区的插件目录,创建好数据库,然后重启登录分区。
创建对应数据库
CREATE DATABASE d_fastlogin CHARACTER SET utf8 COLLATE utf8_general_ci;
效果
离线账户登录进来需要注册的:
正版账户登录不需要注册的。
这个正版账户登录有点问题,不太确定是不是依赖的插件对1.19.3版本适配有点问题。
参考文档是https://github.com/games647/FastLogin/
posted on 2023-01-14 21:36 LinuxPanda 阅读(2361) 评论(0) 编辑 收藏 举报