V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chesha1
V2EX  ›  问与答

镜像站为什么不做成 CDN 的模式

  •  
  •   chesha1 · 2023-10-17 20:06:37 +08:00 · 1399 次点击
    这是一个创建于 402 天前的主题,其中的信息可能已经有所发展或是发生改变。
    docker 镜像,或者别的语言的包管理器( pip 等)都是在本地添加境内镜像站的地址,这样比较麻烦

    为什么不能像 CDN 一样,DNS 解析的时候,给用户返回 CDN 的地址,这样对于用户体验更好

    如果把镜像站,作为官方源的"CDN",再有一个"DNS"服务器解析拉取包的请求,用户不就可以无感高速使用了吗?为什么大家没有这么做
    13 条回复    2023-10-18 09:03:00 +08:00
    swuzjb
        1
    swuzjb  
       2023-10-17 20:15:50 +08:00
    所以 本地镜像地址不就是“DNS”了么 要不然 官方要管理所有的镜像?
    kkocdko
        2
    kkocdko  
       2023-10-17 20:24:34 +08:00   ❤️ 1
    先问是不是再问为什么。

    也有这样做的,比如 npmmirror 虽然只有一个域名,但是有多个节点。要多个域名也可以,比如 Fedora 就有 metalink ,就是你所说的模式,请求拉回来一个镜像站列表,然后从列表里选一个。Ubuntu 似乎也有类似的自动换源的措施。
    Shiroka
        3
    Shiroka  
       2023-10-17 20:29:41 +08:00 via iPhone   ❤️ 2
    npmjs.org dockerhub.com 等可以备案吗?不能备案指向境内服务器你猜会发生什么?
    chesha1
        4
    chesha1  
    OP
       2023-10-17 20:40:18 +08:00
    @swuzjb 我的意思就是,为什么没有把用户的劳动转移到官方啊。官方管理这样更有效率,只要添加一次镜像,所有用户就都能用了,如果用户管理,每个人都要在自己本地设置
    Vegetable
        5
    Vegetable  
       2023-10-17 20:41:33 +08:00   ❤️ 2
    不是一个层面的东西,docker 比较特殊,他确实叫 mirror ,pypi 和 npm 实际上都是一种独立的"仓库",人家本来不是为了解决你网络不好的问题的,你的 cdn 模式和仓库模式只有一小块是交叉的,况且你一个受信机构怎么把流量随便分发给第三方。
    chesha1
        6
    chesha1  
    OP
       2023-10-17 20:47:53 +08:00
    @Shiroka 啊,抱歉我没太明白你的意思。一个没有备案的网站,用了中国境内的 CDN ,如果规模很大,会有什么风险吗?比如 apple.com ,不是 apple.com.cn ,就没有备案,用站长之家看了一下,应该是用了国内的 cdn ,也没出什么问题
    Conantv2
        7
    Conantv2  
       2023-10-17 20:56:56 +08:00   ❤️ 2
    @chesha1 apple.com 有备案的,京 ICP 备 10214630 号,苹果电子产品商贸(北京)有限公司

    没有备案的域名解析到国内 CDN ,不是有没有风险的问题,而是直接就拒绝访问了
    oldshensheep
        8
    oldshensheep  
       2023-10-17 20:57:17 +08:00   ❤️ 1
    说到 CDN ,其实现有的镜像站做成 IPFS 会更好
    IPFS 可以自动发现网络中的 “镜像”,并且可以从多个源下载。如果要贡献带宽也只需要本地储存一份,启动个 IPFS 服务


    做成你说的模式其实是有的,不过和你说的有的差别,功能上是一样的。比如 termux ,termux 的 pkg 内置了一些镜像站,在连接的时候会测试镜像站的可用性还有 ping ,会选择最低延迟的那个服务器
    ysc3839
        9
    ysc3839  
       2023-10-17 21:06:20 +08:00 via Android   ❤️ 1
    有没有可能,那些官方服务器就已经部署了 CDN ,只是你访问 CDN 仍然慢而已。
    至于为什么官方不把 DNS 解析到第三方的镜像站,大概是为了掌握控制权。像 Docker Hub 是有付费服务的,那显然不能解析到第三方,不然出了问题第三方没法负责。
    sblid
        10
    sblid  
       2023-10-17 21:16:25 +08:00   ❤️ 1
    镜像这种方案主要是历史留下来的,毕竟以前没有 CDN 这种概念。但现在官方源普遍都已经套 CDN 了,不存在你说的问题。

    中国局域网的锅就不要赖别人了,甚至你应该庆幸镜像方案能留下来,至少中国用户用起来还挺方便的。
    ysc3839
        11
    ysc3839  
       2023-10-17 22:06:16 +08:00 via Android
    @Conantv2 apple.com 存疑,曾经苹果用的是 apple.com/cn 后面改成了 apple.com.cn 。有说法称虽然 apple.com 曾经备案成功,但是后面备案要求更改了,需要大陆的域名注册商管理才能备案,因此假如因为某些原因失去了备案,就必须要很复杂的手续才能重新备案。
    docx
        12
    docx  
       2023-10-17 22:32:31 +08:00 via iPhone
    所有镜像都统一到官方域名底下,那如果官方域名被墙了( DNS 污染),你就完全无法下载资源了
    Shiroka
        13
    Shiroka  
       2023-10-18 09:03:00 +08:00 via iPhone
    @ysc3839 正解。

    备案首先需要域名在国内注册商,既然在国内注册商就要遵守中国法律法规,这点劝退绝大多数;
    另外,备案需要国内公司或个人资质,一般没有会为了备案专门开个公司的;
    其次 .org 暂时不能备案,而很多项目的域名因为开源或者公益性质在用 .org ;
    第三国内 cdn 流量价格相较于国外还是比较贵,并且国内的生态并不好,许多能拿到 cloudflare / akamai 这类国外 cdn 赞助的并不能在国内也拿到赞助,自己付费的话价格偏高。

    我能想到的原因就这些,不全面。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   907 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 21:48 · PVG 05:48 · LAX 13:48 · JFK 16:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.