这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战」
远程服务器中安装rabbitmq完成后,本地使用guest账号密码登录控制台时,报错显示rabbitmq User can only log in via localhost,在此记录问题和相关解决方法。
1. 报错信息
远程服务器安装rabbitmq并开启服务后,本地使用提供的guest/guest账户远程登录控制台失败,点击登录显示错误rabbitmq User can only log in via localhost。
2. 问题原因
rabbitmq从3.3版本之后便默认禁止使用guest/guest进行远程登录,而只能通过localhost本地登录,因此在远程服务器开启rabbitmq-server后,使用默认账号登录会报错。
3. 解决办法
3.1 方法一:解除guest账号限制
- 在rabbitmq的安装目录下找到rabbit.app配置文件
- 使用yum安装rabbitmq时默认目录为:
/usr/lib/rabbitmq/lib/rabbitmq_server-3.9.13/plugins/rabbit-3.9.13/ebin/rabbit.app - 可以使用命令
find / -name rabbit.app查找该文件
- 使用yum安装rabbitmq时默认目录为:
- 使用vim编辑配置文件,找到其中的
{loopback_users,[<<"guest">>]}配置项,删除<<"guest">>即可- 查找文件中内容时可以使用
/loopback搜索内容
- 查找文件中内容时可以使用
- 编辑并保存文件后,使用
systemctl restart rabbitmq-server重启rabbitmq服务 - 重新远程访问 ip地址:15672,使用guest账号可以登录成功
3.2 方法二:增加远程登录账号
通过增加新的登录账号并分配权限来实现远程登录rabbitmq服务,是一种更为推荐的问题解决方式。
- 使用命令增加rabbitmq用户信息,
rabbitmqctl add_user [accountName] [password] - 使用命令为账户设置角色,
rabbitmqctl set_user_tags [accountName] [role],rabbitmq中的用户角色共有四种- aministrator,超级管理员角色,可以登录控制台查看所有信息,并可以对用户、策略操作
- monitoring,监控者角色,可以登录控制台查看rabbitmq节点相关信息,无法对策略管理
- management,普通管理者角色,仅可以登录控制台,无法看到节点信息
- 其他角色,无法登录管理控制台,即普通的生产者和消费者
- 使用命令为账户设置允许访问的vhost,
rabbitmqctl set_permissions -p "/" [accountName] ".*" ".*" ".*" - 设置完成后,可以查看账户和权限信息
- 命令
rabbitmqctl list_users查看用户信息列表 - 命令
rabbitmqctl list_permissions -p /查看vhost允许访问用户列表
- 命令
- 新增用户并设置权限后,可以使用新用户远程登录rabbitmq服务