国内镜像源设置

说明

  • Linux软件源、开发语言依赖源、容器镜像源基本都在国外,因此国内访问非常慢
  • 国内各大云厂商基本都做了对应的镜像源,果断用起来!
  • 如无特殊情况,都使用清华的源https://opentuna.cn作为展示

更新

Linux系统

软件源基本是通用的

CentOS 6/7/8

系统源配置

1
2
3
4
5
export REPO_MIRROR="https://opentuna.cn/centos"
sed -e "s!#baseurl!baseurl!g" \
-e "s!mirrorlist!#mirrorlist!g" \
-e "s!http://mirror.centos.org!${REPO_MIRROR}!g" \
-i /etc/yum.repos.d/CentOS-Base.repo

EPEL源配置

1
2
3
4
5
export REPO_MIRROR="https://opentuna.cn/epel"
sed -e "s!^metalink=!#metalink=!g" \
-e "s!^#baseurl=!baseurl=!g" \
-e "s!https://download.fedoraproject.org/pub/epel!${REPO_MIRROR}!g" \
-i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo

Debian9/10/11

配置说明

1
2
3
4
5
export REPO_MIRROR="https://opentuna.cn"
sed -e "s@http://deb.debian.org@${REPO_MIRROR}@g" \
-e "s@http://security.debian.org@${REPO_MIRROR}@g" \
-e "s@^deb-src@# deb-src@g" \
-i /etc/apt/sources.list

Ubuntu16.04/18.04/20.04

配置说明

1
2
3
4
5
export REPO_MIRROR="https://opentuna.cn"
sed -e "s@http://.*archive.ubuntu.com@${REPO_MIRROR}@g" \
-e "s@http://.*security.ubuntu.com@${REPO_MIRROR}@g" \
-e "s@^deb-src@# deb-src@g" \
-i /etc/apt/sources.list

开发语言

Python

pip

临时使用

1
pip install -i https://opentuna.cn/pypi/web/simple some-package

配置方法

直接写配置文件
1
2
3
4
5
6
7
8
9
mkdir -p ~/.pip
cat > ~/.pip/pip.conf <<EOF
[global]
index-url = https://opentuna.cn/pypi/web/simple
trusted-host = opentuna.cn
timeout = 120
[install]
trusted-host = opentuna.cn
EOF
命令配置(这里针对较新版本的pip)
  • 清华大学
1
2
3
4
pip config set global.index-url https://opentuna.cn/pypi/web/simple
pip config set global.trusted-host opentuna.cn
pip config set global.timeout 120
pip config set install.trusted-host opentuna.cn
  • 阿里云公网
1
2
3
4
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config set global.trusted-host mirrors.aliyun.com
pip config set global.timeout 120
pip config set install.trusted-host mirrors.aliyun.com
  • 阿里云内网
1
2
3
4
pip config set global.index-url http://mirrors.cloud.aliyuncs.com/pypi/simple/
pip config set global.trusted-host mirrors.cloud.aliyuncs.com
pip config set global.timeout 120
pip config set install.trusted-host mirrors.cloud.aliyuncs.com

conda

  • Linux系统保存到~/.condarc
  • MacOS系统保存到~/.condarc
  • Windows系统保存到%HOMEPATH%/.condarc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

NPM

淘宝

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 开源镜像
https://npmmirror.com/mirrors
# Node.js 镜像
https://npmmirror.com/mirrors/node
# alinode 镜像
https://npmmirror.com/mirrors/alinode
# phantomjs 镜像
https://npmmirror.com/mirrors/phantomjs
# ChromeDriver 镜像
https://npmmirror.com/mirrors/chromedriver
# OperaDriver 镜像
https://npmmirror.com/mirrors/operadriver
# Selenium 镜像
https://npmmirror.com/mirrors/selenium
# Node.js 文档镜像
https://npmmirror.com/mirrors/node/latest/docs/api/index.html
# NPM 镜像
https://npmmirror.com/mirrors/npm/
# electron 镜像
https://npmmirror.com/mirrors/electron/
# node-inspector 镜像
https://npmmirror.com/mirrors/node-inspector/

华为云

1
2
3
4
5
6
7
8
9
10
11
12
13
# node-registry的镜像地址
https://mirrors.huaweicloud.com/repository/npm/
# nodejs工具的镜像地址
https://mirrors.huaweicloud.com/nodejs
# Node-Sass的镜像地址
https://mirrors.huaweicloud.com/node-sass
# 浏览器引擎驱动镜像地址
https://mirrors.huaweicloud.com/phantomjs
https://mirrors.huaweicloud.com/chromedriver
https://mirrors.huaweicloud.com/operadriver
# Electron和Python的镜像地址
https://mirrors.huaweicloud.com/electron/
https://mirrors.huaweicloud.com/python

单次使用

1
npm install --registry=https://registry.npmmirror.com PACKAGE

配置方法

这里以华为云为例,演示一下

直接写配置文件

  • Linux系统保存到~/.npmrc
  • MacOS系统保存到~/.npmrc
  • Windows系统保存到%HOMEPATH%/.npmrc
1
2
3
4
5
6
7
8
registry=https://repo.huaweicloud.com/repository/npm/
disturl=https://repo.huaweicloud.com/nodejs
sass_binary_site=https://repo.huaweicloud.com/node-sass
phantomjs_cdnurl=https://repo.huaweicloud.com/phantomjs
chromedriver_cdnurl=https://repo.huaweicloud.com/chromedriver
operadriver_cdnurl=https://repo.huaweicloud.com/operadriver
electron_mirror=https://repo.huaweicloud.com/electron/
python_mirror=https://repo.huaweicloud.com/python

命令配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 设置node-registry的镜像地址
npm config set registry https://repo.huaweicloud.com/repository/npm/
# 设置nodejs工具的镜像地址
npm config set disturl https://repo.huaweicloud.com/nodejs
# 设置Node-Sass的镜像地址
npm config set sass_binary_site https://repo.huaweicloud.com/node-sass
# 设置浏览器引擎驱动镜像地址
npm config set phantomjs_cdnurl https://repo.huaweicloud.com/phantomjs
npm config set chromedriver_cdnurl https://repo.huaweicloud.com/chromedriver
npm config set operadriver_cdnurl https://repo.huaweicloud.com/operadriver
# 设置Electron和Python的镜像地址
npm config set electron_mirror https://repo.huaweicloud.com/electron/
npm config set python_mirror https://repo.huaweicloud.com/python
# 清理npm缓存
npm cache clean -f

Golang

要求

  1. Golang 1.11+
  2. go env会读取系统环境变量,所以配置起来很简单
  3. 开启Go Module
  4. Golang 1.13+里面的GOPROXY变成了数组,可以定义多个Proxy

阿里云

1
2
https://mirrors.aliyun.com/goproxy/
https://mirrors.cloud.aliyuncs.com/goproxy/

华为云

1
https://mirrors.huaweicloud.com/goproxy

腾讯云

1
https://mirrors.cloud.tencent.com/go/

七牛云

1
https://goproxy.cn

针对Golang 1.11

1
2
export GO111MODULE=on
export GOPROXY='https://goproxy.cn'

针对Golang 1.13+

1
2
3
4
5
export GO111MODULE=on
export GOPROXY='https://goproxy.cn,https://mirrors.aliyun.com/goproxy,direct'
# 这里把git.example.com设置为私有的git服务器
export GOPRIVATE="git.example.com"
export GOSUMDB="sum.golang.google.cn"

Maven

阿里云

阿里云代理了Maven的公共仓库,这里是说明文档

腾讯云

1
http://mirrors.cloud.tencent.com/nexus/repository/maven-public/

华为云

1
https://mirrors.huaweicloud.com/repository/maven/

Maven配置

打开 Maven 的配置文件(windows机器一般在maven安装目录的conf/settings.xml),在<mirrors></mirrors>标签中添加 mirror 子节点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
<mirror>
<id>nexus-tencentyun</id>
<mirrorOf>*</mirrorOf>
<url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>
</mirrors>

如果想使用其它代理仓库,可在<repository></repository>节点中加入对应的仓库使用地址。以使用spring代理仓为例:

1
2
3
4
5
6
7
8
9
10
<repository>
<id>spring</id>
<url>https://maven.aliyun.com/repository/spring</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>

Gradle配置

在 build.gradle 文件中加入以下代码:

1
2
3
4
5
6
7
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/public/' }
mavenLocal()
mavenCentral()
}
}

如果想使用 maven.aliyun.com 提供的其它代理仓,以使用 spring 仓为例,代码如下:

1
2
3
4
5
6
7
8
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/spring/'}
mavenLocal()
mavenCentral()
}
}

容器

DockerHub

说明

  • docker配置文件路径/etc/docker/daemon.json
  • 多个mirrors地址可以合并

配置方法

1
2
3
4
5
6
7
8
9
{
"registry-mirrors": [
"https://pqbap4ya.mirror.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}

Kubernetes软件源

说明

  • 这里用阿里云的源

CentOS 7/8

1
2
3
4
5
6
7
8
9
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

Debian 9/10

1
2
3
4
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-stretch main
EOF

Ubuntu 16.04/18.04/20.04

1
2
3
4
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

k8s.gcr.io

国内齐全好用版本新的源推荐【张馆长】维护的,项目地址

  • registry.aliyuncs.com/k8sxio

quay.io

国内没有公有云厂商对外开放服务,只有网友自己维护的一些源

  • quay.azk8s.cn(于 2020年4月2日限制了对 Azure China 之外的 IP访问)
  • quay.mirrors.ustc.edu.cn (从中科大校外对 Quay Container Registry 的镜像缓存的访问会被 302 重定向至源站)
  • quay-mirror.qiniu.com (已停止公网DNS解析)

网友维护

张馆长

https://github.com/zhangguanzhang/google_containers

本仓库只同步k8s.gcr.io ==> registry.aliyuncs.com/k8sxio

特性

  • 不依赖 Docker 运行
  • 同步期间不占用本地磁盘空间(直接通过标准库转发镜像)
  • 可控的并发同步(优雅关闭/可调节并发数量)
  • 核心拷贝方法引用的containers/image,部分代码借鉴了mritd
  • 利用 boltdb 存储每个镜像 manifest 信息的 crc32 校验值,通过比对判断是否需要同步,而不是每次请求目标仓库
  • 把 boltdb 文件放 docker镜像里存在 dockerhub 上,多次运行 action 来同步

漠然

https://github.com/mritd/imgsync

特性

  • 不依赖 Docker 运行
  • 基于 Manifests 同步
  • 支持 Fat Manifests 镜像同步
  • Manifests 文件本地 Cache,按需同步
  • 同步期间不占用本地磁盘空间(直接通过标准库转发镜像)
  • 可控的并发同步(优雅关闭/可调节并发数量)
  • 按批次同步,支持同步指定区间段镜像
  • 支持多仓库同步(后续仓库增加请提交 issue)
  • 支持生成同步报告,同步报告推送 Telegram
RegistryAddressDocker Hub
Flannelquay.io/coreos/flannelgcrxio/quay.io_coreos_flannel
kubeadmk8s.gcr.iogcrxio/k8s.gcr.io_*
Helmgcr.io/kubernetes-helmgcrxio/gcr.io_kubernetes-helm_*
Istiogcr.io/istio-releasegcrxio/gcr.io_istio-release_*
Linkerdgcr.io/linkerd-iogcrxio/gcr.io_linkerd-io_*
Spinnakergcr.io/spinnaker-marketplacegcrxio/gcr.io_spinnaker-marketplace_*
Distrolessgcr.io/distrolessgcrxio/gcr.io_distroless_*
Samplesgcr.io/google-samplesgcrxio/gcr.io_google-samples_*
KNativegcr.io/knative-releasesgcrxio/gcr.io_knative-releases_*