背景问题
-
guest这个用户只能使用localhost登录,而不能使用IP地址登录:
amqp://guest:guest@127.0.0.1:5672/rabbitVHost
远程无法连接
amqp://guest:guest@10.10.10.128:5672/rabbitVHost
-
可以建立一个新的用户,用于远程链接
1. 创建用户
原来的guest用户只能用于本地(安装了RabbitMQ的服务器)访问,我们需要添加一个用户
(教程中说需要修改用户的配置文件,但我发现不修改,直接在terminal管理界面中添加也可以)
添加用户的操作
直接输入
rabbitmqctl
可以查看rabbitmqctl help相关命令
# 添加用户 rabbitmqctl add_user "username" "password"
~ sudo rabbitmqctl add_user test 1
Adding user "test" ...
# 设置用户为管理者 rabbitmqctl set_user_tags "username" "权限administrator"
~ sudo rabbitmqctl set_user_tags test administrator
Setting tags for user "test" to [administrator] ...
# 权限添加
sudo rabbitmqctl set_permissions -p "/" test ".*" ".*" ".*"
Setting permissions for user "test" in vhost "/" ...
# 查看所有用户权限信息
yang@VM ~ sudo rabbitmqctl list_permissions
Listing permissions for vhost "/" ...
user configure write read
guest .* .* .*
test .* .* .*
2. 关闭防火墙开启端口
- Ubuntu的防火墙和之前的相比有改动
- 远程访问,需要开启RabbitMQ使用的端口
关闭防火墙
# 关闭防火墙
sudo ufw disable
Firewall stopped and disabled on system startup
# 加载防火墙启动防火墙
sudo ufw enable
Firewall is active and enabled on system startup
# 开放端口
sudo ufw allow 80 #tcp和udp 80
sudo ufw allow 80/tcp #仅tcp 80
sudo ufw allow 7100:7200/tcp #端口范围
# 查看已经开放的端口
sudo ufw status
Status: inactive # 防火墙不活跃:没开放
yang@VM ~ sudo ufw status
Status: active # 开放
# 下面显示的已经开放的端口
To Action From
-- ------ ----
15672 ALLOW Anywhere
15672 (v6) ALLOW Anywhere (v6)
3. 测试远程访问
远程访问方法:
在可以访问服务器的Client浏览器输入地址: http://IP:15672
,然后可使用用户(test/1(username/password))登录。
IP地址是安装运行RabbitMQ的服务器地址
如下Guest用户显示无法登录,只能通过localhost(RabbitMQ对应的Server登录)
下面使用 “test” 用户登录成功