阿里云的均衡负载,貌似获取不到经过代理的客户端真实 ip

2016-08-16 11:49:50 +08:00
 woshisongzhe
我开了阿里云的均衡负载的目的是为了能够第一时间把真实 ip 提取出来然后第一时间设置防火墙把这些恶意 ip 给屏蔽掉,但问题是测试了几天经过代理的 ip 还是看不到真实 ip ,还需后端服务器提取,究竟这么设置才能让 slb 提取到真实 ip 然后再后端通过 netstat 就能查看到真实 ip?这样,我就可以减少很多工作了,后端服务器也就更安全了
4505 次点击
所在节点    云计算
15 条回复
songw123
2016-08-17 09:13:24 +08:00
XFF
woshisongzhe
2016-08-17 10:25:55 +08:00
@songw123 我在后端设置了 XFF ,但是通过命令窗口 netstat 还是抓取不到真实 ip ,要在负载均衡那设置?但是负载均衡没有让我们进去设置的入口
cq65617875
2016-08-17 11:15:22 +08:00
netstat 当然是看不到客户端 IP 的啊 因为访问的都是 CDN 节点的 IP 你可以在 Header 中获取到 IP
woshisongzhe
2016-08-17 13:53:45 +08:00
@cq65617875 按照这么说,对于通过代理隐藏的客户端 ip 不能通过防火墙给它封了是吗
cq65617875
2016-08-17 15:10:26 +08:00
@woshisongzhe 如果你走 CDN 那么你就只能从你的 WEBSERVER 来判断 IP 你可以在里面做判断进行 403 跳转 CDN 本身就有一层防火墙 你这么做的原因是要做什么
cq65617875
2016-08-17 15:11:30 +08:00
@woshisongzhe 妈的我貌似搞错了 你用的是 SLB 并不是 CDN (噗
cq65617875
2016-08-17 15:16:12 +08:00
@woshisongzhe
如何获得来访者的真实 IP ?

针对 7 层( HTTP 协议)服务,负载均衡通过 Http Header:X-Forwarded-For 获取来访者真实 IP ,该功能已经默认开启,无需配置,也不能修改。

针对 4 层( TCP 协议)服务可以直接获取,无需额外配置。
songw123
2016-08-17 15:53:58 +08:00
@woshisongzhe 这种情况下,你可以在应用层做,防火墙层面很难做, iptables 不支持
woshisongzhe
2016-08-17 15:57:22 +08:00
@cq65617875 我想要的是在进入防火墙之前这个 ip 就已经暴露而不是进入防火墙之后这个 ip 才能被提取,这么做的话就减少应用层的提取真实 ip 的负担了
woshisongzhe
2016-08-17 15:58:55 +08:00
@songw123 应用层倒是能抓取到,但是增加应用层的负担,我看到 slb 说能真实抓取到 ip 我才开了 slb 试一下,但是发现在后端通过 netstat 查看不到经过代理的真实 ip
cq65617875
2016-08-17 16:10:27 +08:00
@woshisongzhe 是 HTTP 业务么 还是 TCP/UDP
woshisongzhe
2016-08-17 16:58:41 +08:00
@cq65617875 通过网址获取网页结果,我一直理解为是 tcp 业务,其他 UDP 什么的我都封了,只留下 tcp 协议
cq65617875
2016-08-17 18:27:30 +08:00
@woshisongzhe HTTP 的 SLB 不一样 没办法
donglemon
2016-09-28 09:35:45 +08:00
用 traceroute 下,应该能抓到
root123
2018-01-03 22:56:29 +08:00
@woshisongzhe 大佬,解决了么?请问如何解决的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/299595

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX