通过 haproxy 获取 MQTT 请求的客户端 IP
get client IP for an MQTT request over haproxy
我已经配置 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 请求添加额外的 headers)。
代理实际上只是将到达它的 public 端口的数据包转发到后端服务器(除了执行 SSL 终止之外)它根本不改变数据包。
我已经配置 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 请求添加额外的 headers)。
代理实际上只是将到达它的 public 端口的数据包转发到后端服务器(除了执行 SSL 终止之外)它根本不改变数据包。