解决反向代理群晖时客户端IP不正确

CListery ARE YOU OK?

通过 nginx 反向代理群晖流量后导致群晖显示登录 IP 不正确

问题诱因

由于外部用作反向代理的 nginx 和 群晖 是通过 docker 容器搭建的,所以对于 nginx 和 群晖 来讲,它们分别是处于 docker 网络环境下的不同虚拟机,所以群晖内部 nginx 自带的 set_real_ip_from 127.0.0.1 配置就无效了

群晖内部 nginx 配置

由于群晖重启后会重置,所以直接修改 /etc/nginx/ 下的文件不是首选

所以通过找寻 nginx 模板文件 /usr/syno/share/nginx/nginx.mustache 发现有以下内容

1
2
3
4
5
6
real_ip_header            X-Forwarded-For;
real_ip_recursive on;
set_real_ip_from 127.0.0.1; ---> 这里就是群晖默认自带的信任IP
{{#DSM.trust_proxy}}
set_real_ip_from {{.}}; ---> 通过 DSM.trust_proxy 即可动态配置信任IP
{{/DSM.trust_proxy}}

通过查找相关文档 DSM.trust_proxy 可以通过群晖的 控制面板->安全性->信任的代理服务器 配置,打开 信任的代理服务器 配置后,直接新增一条 外部代理nginx 的 IP 或 IP段 即可

  • 标题: 解决反向代理群晖时客户端IP不正确
  • 作者: CListery
  • 创建于 : 2025-05-22 11:08:26
  • 更新于 : 2025-05-22 11:35:36
  • 链接: http://clistery.github.io/2025/05/22/dsm/fix-reverse-proxy-dsm-remote-ip/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
解决反向代理群晖时客户端IP不正确