我已经努力了好几个星期,试图让我的 Nginx 反向代理显示/传递真实的访问者 IP,但我已经到了没有其他想法可以尝试的地步。当然,我一直在网上寻找解决方案,但没有成功。
如果有人对现在该尝试什么有任何建议,我将不胜感激。如果我需要提供任何日志或设置文件,请告诉我。
我的设置
我的服务器是自托管的,运行着 Proxmox 裸机,上面有一个 Ubuntu 20.04 VM,它托管我所有的容器化(docker)应用程序。
这些容器化应用程序包括:Nginx 代理管理器,它基本上是一个 nginx 反向代理,上面有一个漂亮的 web-GUI。
Docker 以无根模式运行,其结果是局限性. 所有特权端口均已暴露。
问题
Nginx 代理在分配的自定义 docker 桥接网络()上显示其自己的 IP172.24.0.1
作为客户端 IP,因此,我无法实现基于 IP / 子网的访问限制。
到目前为止我尝试过的
- 完全禁用 Proxmox 中 Ubuntu VM 的防火墙。
- 使用 查找 Ubuntu VM 中的伪装规则
iptables -S -t nat
。没有发现任何伪装规则。 - 执行到容器中并检查 nginx.conf 以检查设置
real_ip_header X-Forwarded-For;
和set_real_ip_from 172.0.0.0/8;
是否已指定(确实已指定)。 - 绑定端口
443
和80
按照说明将容器上的这里。