V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
edis0n0
V2EX  ›  程序员

Cloudflare 如何禁止 IPv6 访问?

  •  
  •   edis0n0 · 2022-10-12 09:32:05 +08:00 · 3616 次点击
    这是一个创建于 798 天前的主题,其中的信息可能已经有所发展或是发生改变。
    IPv6 好是好,但获取 IP 的成本太低了,甲骨文之类的厂商 /48 甚至 /46 说给就给,导致我们根据 IP 限流的策略全失效了,只能要求 IPv6 用户登录后才能访问大部分内容,并大幅提高要求验证码的频率和难度。这对用户体验的影响不小,所以想问问怎么直接禁止 IPv6 访问。
    不要提 5 秒盾之类的,用户体验更差,而且我的目的是反爬和反 spam ,实际测试下来效果非常差。
    18 条回复    2022-10-12 15:44:57 +08:00
    des
        1
    des  
       2022-10-12 09:37:43 +08:00 via iPhone
    限流根据 48 来可行吗?
    des
        2
    des  
       2022-10-12 09:39:06 +08:00 via iPhone
    还有你说的甲骨文什么的都是云厂商,这部分禁止访问就行吧
    PMR
        3
    PMR  
       2022-10-12 09:46:09 +08:00 via Android
    又是你
    面向提问的“开发”“运维”?


    Expression (not ip.src in {0.0.0.0/0})
    Sped0n
        4
    Sped0n  
       2022-10-12 09:46:23 +08:00 via iPhone
    好像能用 api 关
    edis0n0
        5
    edis0n0  
    OP
       2022-10-12 09:56:20 +08:00
    @PMR #3 问题没说清楚, 我是想不解析 IPv6 ,只解析 IPv4 ,直接全拦下来肯定不行,没几个用户知道怎么关 IPv6.
    totoro625
        6
    totoro625  
       2022-10-12 09:59:58 +08:00
    关键词,cloudflare 自选 IP
    v2yllhwa
        7
    v2yllhwa  
       2022-10-12 10:27:32 +08:00 via Android
    pro 及以上订阅应该可以关闭,参见
    https://api.cloudflare.com/#zone-settings-change-ipv6-setting
    LuminousKK
        8
    LuminousKK  
       2022-10-12 10:32:40 +08:00   ❤️ 2
    curl -X PATCH "https://api.cloudflare.com/client/v4/zones/ [ZoneID] /settings/ipv6" \
    -H "Content-Type: application/json" \
    -H "X-Auth-Email: [E-Mail] " \
    -H "X-Auth-Key: [Global-APIKEY] " \
    --data '{"value":"off"}'

    [] 记得删掉,第一条链接里 ZoneID 可以从 IPv6 设置那个选项那里点击 API 查到

    这样就是关闭 CF 的 IPv6 解析,但是 v6 依然可以访问,然后针对::/0 设置严格的防火墙规则就可以了
    JensenQian
        9
    JensenQian  
       2022-10-12 12:50:12 +08:00
    以前 cfp 接入的域名可以直接 ipv4 接入
    现在 cfp 都登不上去了
    fisherwei
        10
    fisherwei  
       2022-10-12 13:07:49 +08:00
    你按照 /64 或者 /52 或者 /48 限速不行吗?一级一级尝试,选一个双方都能接受的长度
    Kasumi20
        11
    Kasumi20  
       2022-10-12 14:57:31 +08:00
    你不能自己判断一下 cf-connecting-ip 吗
    edis0n0
        12
    edis0n0  
    OP
       2022-10-12 15:06:47 +08:00
    @Kasumi20 #11 你就不能读一下帖子吗,我想不解析 IPv6 是因为 IPv6 /48 甚至 /46 随便给,按整个子网限流很难实施(范围太大很容易误封,造成用户体验很差,范围太小没效果)
    Kasumi20
        13
    Kasumi20  
       2022-10-12 15:20:52 +08:00
    666 ,范围太大很容易误封,所以直接全部禁止

    我是在地球吗

    虽然 cf 把 IPv6 客户端的请求发过来了,但是你不响应不就行了??
    edis0n0
        14
    edis0n0  
    OP
       2022-10-12 15:25:52 +08:00
    @Kasumi20 #13 你完全没理解我的意思,不解析 v6 就能强制客户端用 v4 连接了,v4 地址成本高不容易刷
    edis0n0
        15
    edis0n0  
    OP
       2022-10-12 15:26:57 +08:00
    @Kasumi20 #13 cf 把请求转发过来我再 block ,客户端就没办法 fallback 到 v4 了
    Kasumi20
        16
    Kasumi20  
       2022-10-12 15:34:00 +08:00
    你怎么知道客户端一定有 IPv4 呢
    edis0n0
        17
    edis0n0  
    OP
       2022-10-12 15:44:10 +08:00
    @Kasumi20 #16 现在还有很多网站是 IPv4 单栈的,误封这类用户影响肯定比大范围误封 IPv6 小
    edis0n0
        18
    edis0n0  
    OP
       2022-10-12 15:44:57 +08:00
    已经用 8 楼的 API 关掉了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3475 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:51 · PVG 12:51 · LAX 20:51 · JFK 23:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.