以CentOS7为例

默认情况下,yum安装时会通过fastestmirror搜索镜像,但是仍然会找到比较慢的镜像。

fastestmirror原理 根据ping值决定用哪个镜像
缺点:没考虑丢包,没考虑下载速度

ping值查看

locate timedhosts.txt
cat /var/cache/yum/x86_64/7/timedhosts.txt

优化原则,能用mirrorlist的用mirrorlist,不能用的指定url

一、屏蔽国外域名后缀

改fastestmirror.conf
编辑 /etc/yum/pluginconf.d/fastestmirror.conf
exclude行可以指定排除域名,include_only行可以指定包含域名,需要配置的话把前面的#号去掉,配置上指定的域名即可,多个域名用逗号分割
将#exclude这行改成

exclude=.jp,.ac

然后保存

小技巧:
使用repoquery找到当前yum使用镜像的下载链接单独测试下载速度

yum install yum-utils
repoquery --location unzip

结果

http://mirrors.cqu.edu.cn/CentOS/7.9.2009/os/x86_64/Packages/unzip-6.0-21.el7.x86_64.rpm

可以直接放到浏览器下载测速

 

2.epel单独设置repo

centos中常用的源如下

base
epel
extras
updates

对应的镜像下载链接如下,可以在repo中找到

Centos 7下各源默认镜像链接
base源
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
替换变量后的链接
http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock

epel源
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
替换变量后的链接
https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=x86_64

extras源
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
替换变量后的链接
http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra=stock

update源
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
替换变量后的链接
http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock

关于repo中几个变量的含义

变量含义
$releasever
对应命令 rpm -qi centos-release
常见结果 6/7
$basearch
对应命令 arch
常见结果 x86_64
$infra
常见结果 stock/container 普通镜像是stock,CentOS cloud 镜像是container
其他变量可以查命令 man yum,man yum.conf
这个$infra参数当初是为CentOS cloud 镜像设计的,实际上后来没用了
参考 https://forums.centos.org/viewtopic.php?t=73894

关于默认返回的镜像列表
base/extras/update源默认会根据请求的IP地址返回国内的镜像
epel并没有根据国内IP返回国内镜像,而是会根据全球镜像权重排序返回前36个镜像,返回的权重是85-100的,国内的一个都没有

所以,改repo手动指定吧
baseurl可以指定多个网址,类似mirrolist只不过是静态的
CentOS 7 为例

cd /etc/yum.repos.d
cp epel.repo epel.repo.bak

编辑epel.repo 内容如下

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
        https://mirrors.huaweicloud.com/epel/7/$basearch
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug
        https://mirrors.huaweicloud.com/epel/7/$basearch/debug
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
        https://mirrors.huaweicloud.com/epel/7/$basearch
#metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

更新后,可以yum install 安装任意软件试一下速度,是不是变快了

update20210426:今天重新看了一下epel的镜像列表连接,权重最高的location为CN了

update20210506:重新看了下epel的镜像列表链接,权重前6个都是CN了