场景组合包 · 4 个工具 · 收录于 2026-08-29

国内网络一键配源 部分实测

新装一台机器,pip/npm/go/docker 全要配国内源;每篇教程各讲各的,容易配错、配完不知道有没有生效

场景

新装了一台机器(或重装系统),第一步永远是配国内源:pip、npm、go、docker 全要配,不然装什么都超时。但每篇教程各讲各的:有的让你改全局、有的让你改用户级、有的配完不知道有没有生效。你需要的是一份「一次配齐 + 每步可验证」的清单。

本组合包把四个包管理器的国内源配置命令 + 验证命令编排成套:pip → npm → Go → Docker,前三项纯用户级配置(无需 root、不重启任何服务),Docker 系统级放最后(可选)。它是配置方案不是插件——不新造工具,只是把官方支持的配置机制编排成套。

组合成员 (4)

pip(清华 PyPI 镜像)

下载:配置写入 `~/.config/pip/pip.conf`(用户级,无需 root;官方源地址 https://pypi.org/simple 为默认,不下载任何东西)
版本要求:pip >= 21(旧版 pip 对 index-url 支持一致,无硬性要求)

pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip3 config set global.trusted-host pypi.tuna.tsinghua.edu.cn
# 验证:读取当前生效配置
pip3 config list

npm(npmmirror 镜像)

下载:配置写入 `~/.npmrc`(用户级;官方源 https://registry.npmjs.org/ 为默认)
版本要求:npm >= 7(`npm config set` 行为一致,无硬性要求)

npm config set registry https://registry.npmmirror.com
# 验证:应输出 https://registry.npmmirror.com/
npm config get registry

Go(goproxy.cn)

下载:配置写入 `~/.config/go/env`(用户级,`go env -w` 官方机制;默认代理 https://proxy.golang.org 国内不可直连)
版本要求:Go >= 1.13(模块代理机制自 1.13 起为默认)

go env -w GOPROXY=https://goproxy.cn,direct
# 验证:应输出 https://goproxy.cn,direct
go env GOPROXY

Docker(daemon.json registry-mirrors)

下载:配置写入 `/etc/docker/daemon.json`(系统级,需 root;改动后重启 daemon,**影响运行中容器**,属可选步骤)
版本要求:Docker Engine >= 20.10(registry-mirrors 字段长期支持)

# 已有 daemon.json 时先备份再合并,不要覆盖原有配置
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak 2>/dev/null || true
sudo tee /etc/docker/daemon.json <<'EOF'
{
  "registry-mirrors": ["https://docker.1ms.run", "https://docker.m.daocloud.io"]
}
EOF
sudo systemctl restart docker
# 验证:输出配置中的 mirror 地址
docker info | grep -A 2 "Registry Mirrors"

方案总览

配置项管什么写到哪里
pip 清华源Python 包下载加速~/.config/pip/pip.conf(用户级)
npm npmmirrorNode 包下载加速~/.npmrc(用户级)
Go goproxy.cnGo 模块代理~/.config/go/env(用户级)
Docker 镜像加速镜像拉取加速/etc/docker/daemon.json(系统级,需 root)

顺序逻辑:前三项互不依赖,按「使用频率」配;每步配完立刻验证,失败只影响单步。Docker 放最后:系统级 + 重启 daemon 影响运行中容器,非必须(仅 Docker Hub 拉取失败时启用)。

快速开始

一键脚本由本文档自动生成(渲染后位于 pages/combos/combo-mirror-setup.sh),逐条执行:
bash pages/combos/combo-mirror-setup.sh
  • 配完你会得到:pip/npm/go 三个用户级源生效 + Docker 镜像加速(可选)。
  • 预计耗时:1-2 分钟。全部命令零外部下载(只写配置),配源本身不耗流量。
  • 前置条件:pip/npm/go 已安装;Docker 步骤需 Docker Engine >= 20.10 + root。
想弄明白每一步在干什么、配错了怎么恢复 → 看「逐步教学」。一键脚本出问题 → 按逐步教学手动执行定位。

逐步教学

第 1 步:配 pip(清华 PyPI 镜像)

pip 的源配在用户级配置文件 ~/.config/pip/pip.conf,pip3 config set 是官方机制,无需 root、不影响系统。配完立刻 pip3 config list 读回验证。

pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip3 config set global.trusted-host pypi.tuna.tsinghua.edu.cn
# 验证:读取当前生效配置
pip3 config list

预期输出: config list 显示 global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'

装好确认:

  • pip3 config list 读回 index-url;
  • 真实下载验证(可选):pip3 download --no-deps -d /tmp/pip-test <小包名> 速度快于官方源。

卡住怎么办:

  • 改错配置想还原 → pip3 config unset global.index-url 或直接删 ~/.config/pip/pip.conf。

第 2 步:配 npm(npmmirror)

npm 的源配在 ~/.npmrc,npm config set 官方机制,用户级。配完立刻 npm config get registry 验证。

npm config set registry https://registry.npmmirror.com
# 验证:应输出 https://registry.npmmirror.com/
npm config get registry

预期输出: https://registry.npmmirror.com/

装好确认:

  • npm config get registry 输出 npmmirror 地址;
  • 真实下载验证(可选):npm view <小包名> version 秒回。

卡住怎么办:

  • 想还原官方源 → npm config set registry https://registry.npmjs.org/。

第 3 步:配 Go(goproxy.cn)

Go 的模块代理用 go env -w 写入 ~/.config/go/env(官方机制,Go >= 1.13)。默认代理 proxy.golang.org 国内不可直连,配成 goproxy.cn 后 ,direct 后缀保留直连回退。

go env -w GOPROXY=https://goproxy.cn,direct
# 验证:应输出 https://goproxy.cn,direct
go env GOPROXY

预期输出: https://goproxy.cn,direct

装好确认:

  • go env GOPROXY 输出 goproxy.cn 地址;
  • 真实下载验证(可选):在有 go.mod 的项目里 go mod download 速度正常。

卡住怎么办:

  • 想还原默认 → go env -w GOPROXY=https://proxy.golang.org,direct 或 go env -u GOPROXY。

第 4 步:配 Docker(镜像加速,可选)

Docker 的 registry-mirrors 写在系统级 /etc/docker/daemon.json,需要 root,改完重启 daemon 会短暂影响运行中容器——所以放最后、非必须(Docker Hub 拉取失败才需要)。已有 daemon.json 时先备份再合并,不要覆盖原有配置。

# 已有 daemon.json 时先备份再合并,不要覆盖原有配置
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak 2>/dev/null || true
sudo tee /etc/docker/daemon.json <<'EOF'
{
  "registry-mirrors": ["https://docker.1ms.run", "https://docker.m.daocloud.io"]
}
EOF
sudo systemctl restart docker
# 验证:输出配置中的 mirror 地址
docker info | grep -A 2 "Registry Mirrors"

预期输出: docker info 的 Registry Mirrors 段显示两个 mirror 地址

装好确认:

  • docker info | grep -A 2 "Registry Mirrors" 显示 mirror;
  • 真实拉取验证(可选):docker pull alpine:latest 速度正常。

卡住怎么办:

  • daemon 起不来(JSON 语法错)→ 用备份还原:sudo cp /etc/docker/daemon.json.bak /etc/docker/daemon.json && sudo systemctl restart docker。
  • 镜像加速失效(mirror 挂了)→ 换其它公共 mirror 地址,或临时移除 registry-mirrors。
note: Docker 步骤未实测(需 root + 重启 daemon,动用户环境,按红线不碰);配置片段与验证命令已给出,待有隔离 Docker 环境时补测。

装完验收(一步到位)

作用:配完跑下面一条命令块,全绿 = 本组合包就绪;某条失败 → 回「逐步教学」对应步骤定位。
pip config list | grep -i index-url
npm config get registry
go env GOPROXY
docker info | grep -A4 'Registry Mirrors'

预期输出: 清华 index-url;https://registry.npmmirror.com/;https://goproxy.cn,direct;Registry Mirrors 段显示镜像地址。四源全绿 = 镜像配齐

注:成员级配置命令均已实测;改 daemon.json 后需重启 Docker daemon 生效。

日常使用

启动与入口

  • 无服务无进程:配置是静态的,包管理器每次下载自动走 mirror。
  • 换网络环境(校园网/代理/流量)时 mirror 依然生效,无需重配。

常用操作

  1. 换源后第一次真实下载验证:pip3 download / npm view / go mod download 各来一个小的。
  2. 检查当前生效配置:pip3 config list / npm config get registry / go env GOPROXY。
  3. Docker 拉取失败时:确认 daemon.json 配置 + docker info 的 Registry Mirrors 段。

数据与目录

  • pip:~/.config/pip/pip.conf;npm:~/.npmrc;Go:~/.config/go/env;Docker:/etc/docker/daemon.json(备份在同目录 .bak)。

卸载与清理

按配置项逐个还原官方源:

pip3 config unset global.index-url
npm config set registry https://registry.npmjs.org/
go env -u GOPROXY
# Docker:还原备份(若有)
sudo cp /etc/docker/daemon.json.bak /etc/docker/daemon.json && sudo systemctl restart docker
提示:前三项还原无副作用;Docker 还原同样会重启 daemon(影响运行中容器)。

安装顺序

  1. pip → npm → Go:三个用户级配置互不依赖,按「使用频率」顺序配;每步配完立刻验证(config list / config get / go env),失败只影响单步。
  2. Docker 放最后:系统级 + 重启 daemon 影响运行中容器,非必须(仅 Docker Hub 拉取失败时启用;对应问题条目 docker-hub-pull-fail 即此场景)。
  3. 与代理共存:开着代理时 mirror 依然生效(包管理器直连 mirror 更快);校园网/流量环境下 mirror 是主通道,代理作为 mirror 失效时的备选——不要同时配「代理 + 指向被墙源的 mirror」。

依赖警告

  • 冲突:四成员相互无共享写面(pip.conf / .npmrc / go env / daemon.json 互不重叠)→ compatible;与「已配置代理」场景:mirror 与代理可共存,但 npm/pip 若设了全局 proxy 会优先走代理,验证命令以实际下载测速为准(possible-compatible,构造性判定)。
  • 版本:pip/npm/go/docker 均无硬性版本下限之外的要求;docker 步骤需要 Docker Engine 已安装。
  • 环境:pip/npm/go 三项纯用户级(无需 root、不重启任何服务);docker 项需 root + daemon 重启(影响运行中容器,务必备份 daemon.json)。
  • 国内网络:本组合包全部命令无外部下载(只写配置),配源本身零流量;验证建议用真实小下载(pip3 download / npm view / go mod download)在 mirror 与官方源之间对比。

FAQ

  1. 配了 mirror 还用开代理吗? → mirror 是主通道(直连更快);代理作为 mirror 失效时的备选。不要同时配「代理 + 指向被墙源的 mirror」。
  2. Docker 步骤一定要配吗? → 非必须。只有 Docker Hub 拉取失败时才需要;它要 root + 重启 daemon(影响运行中容器),务必备份 daemon.json。
  3. 配错了怎么还原? → 每项都有还原命令(见「卸载与清理」),pip/npm/go 无副作用;Docker 用 .bak 备份还原。
  4. 配置写在哪里、重装系统会丢吗? → 都在用户目录(pip.conf/.npmrc/go env),重装系统会丢,需重配;Docker 在 /etc(系统级)。

验证证据

每份组合包在隔离环境实测(冒烟 + 写面检查),未实测项在文中如实标注;实测日期见下方验证证据。

验证于 2026-08-29 · TTL 到期 —(180 天)

本站实测记录(2026-08-29)

  • pip:HOME=/tmp/mirror-test1 pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple → 写入 /tmp/mirror-test1/.config/pip/pip.conf;config list 读回 global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple' ✓
  • npm:HOME=/tmp/mirror-test2 npm config set registry https://registry.npmmirror.com → npm config get registry 输出 https://registry.npmmirror.com/ ✓
  • go:HOME=/tmp/mirror-test3 go env -w GOPROXY=https://goproxy.cn,direct → go env GOPROXY 输出 https://goproxy.cn,direct ✓
  • docker:未实测——daemon.json 需 root + 重启 daemon,动用户环境,按红线不碰;配置片段与验证命令已给出,待有隔离 Docker 环境时补测

关联问题

← 全部组合包 | 工具货架 | 遇到问题?去 问题空间 提交求助卡