暴力搜索 CloudFlare 节点 IP - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
bybyte
V2EX    分享创造

暴力搜索 CloudFlare 节点 IP

  •  
  •   bybyte
    golangboy 2024-02-21 22:23:09 +08:00 5619 次点击
    这是一个创建于 598 天前的主题,其中的信息可能已经有所发展或是发生改变。

    众所周知,WS 套 CF 是既安全又免费(国内支持 WS 的 CDN 价格极高),但是有些地区到 CF 默认分配的 IP 速度极慢,延迟几百不等,开个 Google 转半天。

    所以写了个小工具,直接暴力搜索 CloudFlare 所有服务 IP 节点,最后选出速度最快的服务节点

    https://github.com/golangboy/fast-cloudflare

    有 docker 的直接运行就好

    docker run -t golangboyme/fast-cloudflare 

    我找到一个延迟 20 多的 cf 节点

     Downloads ping 103.21.244.248 PING 103.21.244.248 (103.21.244.248): 56 data bytes 64 bytes from 103.21.244.248: icmp_seq=0 ttl=43 time=20.606 ms 64 bytes from 103.21.244.248: icmp_seq=1 ttl=43 time=20.243 ms 

    注意:搜索的时候会占用大量的 TCP 资源,这时候上网体验不佳,代码里可以自己调整并发量

    28 条回复    2024-03-09 13:09:03 +08:00
    dianso
        1
    dianso  
       2024-02-22 03:55:54 +08:00
    已经安全用了四五年了
    没被封过一次
    ws cf
    molezznet
        2
    molezznet  
       2024-02-22 08:57:00 +08:00
    好像 cf 网上讨论主要是用段时间会阻断几分钟
    https://github.com/XIU2/CloudflareSpeedTest/issues/217

    另外支持 v6 可能会不容易阻断些
    Stoney
        3
    Stoney  
       2024-02-22 08:59:34 +08:00 via iPhone
    这就是 cf 优选 ip 吧
    godmiracle
        4
    godmiracle  
       2024-02-22 09:03:09 +08:00
    和 CloudflareST 寻找最优 ip 原理一样吗
    molezznet
        5
    molezznet  
       2024-02-22 09:03:45 +08:00
    Performing first stage
    17743/1524736

    这…… 看起来是很暴力啊
    molezznet
        6
    molezznet  
       2024-02-22 09:48:47 +08:00
    有没有可能随机一个比例, 这 2 个 stage 还没跑完 ……
    yuanmomo
        7
    yuanmomo  
       2024-02-22 09:58:24 +08:00 via iPhone
    op 这个版本扫描的是 cf 的 ip 。还有一个东西是扫国内 ip ,然后往 ip 发送一个 https 的请求,带上一个域名,通过返回值来判断这个机器是不是一个会转发请求的类似 cdn 的节点。这个可以明确是有的,曾经有用过,用了好几年,但是是别人给我的,这样通过这个节点,随随便便上 10MB/s 。坏处就是这个节点随时可能会挂,挂了需要继续找。
    bybyte
        8
    bybyte  
    OP
       2024-02-22 09:58:52 +08:00 via iPhone
    @molezznet 我用了半个月了,目前还没问题
    bybyte
        9
    bybyte  
    OP
       2024-02-22 09:59:21 +08:00 via iPhone
    @yuanmomo 你说的是扫那些反代 cf 的服务器 ip 吧
    bybyte
        10
    bybyte  
    OP
       2024-02-22 10:00:17 +08:00 via iPhone
    @molezznet 毕竟 100 多万个 ip ,确实,整个要跑要花几十分钟
    zictos
        11
    zictos  
       2024-02-22 10:09:43 +08:00
    @bybyte #10 CloudflareST 每次只跑 6000 个左右的 ip ,不知道每次的 ip 变不变的,据说是每次每个 ip 段随机使用一个 ip
    bybyte
        12
    bybyte  
    OP
       2024-02-22 10:11:54 +08:00 via iPhone
    @zictos 6000 个太少了吧,总共 100 多万个 ip 呢
    zictos
        13
    zictos  
       2024-02-22 10:22:44 +08:00
    @bybyte #12 反正我用他的脚本跑出来的延迟一般都有 100 多 ms 以上,不过速度也可以接受,比不使用优选 ip 好了无数倍,他的每次测完延迟也会测试前面 10 个延迟最低的 ip 的下载速度,按下载速度排序,也可以在他的脚本执行完毕后自己根据延迟和下载速度并用一定的权重计算一个分数,找出综合的最优 ip 。
    我在考虑把每次用过的 ip ( hosts 中用过的)都记录到数据库并添加使用时的时间戳,以后再测速的时候再从最近用过的 ip 中挑 10 个出来一起测。
    molezznet
        14
    molezznet  
       2024-02-22 10:31:56 +08:00
    @zictos 好吧 还真没记录过那些使用过的
    bybyte
        15
    bybyte  
    OP
       2024-02-22 10:39:41 +08:00 via iPhone
    @zictos 我是所有都扫一遍出来,再排序,按下载速度排序这个功能确实可以加一下
    molezznet
        16
    molezznet  
       2024-02-22 10:47:12 +08:00
    @bybyte 别,延迟好挺好了。否则时间更久呐。

    ![image]( https://i2.100024.xyz/2024/02/22/hay68w.webp)
    一个多小时
    molezznet
        17
    molezznet  
       2024-02-22 10:49:15 +08:00
    另一个电脑更慢,冲 2 小时去了
    [img]https://i2.100024.xyz/2024/02/22/hc50xf.webp[/img]
    zictos
        18
    zictos  
       2024-02-22 11:01:16 +08:00
    @bybyte #15 下载不能测太多,要不太占资源,也太占 cf 的流量,CloudflareST 这个程序是默认只测延迟最低的 10 个 ip 的下载速度,排序要综合考虑,而不是单纯按下载速度或延迟排序。

    CloudflareST 生成测速结果的 result.csv 文件的格式如下
    IP 地址,已发送,已接收,丢包率,平均延迟,下载速度 (MB/s)
    104.18.17.65,4,4,0.00,173.89,15.90
    104.19.139.124,4,4,0.00,156.60,15.80
    104.19.244.185,4,4,0.00,156.82,14.50
    104.16.120.31,4,4,0.00,157.34,14.30
    104.21.233.134,4,4,0.00,157.53,14.21
    104.18.27.152,4,4,0.00,158.02,13.20
    104.18.29.225,4,4,0.00,158.45,13.12
    104.21.228.41,4,4,0.00,159.05,12.50
    104.18.125.115,4,4,0.00,159.28,11.50
    104.19.132.67,4,4,0.00,160.25,11.00

    # 找出上述 ip 的最优 ip 的 python 代码
    import pandas as pd
    df = pd.read_csv('result.csv') # 读取 result.csv 文件
    total_latency = df['平均延迟'].sum()
    total_download_speed = df['下载速度 (MB/s)'].sum()
    df['Latency_Percentage'] = df['平均延迟'] / total_latency
    df['Download_Speed_Percentage'] = -(df['下载速度 (MB/s)'] / total_download_speed)
    df['Composite_Score'] = df['Latency_Percentage'] + df['Download_Speed_Percentage']
    best_ip_row = df.loc[df['Composite_Score'].idxmin()]
    first_ip = best_ip_row['IP 地址']
    print(first_ip) # 输出 104.19.139.124
    akirageorge
        19
    akirageorge  
       2024-02-22 11:10:38 +08:00
    能不能出一个针对 ipv6 的 cf 地址延迟的搜索程序呢?
    molezznet
        20
    molezznet  
       2024-02-22 11:12:45 +08:00
    @akirageorge 也有需求

    不过这样只能随机选些,量太大
    bybyte
        21
    bybyte  
    OP
       2024-02-22 11:37:02 +08:00 via iPhone
    @akirageorge 完全没问题,过两天回学校就加上
    bybyte
        22
    bybyte  
    OP
       2024-02-22 11:38:21 +08:00 via iPhone
    @zictos 是的,我的意思是对最后的最优的 n 个结果再进行一次下载速度测试
    bybyte
        23
    bybyte  
    OP
       2024-02-22 11:40:21 +08:00 via iPhone
    @molezznet 因为你第一阶段扫出来的 ip 太多了,而第二阶段 ping 测延迟不能太大并发,不然整个网络拥堵了测出来的延迟不准。
    bybyte
        24
    bybyte  
    OP
       2024-02-22 11:41:32 +08:00 via iPhone
    @molezznet 后面我考虑一下用户自定义 ip 数量吧,可以按一定比例
    iqoo
        25
    iqoo  
       2024-02-22 11:58:30 +08:00
    先用 masscan 初筛一下,可以快几百倍。
    yuanmomo
        26
    yuanmomo  
       2024-02-22 20:25:30 +08:00 via iPhone
    @bybyte 对,但是不止 cf ,还有 aws 的 cloudfront ,虽然我没懂为啥国内会有这些机器的存在,但是确实是有。
    sbilly
        27
    sbilly  
       2024-03-08 14:19:05 +08:00
    golangboy 用 rust 了?
    bybyte
        28
    bybyte  
    OP
       2024-03-09 13:09:03 +08:00
    @sbilly 是的。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1149 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:47 PVG 01:47 LAX 10:47 JFK 13:47
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86