EMQX: 5.8.4
入口顺序:客户端 → (8883) LB → (1883)EMQX
发现客户端无法连上EMQX,LB开启了PROXY_PROTOCOL,EMQX的tcp监听1883也开启了PROXY_PROTOCOL。
EMQX: 5.8.4
入口顺序:客户端 → (8883) LB → (1883)EMQX
发现客户端无法连上EMQX,LB开启了PROXY_PROTOCOL,EMQX的tcp监听1883也开启了PROXY_PROTOCOL。
日志输出也没任何相关的信息
如果emqx的日志上没有报错,我觉得应该是lb配错了,建议对下官网文档一个个看一下
但是我们还有一台5.0.20版本的服务器,入口顺序一样,但是没有开启PROXY_PROTOCOL也能获取到设备真实IP,是后面升级的版本有改动到这个吗?
这个是基础功能,不应该会变。
你那 5.0.20 没开 proxy_protocol 还能看到真实 IP,说明 LB 本身保留了源地址(没做 SNAT、透明转发、或云厂商的源地址透传),不是 EMQX 在没收到 Proxy Protocol 时还能解析出真实 IP。
先确认 LB 到 EMQX 这一跳到底有没有发 Proxy Protocol 头。HAProxy 后端要显式 send-proxy / send-proxy-v2,NGINX stream 要在转发到 upstream 的 server 里开 proxy_protocol on;。只在 LB 产品页面开了“代理协议”,但后端连接没带头,EMQX 1883 开了 proxy_protocol = true 会直接等header,客户端表现就是连不上。
确认 TLS 是不是在 LB 终止。
listeners.tcp.default.proxy_protocol = true。listeners.ssl.default.proxy_protocol = true。在 EMQX 上看监听器实际配置和关闭原因:
emqx ctl listeners
把 tcp:default / ssl:default 里 proxy_protocol、shutdown_count,以及 LB 类型和后端配置片段贴出来。现在看更像 LB 透传方式或后端协议选错
好的,谢谢,我们再调一调看看