edgeone 下线了 cidr 查询接口又禁止了免费版的源站防护,还有方法拿到 realip 吗?

lonelyhentai 2026-07-30 16:21 1

第一步:2025 年先下线源站防护,公告 https://cloud.tencent.com/announce/detail/2153


这样没有办法通过查到自己站点的 cdn ip cidr ,一般用户都会想到查询整个 edgeone ip 段,比如 https://api.edgeone.ai/ips?version=v4


第二步:2026 年下线 ip range 查询接口,这下彻底拿不到 ip range 了


# [DEPRECATION NOTICE] This interface stopped serving on 2026-07-31 and will be officially offline on 2026-08-31. Please migrate in time.
# [下线公告] 本接口已于 2026-07-31 停止服务,2026-08-31 正式下线,请及时迁移。

通常来说有反向代理情况下,最通用的方法都是通过 xff 递归判断 ip 是否符合代理 ip 然后找到第一个不认识的 ip 作为 real-ip 。


edgeone 连这个都限制后,就只能靠 EO-Connecting-IP 之类的头,一旦你有多 cdn (比如同时在用 cf )或者多级 cdn ,那很容易被伪造。逼着你要不只用 edgeone 一家,要不付钱,要不不允许防御?还有其它方法吗?

最新回复 (8)
  • yuzo555 07-30 16:24
    1
    设置一个你自己的独有的回源请求头,内容复杂一点。源站先检查这个请求头是否正确,如果正确,说明是 CDN 请求来的,然后再通过 CDN 的请求头判断用户 IP 。
  • yuzo555 07-30 16:27
    2
    这种方法配置之后,也可以配置你的 WAF 进入白名单模式,只认有这个正确请求头的请求,这样还能顺便防止源站泄露被 CC 的风险。参考资料: https://docs.dogecloud.com/cdn/practice-waf-block
  • lonelyhentai 楼主 07-30 16:28
    3
    @yuzo555 主要是如果只用 EdgeOne 还好,一旦同时用其他家 cdn 或者可以直接访问,那可以随便伪造 header, fail2ban 之类就没用了
  • lonelyhentai 楼主 07-30 16:30
    4
    还有一种嵌套 cdn 的情况,本身托管在 cf 上开了 proxy, 针对国内访问走 edgeone 也不行了
  • yuzo555 07-30 16:30
    5
    每家 CDN 都支持配置回源请求头吧,你每家配置不一样的就行,服务器上都验证就行
  • lonelyhentai 楼主 07-30 16:38
    6
    @yuzo555 感谢建议。但是如果给 A 设置了 A-Header ,B 设置了 B-Header ,那可以在 A 传 B-Header 来伪造吧。还有多级 cdn 也废了
  • yuzo555 07-30 16:44
    7
    回源请求头,在整个过程中,只有你、CDN 厂商、机房知道,除非你信不过这些厂商,或者你的服务器被远程控制了,否则其它人是拿不到的。
  • lonelyhentai 楼主 07-30 16:44
    8
    @yuzo555 想了下佬的这个思路很好,可以混合 xff 和 EO-{{SECRET}}-Client-IP 来写严格判断,不过得改中间件了,有点麻烦但可行,感谢!
* 帖子来源V2EX
返回