为什么我无法让 Nginx 反向代理显示真实客户端/访问者 IP?

为什么我无法让 Nginx 反向代理显示真实客户端/访问者 IP?

我已经努力了好几个星期,试图让我的 Nginx 反向代理显示/传递真实的访问者 IP,但我已经到了没有其他想法可以尝试的地步。当然,我一直在网上寻找解决方案,但没有成功。

如果有人对现在该尝试什么有任何建议,我将不胜感激。如果我需要提供任何日志或设置文件,请告诉我。

我的设置

  • 我的服务器是自托管的,运行着 Proxmox 裸机,上面有一个 Ubuntu 20.04 VM,它托管我所有的容器化(docker)应用程序。

  • 这些容器化应用程序包括:Nginx 代理管理器,它基本上是一个 nginx 反向代理,上面有一个漂亮的 web-GUI。

  • Docker 以无根模式运行,其结果是局限性. 所有特权端口均已暴露。

问题

Nginx 代理在分配的自定义 docker 桥接网络()上显示其自己的 IP172.24.0.1作为客户端 IP,因此,我无法实现基于 IP / 子网的访问限制。

到目前为止我尝试过的

  1. 完全禁用 Proxmox 中 Ubuntu VM 的防火墙。
  2. 使用 查找 Ubuntu VM 中的伪装规则iptables -S -t nat。没有发现任何伪装规则。
  3. 执行到容器中并检查 nginx.conf 以检查设置real_ip_header X-Forwarded-For;set_real_ip_from 172.0.0.0/8;是否已指定(确实已指定)。
  4. 绑定端口44380按照说明将容器上的这里

我发现有用的资源

https://github.com/nginx-proxy/nginx-proxy/issues/130

https://github.com/nginx-proxy/nginx-proxy/issues/133

相关内容