有 2 台服务器,假设 A 为 10.12.203.39 ,B 为 10.12.203.40 。 我在 A 服务器搭建了 rabbitmq ,B 服务器搭建了 docker 、且启动了 1 个 docker 容器。 出现的问题是:B 服务器的 docker 容器连接不上 A 服务器的 rabbitmq ,但是我若不使用容器来连接 rabbitmq ,而是直接在 B 服务器上启动一个 java 服务来连接 rabbitmq 却能连上,尝试过用 host 模式来启动容器,还是一样连不上。
1
oneisall8955 23 天前
在 B 主机 telnetA 主机的 rabbitmq 端口,
A docker rabbitmq 映射端口,正常会自动 iptables 过防火墙,你这个问题有点奇怪,还有,你确定 A 主机的 rabbitmq 运行正常了吗?会不会启动失败了? |
2
yeungtien2021 23 天前 1
进入 B 主机的 docker 容器,能否 ping 通 A 主机?
|
3
julyclyde 22 天前
你那俩容器该不会都是 NAT 模式而且网段还相同吧??
|
4
maguoliang OP |
5
maguoliang OP @yeungtien2021 这个有点麻烦,就没 ping ,因为我用的是 java 镜像,很多命令都没有,安装过于麻烦。
|
6
maguoliang OP @julyclyde 我用的默认 bridge 模式。
|
7
julyclyde 21 天前
@maguoliang 既然 connected 那肯定四层通了
你看看服务端的日志 |
8
maguoliang OP @julyclyde 好的,我给你发下服务端的日志,麻烦帮忙分析下。
|
9
maguoliang OP |
10
maguoliang OP |
11
maguoliang OP |
12
julyclyde 21 天前
@maguoliang 你这是客户端的日志吧?
|
13
julyclyde 21 天前
你那个插件啥功能啊,为什么在 B 直接运行客户端就能连上呢?啥原理?
|
14
maguoliang OP @julyclyde 延迟消息交换机插件( rabbitmq_delayed_message_exchange ),是的这是客户端的日志,因为觉得只是一个很简单的连接 rabbitmq 而已,但就是连不上,所以一直再往容器连不上宿主机方向上找问题,然后今天看下了 rabbitmq 的日志发现这个插件一直没没装(本应该在安装完 rabbitmq 就装的),就尝试安装了下,然后就成功连上了,没报错信息了。至于直接启动客户端为啥能连上,我没深究。
|
15
julyclyde 21 天前
@maguoliang 难道不应该研究一下吗
|