发现 GNU 镜像有个跳转服务:
GNU Mirror List - GNU Project - Free Software Foundation
You can use the generic url http://ftpmirror.gnu.org to automatically choose a nearby and up-to-date mirror.
比如我这跳转到中科大:
~ $ curl -I http://ftpmirror.gnu.org/
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.4.6 (Trisquel GNU/Linux)
Date: Wed, 25 Nov 2020 05:34:43 GMT
Connection: keep-alive
Location: http://mirrors.ustc.edu.cn/gnu
~ $ curl -I http://ftpmirror.gnu.org/emacs/emacs-27.1.tar.xz
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.4.6 (Trisquel GNU/Linux)
Date: Wed, 25 Nov 2020 05:41:33 GMT
Connection: keep-alive
Location: http://mirrors.ustc.edu.cn/gnu/emacs/emacs-27.1.tar.xz
给 ELPA 镜像也搞一个?CDN 用不起,就假装一个?
计算应该是用户和镜像之间的距离,从用户的 IP 地址得到用户的物理位置,然后选最近的镜像
感觉不太靠谱,我这里返回的是阿里云镜像地址,但实际上速度并不快:
⋊> time curl -s -o /dev/null http://mirrors.ustc.edu.cn/gnu
Executed in 637.65 millis fish external
usr time 6.12 millis 195.00 micros 5.92 millis
sys time 5.11 millis 1175.00 micros 3.94 millis
⋊> time curl -s -o /dev/null http://mirrors.aliyun.com/gnu
Executed in 727.04 millis fish external
usr time 20.14 millis 13.00 millis 7.14 millis
sys time 8.61 millis 3.56 millis 5.04 millis
另,阿里没有 elpa 镜像:
⋊> curl -s -o /dev/null -w '%{http_code}' http://mirrors.ustc.edu.cn/elpa
301
⋊> curl -s -o /dev/null -w '%{http_code}' http://mirrors.aliyun.com/elpa
404
http://ftpmirror.gnu.org/ 这个应该只是考虑用户和镜像之间的物理位置,哪个近就选那个。只是物理距离短,也不表示网速就更快。另,中科大在合肥,但是阿里云这个镜像用了CDN,有非常多物理位置,不清楚 GNU 这个服务是如何处理的。
物理距离完全不靠谱吧,还不如ping值有用。直接测试下速度是最靠谱的。在elpa 镜像选用上我就是直接测试速度选出最快的站点设置的。
gnu 那个跳转就相当于 cdn 吧,和 CDN 给的 cname 一个意思。
自己测下载速度当然最靠谱了,但是要你自己测,不是自动选择。
这个就是简单的跳转到本地区或者附近的站点吧,大概率速度还凑合。大概是这个思路,还是穷,没办法。