V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LYRYRYlo
V2EX  ›  宽带症候群

自建 DNS,当域名解析到 CloudFlare 时自动优选 IP

  •  
  •   LYRYRYlo · 23 天前 via Android · 3064 次点击

    众所周知,CloudFlare CDN 在内地访问速度一般。刚刚突然想到如果在家里自建 DNS ,当识别到域名解析到 CloudFlare 时自动解析到优选 IP ,内地直连访问会不会好一点

    为什么这么做?

    并非所有套 CloudFlare CDN 的网站都会使用优选 IP

    而且今年 CloudFlare 更新了 TOS 不允许用户将域名解析至非默认分配的 IP,不知道这种类似自动改 Hosts 的方法算不算一种曲线救国的方法)。

    或许有 V 友问为什么不上代理?因为有些 IPTV 直播源网站就套了 CF CDN ,如果能直接使用优选 IP 的话就没必要浪费这么多流量了

    所以我想问啥

    不知道各位 V 友有没有具体实例,或者说这个方法是否可行,先感谢各位 V 友了

    40 条回复    2025-05-12 23:45:28 +08:00
    gentrydeng
        1
    gentrydeng  
       23 天前 via Android   ❤️ 1
    我个人认为所谓的“优选 IP”就是种伪需求。

    既然你知道目前 December 3, 2024 版本的 Cloudflare Self-Serve Subscription Agreement 2.2 Use of Services - 2.2.1 Restrictions 条款包含以下限制:

    ---
    Unless otherwise expressly permitted in writing by Cloudflare, you will not and you have no right to:

    (b) interfere with, disrupt, alter, or modify the Services or any part thereof, or create an undue burden on the Services or the networks (including Cloudflare’s peering partners’ networks) or services connected to the Services, including, but not limited to, causing (whether directly or indirectly) traffic for your Cloudflare-proxied domain to be sent to an IP address that was not assigned by Cloudflare for the domain;
    gentrydeng
        2
    gentrydeng  
       23 天前 via Android
    #1 那么你就不该考虑这个方案,因为:

    This Agreement is effective when you click to accept it, use or access the Services, or otherwise indicate your acceptance of the Agreement.

    条款的限制就算是“access the Services”也算数。
    yeh
        3
    yeh  
       23 天前
    多了去了,比如 https://cf.090227.xyz/
    LYRYRYlo
        4
    LYRYRYlo  
    OP
       23 天前 via Android
    @gentrydeng 那没法了
    Love4Taylor
        5
    Love4Taylor  
       23 天前   ❤️ 1
    你是否在寻找 NovaXNS

    LYRYRYlo
        6
    LYRYRYlo  
    OP
       23 天前 via Android
    @Love4Taylor 和我想的一样,感谢 V 友!
    LYRYRYlo
        7
    LYRYRYlo  
    OP
       23 天前 via Android
    @Love4Taylor 不过这个好像不支持私有化部署?要是支持就好了
    yxmyxmyyy
        8
    yxmyxmyyy  
       23 天前
    试过不好用,运营商主动 qos aws 和 cf 的 ip ,aws 我试过任何位置(us.jp.sg),都是电信直连不丢包,但是都被限速到 20m(也有可能是 aws 搞的鬼),cf 就是白天可以,晚高峰根本用不了,优不优选没啥区别
    ZeroClover
        9
    ZeroClover  
       23 天前   ❤️ 1
    @gentrydeng #2 这些条款仅针对网站所有者,网站的访客不是 Cloudflare 的客户,不受 Cloudflare 任何条款约束
    hadoop
        10
    hadoop  
       23 天前 via Android
    @Love4Taylor 求一个邀请码
    LYRYRYlo
        11
    LYRYRYlo  
    OP
       23 天前 via Android
    @hadoop TG 一进群就会发
    heiher
        12
    heiher  
       23 天前 via Android
    @gentrydeng #1 这种有点说不清,除非 cloudflare 掌握证据或就不和用户讲道理直接关停。用户自己只能控制 DNS 解析结果,却无法阻止有心的访问者自定义解析 IP 绕过,因此造成相关的责任不应直接由用户承担。
    LYRYRYlo
        13
    LYRYRYlo  
    OP
       23 天前 via Android
    @gentrydeng 不过“access the Services”的对象应该是网站管理员吧,总不可能访客自定义解析 IP 就把访客 IP 给 ban 了吧
    longsays
        14
    longsays  
       23 天前 via Android
    https://github.com/XIU2/CloudflareSpeedTest 优选出自己本地最好的 IP ,然后 geoip:cloudflare 指向
    NSAgold
        15
    NSAgold  
       23 天前 via Android
    mosdns 有相关功能(实验性)
    当解析出来的 ip 属于 cloudflare 的 ip 段时,返回优选 ip
    XIU2
        16
    XIU2  
       23 天前   ❤️ 4
    我就是 CloudflareST 的作者,我最初也是和你一个想法和需求才写的这玩意,一开始我是用 hosts 但太麻烦于是后来研究出使用本地代理重定向的方式实现,但也有缺陷,最终我“进化”成了自己目前使用的方案也就是本地自建 DNS (运行在路由器上),另外这 3 种方案我都写过相关教程在我的项目里。

    我目前用的是 mosdns ( V4 ,因为 V5 改动太大,也没啥吸引我的,就懒得更新),核心配置就 4 段,分别是一个用来判断上游解析结果 IP 是不是匹配 Cloudflare CDN IP 的、一个是是用来判断 cname 是不是 Cloudflare CDN 的,一个是用来指定要修改为的 IP 地址的,最后一个则是实际判断代码。

    你可以去看一下别人在我项目里发的 mosdns 使用说明(不过后续都是我在排版更新完善):
    https://github.com/XIU2/CloudflareSpeedTest/discussions/317
    strobber16
        17
    strobber16  
       23 天前 via Android
    可行,但是有很多细节问题。cloudflare 的 ip 段不只是他们公开的那些,你需要一个有人维护的 ip 段表(否则域名判断会有漏网之鱼);并不是所有 ip 都是平等的,某些 ip 搭配某些域名会返回 403 。不过真要做的话,还有很多好玩的玩法,比如对没开启 ech/h3 的 cf 站点返回 https 记录使其支持 ech/h3
    asshell
        18
    asshell  
       23 天前 via Android
    @Love4Taylor 能给个邀请码吗? email:ZGZraXNxQGdtYWlsLmNvbQ
    xiaonian233
        19
    xiaonian233  
       23 天前
    @LYRYRYlo 求个邀请码 email:d2Roay5yaWNlY2FrZUBvdXRsb29rLmNvbQ==
    xiaonian233
        20
    xiaonian233  
       23 天前
    @Love4Taylor 求个邀请码 email:d2Roay5yaWNlY2FrZUBvdXRsb29rLmNvbQ==
    @LYRYRYlo 抱歉 at 错了
    Love4Taylor
        21
    Love4Taylor  
       23 天前 via iPhone
    @asshell
    @hadoop
    不是我不给而是我要两天后才能生成新的邀请码 23333
    kevinhwang
        22
    kevinhwang  
       23 天前 via Android
    @yxmyxmyyy 电信优不优选都差不多,丢包率 10+%。
    kevinhwang
        23
    kevinhwang  
       23 天前 via Android
    @heiher 感觉流量大了,worker 优选 ip 就问题大了。优选 ip 请求问题不大,一直在用,配合联通线路太爽
    privil
        24
    privil  
       23 天前
    @LYRYRYlo #11 哪个群?只有 tg 频道
    KaliZ
        25
    KaliZ  
       23 天前   ❤️ 1
    mosdns 是可以做到命中规则的网址返回“优选 IP”的
    我一般是在这个网站找几个 ip: https://www.wetest.vip/page/cloudflare/address_v4.html
    LYRYRYlo
        26
    LYRYRYlo  
    OP
       23 天前 via Android
    @privil 频道详情那有个群组链接,申请加入后会有机器人发消息给你,180s 内验证成功即可入群,届时会有人发个链接给你
    ColoThor
        27
    ColoThor  
       23 天前
    @Love4Taylor #5 NovaXNS 是收费的
    w7938940
        28
    w7938940  
       23 天前
    AdGuardHome 有没有办法可以这样做
    XIU2
        29
    XIU2  
       23 天前
    @XIU2 #16

    除了 Cloudflare CDN 外,我的 mosdns 还配置了 CloudFront 、Akamai 、CDN77 、Gcore 这些 CDN 的优选。

    只有 Fastly 有点麻烦,这个 CDN 每个域名的 IP 范围有规律但不能直接一个 IP 通用,只能通过上游 ECS 之类的方式指定解析区域会好点。

    另外,Akamai CDN 只有域名解析 cname 是 akamai .net 的才能通用一个 IP (但好在很多都是这个),不是这个的(如 Steam )则限制了 IP 范围。
    badgv
        30
    badgv  
       23 天前 via Android
    cf 的 cdn 我已经放弃了,没啥意思,目前只用 cf 的 ddns 更新
    gam2046
        31
    gam2046  
       23 天前
    @kevinhwang #22 这个还是和地区强相关,我这里,移动全天可以跑满千兆,联通次之,白天可以跑满,晚上大概只有 200Mbps ,电信最差,白天大概能跑到 600Mbps 左右,晚上只有 100Mbps

    但即使是最差的电信,看看网页,当作梯子都是问题不大的。
    kevinhwang
        32
    kevinhwang  
       23 天前
    @gam2046 那可确定你电信出口不是走广州的。上海还是北京?广东电信真是大冤种,价格奇贵,出口极差。
    gam2046
        33
    gam2046  
       23 天前
    @kevinhwang #32 刚刚看了下,上海出口,AS4134 ,我之前深圳呆过一段时间,电信确实贵
    IceHippo
        34
    IceHippo  
       23 天前
    有没有大牛能通俗解释下啥是优选 ip ,使用场景是什么
    kevinhwang
        35
    kevinhwang  
       23 天前
    @gam2046 广东,听懂请鼓掌!
    iijboom
        36
    iijboom  
       23 天前
    @ColoThor 闭源还收费啊,好像还没境内的点,要不起
    pokstay
        37
    pokstay  
       13 天前
    @iijboom 境内的点那可不兴开 hhhh ,充了钱有直连优化的线路,国内直连香港我四川大概 70ms 左右,跟 dnspod 差不多
    iijboom
        38
    iijboom  
       12 天前
    @pokstay 你们到 dnspod 延迟怎么会这么高,看了一下 itdog 似乎没这么高,最高是移动 40ms
    flyz
        39
    flyz  
       12 天前
    @IceHippo 比如移动访问套了 CF 的网站,默认是美国节点,
    因为 CF 全球大部分国家都有机房,优选 IP 就是选一个离自己更近的机房。
    然后使用场景就很简单了,比如用 ws 功能给一些线路差的 VPS 加速。
    pokstay
        40
    pokstay  
       5 天前
    @iijboom 我也不清楚,我是四川电信,阿里延迟最低快接近运营商水平,就 dnspod 延迟很高,不知道为什么,有时候还能蹦到 100+
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2564 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:22 · PVG 18:22 · LAX 03:22 · JFK 06:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.