通过haproxy获取MQTT请求的客户端IP

问题描述

我已配置X_FORWARDED_FOR来捕获HTTPS请求的客户端IP,并且它按预期工作。

但是,对于MQTT,数据是通过SSL发送的,而HTTP / S不会出现在图片中。

ssl://<HOST_NAME>:<PORT>

我尝试将以下内容添加到HAproxy配置上的后端服务器。到目前为止没有运气。

backend TestServer
    mode tcp
    server TestServer01 10.6.186.24:48080 send-proxy-v2
------
    server TestServer01 10.6.186.24:48080 send-proxy
------    
    server TestServer01 10.6.186.24:48080 send-proxy-v2-ssl

是否有一种方法可以通过更改HAProxy配置来捕获传入MQTT请求的客户端(源)IP?

解决方法

否,MQTT协议中没有存储原始客户端IP地址的位置(例如向HTTP请求添加额外的标头)。

代理实际上只是将到达其公共端口的数据包转发到后端服务器(可能做SSL终止的情况除外),它根本不会更改数据包。