大家好,
有人能帮我解决这个问题吗?下面是设置:
公共服务器(Linux)通过IPSEC VPN & StrongSwan(Linux)连接到StrongSwan。
设置:
公共服务器有一个IPtables,它将HTTP(S)请求端口转发到has服务器
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 4.4.4.4:80
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 4.4.4.4:443假设客户端1.1.1.1通过HTTP访问公共服务器,HTTP将请求转发到via服务器4.4.4.4。基于apache日志,我得到的公共服务器IP是2.2.2.2,我的目标是获得客户机IP 1.1.1.1而不是?
有什么建议吗?我也尝试过使用Haproxy,但是得到了相同的结果。我是否可以通过IPsec虚拟专用网获得客户端IP?
非常感谢!
发布于 2017-08-15 09:34:31
NAT或VPN设置不应影响客户端IP地址的记录。
公共服务器(您的问题中的Apache反向代理或pass )将使用X转发-For报头传递原始客户端的IP。
参见:https://httpd.apache.org/docs/2.4/mod/mod_#x-标头作为Apache的示例
如果使用Apache,您可能还需要安装/启用mod_remoteip
http://httpd.apache.org/docs/current/mod/mod_remoteip.html
在日志格式中,将远程主机名头%h替换为请求%a的客户端IP地址。
请参阅: mod_log_config.html#formats
https://serverfault.com/questions/868687
复制相似问题