收起左侧

看看鼠鼠的三层nginx反代是怎么把相册备份搞坏掉的,已解决~

3
回复
89
查看
[ 复制链接 ]

1

主题

3

回帖

0

牛值

江湖小虾

问题描述

环境

飞牛环境

飞牛nas 0.9.32

飞牛nas app 1.23.1

飞牛相册最新版

网络环境

总共只有两个设备:

  1. 路由器,ip:192.168.1.1
  2. nas,ip:192.168.1.100

服务:

  1. cudy路由器刷openwrt软路由
  2. 软路由上的Lucky做ipv6的ddns,并且在Lucky上做反向代理
  3. 在nas上使用docker部署了一个雷池waf,用来做安全防护,功能上也属于反向代理
  4. 在nas上使用docker起了一个nginx用来做反向代理

在nas上搭建的服务,ip都是192.168.1.100,只是端口不同

最终实现的流量走向是:公网流量 --> 解析域名到路由器 -->匹配端口及host反代到雷池waf -->匹配host反代到nginx --> 匹配host反代到真实服务,参加下图(狠狠码住host)

image.png

那么这时候就有人要问了:你整这么复杂是做什么?搞这么多反代?

很好的问题cry 起初是没想搞这么多的,可以看到上图中的waf也是后来加的,最开始的计划是路由器上做端口转发到nginx,nginx反代到真实服务就行,这样只有一层反代,可部署起来又觉得光秃秃的一个飞牛nas放在公网,万一哪天爆出0day岂不是鼠鼠家里的所有设备都要被拿下了?

所以在路由器和nginx之间又加了一个waf,这时候路由器的端口转发到waf,waf反代到nginx,nginx反代到真实服务,测试下来也是ok的,此时只有2层反代,但是跑起来发现waf上的攻击ip都成了路由器ip,也就是端口转发无法获取真实来源ip,这怎么行呢?真被打了都不知道谁打的~

怎么办?改吧,把路由器和waf之间的端口转发也换成反向代理,这样在waf上只需要从请求头的x-forwarded-for头就能拿到真实来源ip,测试下来也是非常ok的,此时就达成3层反代的成就。

所以搞这么麻烦就是想实现对外只暴漏一个路由器的一个端口,而根据不同的host也就是不同的二级域名来转发到真实服务上,中间还有一个雷池waf,非常安全~鼠鼠真的怕lol

可这样就真的好了吗?

问题

当鼠鼠部署好3层反代并且沉浸于自己3层反代的逆天成果时,相册备份却出了问题。在部署好的几个月后也就是昨天,第一次用相册备份功能时发现上传照片总是会不停地上传某几张,并且在重复几次后会上传失败,80%的照片都是这样,网上找了张一模一样的报错图:

PixPin_2025-10-23_22-04-39.png

卸载、更新、重装都无法解决,网上也没找到解决办法,只能自己试试了~

解决过程

经过测试发现:

  • 局域网使用是正常的,走互联网就会报错

动了动脑子判断大概率是太多nginx反代导致回包出现问题,ok改吧,看了下拓扑很明显waf到真实服务之间的nginx属于多余了,waf本身就是反代的原理,所以删掉nginx,让waf直接反带到真实服务上,路由器到waf上不做变动,试了下终于是ok了~很完美,鼠鼠又可以沉浸在自己的世界lol

Lucky:

image.png

雷池waf:

image.png

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

主题

3

回帖

0

牛值

江湖小虾

昨天 23:24 楼主 显示全部楼层

lol

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

58

主题

4448

回帖

675

牛值

共建版主

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家

可以编辑啊,帖子左下角有编辑两个字。

QQ_1761233284450.png

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
找到了找到了,太隐蔽了,已经编辑回去~  详情 回复
昨天 23:31

1

主题

3

回帖

0

牛值

江湖小虾

昨天 23:31 楼主 显示全部楼层
玉尺书生 发表于 2025-10-23 23:28
可以编辑啊,帖子左下角有编辑两个字。

找到了找到了,太隐蔽了,已经编辑回去~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则