Repository navigation
System Sources zh CN
独立客户端提供下列 28 类发行版的原生配置适配,参考了
LinuxMirrors 的系统覆盖范围。
实现采用 Rust,不下载或执行对方脚本。mirrorproxy systems 展示客户端与服务端共享的目录。
版本范围表示配置适配范围,包括归档版本,不代表延长发行版安全支持,也不保证每个 版本和架构的上游元数据仍然可用。测试夹具覆盖全部发行版,实际下载仍需在 Linux 验证。
| 客户端标识 | 发行版 | 配置版本范围 | 适配器 |
|---|---|---|---|
debian |
Debian | 8–14、testing/sid | APT |
ubuntu |
Ubuntu | 14–26 | APT |
kali |
Kali Linux | 滚动版本 | APT |
linuxmint |
Linux Mint / LMDE | Mint 19–22;LMDE 6–7 | APT |
deepin |
Deepin | 现有版本布局,含 25/beige | APT |
zorin |
Zorin OS | 现有 Ubuntu 基础仓库布局 | APT |
armbian |
Armbian | 现有 Debian/Ubuntu 布局 | APT |
proxmox |
Proxmox VE | 现有 Debian/PVE/Ceph 布局 | APT |
raspios |
Raspberry Pi OS | 现有 Debian/Raspbian 布局 | APT |
rhel |
Red Hat Enterprise Linux | 7–10;须配置兼容的客户镜像 | RPM |
fedora |
Fedora | 30–44 | RPM |
centos |
CentOS Linux | 7–8 | RPM |
centos-stream |
CentOS Stream | 8–10 | RPM |
rocky |
Rocky Linux | 8–10 | RPM |
alma |
AlmaLinux | 8–10 | RPM |
oraclelinux |
Oracle Linux | 8–10 | RPM |
openeuler |
openEuler | 20–26 | RPM |
opencloudos |
OpenCloudOS | 8.6–9;Stream 23 | RPM |
openkylin |
openKylin | 现有版本布局 | APT |
anolis |
Anolis OS | 8 / 23 | RPM |
opensuse |
openSUSE | Leap 15–16;Tumbleweed | RPM/Zypper |
archlinux |
Arch Linux / Arch Linux ARM | 滚动版本 | pacman |
manjaro |
Manjaro | stable/testing/unstable | pacman |
endeavouros |
EndeavourOS | Arch 与 EndeavourOS 镜像列表 | pacman |
alpine |
Alpine Linux | v3 / edge | apk |
gentoo |
Gentoo | 现有 Portage 配置 | distfile 镜像 |
nixos |
NixOS | 19–26 | Nix 模块及已有 root channel |
void |
Void Linux | 滚动版本,保留已有 musl 路径 | XBPS |
需要已有 MirrorProxy 实例,启用 os 适配器,并使用包含新目录中仓库根地址的服务端版本。
统一迁移当前使用 mirrorproxy 提供方。
mirrorproxy systems
sudo mirrorproxy set system --scope system --replace-existing --base-url https://mirror.example.com --dry-run
sudo mirrorproxy set system --scope system --replace-existing --base-url https://mirror.example.com
# 指定发行版时,客户端还会检查它是否匹配当前系统。
sudo mirrorproxy set rocky --scope system --replace-existing --base-url https://mirror.example.com --dry-run
sudo mirrorproxy reset system --scope system --dry-run
sudo mirrorproxy reset system --scope system一次只执行一个 set,现有系统回滚记录会阻止再次迁移。
reset <发行版标识> --scope system 也能恢复匹配发行版的统一迁移。
已有按目标操作的命令及其回滚记录继续保留原有行为。
set apt --replace-existing 仍是客户端页面介绍的较窄的 Debian/Ubuntu
基础仓库替换方式。
系统识别读取 os-release,不执行 shell 表达式。Armbian、树莓派与 Proxmox 的标记文件
用于识别仍报告父发行版 ID 的系统。系统识别文件的符号链接只能指向所选根目录内。
Mint 厂商 mint-info 软件包提供的 /etc/linuxmint/info 也用于识别保留父系统 ID 的环境,
版本采用厂商 RELEASE,不会把 Ubuntu 24.04 当作 Mint 24。
Ubuntu Kylin、Kubuntu、Lubuntu、Xubuntu、Ubuntu MATE/Budgie/Studio/Unity 和 Edubuntu
的独立 ID 需同时声明 Ubuntu/Debian ID_LIKE。不把任意声明 ID_LIKE=ubuntu 的系统
自动当成 Ubuntu。Mint 19 / LMDE 6 以前的版本不再声称已适配;旧回滚记录仍可恢复。
客户端保留已有版本代号、分支、$releasever、$basearch、$repo、$arch、组件、
密钥环和签名设置,不把 ARM 仓库猜成 x86 仓库,也不切换发行版版本。
APT 兼容 .list 和 DEB822 .sources,包括多行 URIs、更新源、安全源、ports 及多个
基础和厂商仓库。RPM 仅在可以替换的节中修改已识别的 baseurl 并禁用镜像发现。
Fedora 已知的基础、更新、modular metalink 会映射到等价目录,未知第三方节保持原样。
pacman 保留 Manjaro 分支并处理 EndeavourOS 独立列表;Void 从 /usr/share 厂商配置
生成 /etc 覆盖文件,不改动厂商原文件。
只有目录声明的官方地址和已知镜像提供方布局会被改写,未知自定义镜像保持原样。
已知布局包含 LinuxMirrors 的大陆、教育网、海外及云厂商内网镜像站目录,按精确域名、
路径和仓库边界匹配;阿里云镜像地址使用 mirrors.aliyun.com,不使用其开发者首页。
镜像站目录仅用于识别原配置,不代表每个站点同步所有仓库;最终上游由服务端配置决定。
缺少或无法识别的原生配置会拒绝处理,而不是猜测配置;修复时请先恢复发行版自身的源定义。
pacman 专用镜像列表还会识别原生 $repo/$arch URL 模板,不限于特定镜像站域名。
新增 Gentoo 设置、NixOS 模块和 Void 覆盖文件属于下文说明的例外,原先不存在的文件在
恢复时会删除。
- Debian Jessie/Stretch/Buster 分别使用基础和安全归档仓库;旧 Ubuntu 版本代号使用
ubuntu-old。保留版本通道及签名策略,归档元数据可能过期;客户端不会添加trusted=yes、关闭签名或有效期检查,也不会安装替代密钥。 - CentOS 7/8 使用 Vault,将通用
$releasever路径固定为 7.9.2009 / 8.5.2111。 Fedora 30–42 使用归档树,43–44 保留活动仓库。这是目录中的仓库位置快照,上游迁移后 应复查;归档版本不再获得正常的厂商安全更新。 - RHEL 不提供默认公开上游。请在
upstreams.additional_os.rhel配置经过授权、保持/content/...层级且兼容的客户镜像。代理不转发客户端订阅凭据,也不配置上游客户端 证书;仅接受订阅认证的 Red Hat CDN 不能直接用于此适配器。不会把 RHEL 转成 CentOS。 - Proxmox 企业/订阅源保持原样,公开 PVE/Ceph 源可以迁移;不会修改订阅、Perl 模块、 容器模板或企业源策略。
- 普通
set system在 Gentoo 只修改GENTOO_MIRRORS。独立的set gentoo-sync会将 Gentoo 仓库切换为 Portage 的 HTTPwebrsync快照同步,保留位置及 OpenPGP 密钥设置, 强制开启快照签名验证;随后运行emerge --sync。需要已有官方仓库定义及有效密钥。/etc/portage/repos.conf为单文件或存在多个 Gentoo 定义时需先人工整理;不转发 rsync。 - NixOS 生成
/etc/nixos/mirrorproxy.nix,将./mirrorproxy.nix加入配置的imports后执行sudo nixos-rebuild switch。原有可信公钥不变,保留官方缓存。已有 root.nix-channels中的 HTTP 地址也可以迁移。不修改 flake 输入、不求值 Nix。 回退时移除 import,执行reset system,再 rebuild;使用 channel 时还需刷新 channel。 - openSUSE 上的 RIS 等仓库服务可能重新生成
.repo文件;需要时请先用原生 Zypper 工具管理对应服务。客户端不会卸载服务软件包或修改其服务策略。
下面入口均支持 --dry-run,并复用系统多文件回滚记录,一次只能应用其中一个操作:
sudo mirrorproxy set epel --scope system --replace-existing --base-url https://mirror.example.com
sudo mirrorproxy reset epel --scope system
sudo mirrorproxy set docker-ce --scope system --replace-existing --base-url https://mirror.example.com
sudo mirrorproxy reset docker-ce --scope system
sudo mirrorproxy set gentoo-sync --scope system --replace-existing --base-url https://mirror.example.com
sudo mirrorproxy reset gentoo-sync --scope system- EPEL 迁移已存在的 EPEL、Next、Archive 配置,保留签名和密钥;缺少配置时先通过厂商
官方方式安装
epel-release。EPEL 7 使用 Archive 并保留过期/签名检查。 EPEL Next 对应上游pub/epel/next,是否可下载取决于具体版本的上游生命周期。 - AlmaLinux 的 Vault 地址与主仓库分别映射到
/os/alma-vault/与/os/alma/,保留固定 小版本路径,不把归档仓库变成最新版本。 - Docker CE 独立迁移已有 APT/RPM 安装源,地址为
/os/docker-ce/linux/<发行版>/...。 首次安装先按 Docker 官方流程配置公钥(APT 使用/etc/apt/keyrings/docker.asc),再运行set docker-ce生成带签名要求的源定义;已有源则执行迁移。随后使用原生包管理器安装docker-ce、docker-ce-cli、containerd.io。不自动安装或重启 Docker 服务。 Docker Hub 镜像加速仍使用原来的set docker,两者配置和回滚分开操作。
--dry-run 校验实际内容并展示变化行,不写文件和回滚记录,敏感行会隐藏。
写入前将文件及原始内容记录到 /var/lib/mirrorproxy/sources/system.json。
恢复路径限制在该发行版允许的文件内,拒绝配置文件或目录中的符号链接,Unix 上保留
文件权限。恢复前先检查所有路径与文件,迁移后的人工作业必须显式传入 --force 才能覆盖。
每个文件单独原子写入,整个文件集合不是单个文件系统事务。中断后可执行
reset system --scope system 恢复部分写入。完成恢复前保留此客户端版本,旧版本无法
读取新增的多文件记录。应用和恢复后都需刷新原生包索引。客户端不迁移数据库,也不部署
服务端。
新公开仓库根地址已加入服务端默认值。如果 TOML 显式配置了 upstreams.additional_os,
请合并 config.example.toml 中的新键并保留自定义覆盖;显式映射会替换默认映射。
upstreams.debian、upstreams.fedora 等固定根地址继续使用原配置字段。
服务启动会为旧持久化配置补入 EPEL、Next、Archive、Alma Vault、Docker CE 缺失键,
已有同名自定义上游会保留。新增键位于 upstreams.additional_os。
预览成功不代表已经验证远程连接。
隔离测试可增加 --config-root <目录>,系统识别、原生配置和回滚状态均位于该目录下。
默认系统范围为 Linux,其他平台必须显式提供测试根目录。
迁移后检查有效配置和真实下载:
| 适配器 | 验证示例 |
|---|---|
| APT |
apt-get update;apt-cache policy hello;apt-get --print-uris download hello;apt-get download hello
|
| RPM |
dnf repolist -v;dnf --refresh makecache;通过 DNF 下载软件包 |
| Zypper |
zypper lr -u;zypper refresh;下载软件包 |
| pacman | 在一次性环境运行 pacman -Syyw --noconfirm <包名>
|
| apk |
apk update;apk fetch busybox
|
| XBPS |
xbps-query -L;xbps-install -S;在容器内获取/安装小型软件包 |
| Gentoo | 正常同步后运行 emerge --fetchonly <包名>
|
| NixOS | 导入/rebuild、检查 substituter、获取经过签名验证的 store 路径 |
检查实际选中的 URI 及生态自身的签名/摘要校验,不只看 HTTP 状态或生成文本;保留的 第三方仓库仍可能提供优先候选版本。恢复后比较原始文件校验和。
一次性容器烟测由操作者在 Linux 执行:
cargo build --locked --release -p mirrorproxy-cli --target x86_64-unknown-linux-musl
MIRRORPROXY_OS_SMOKE_BASE=https://mirror.example.com \
MIRRORPROXY_OS_SMOKE_CLIENT_BINARY="$PWD/target/x86_64-unknown-linux-musl/release/mirrorproxy" \
MIRRORPROXY_OS_SMOKE_TARGETS="debian ubuntu fedora archlinux alpine opensuse void gentoo" \
bash scripts/smoke-os-clients.sh该脚本验证代表性的包管理器家族,不覆盖矩阵中的每个版本。其他发行版和版本的镜像在
生产使用前也需要独立真实验证。容器执行及软件包下载需要网络。
musl 构建需要安装对应 Rust target 和 musl 工具链,ARM 主机应选择匹配架构。
可选烟测目标还包括 rocky、alma、oraclelinux。可用
MIRRORPROXY_OS_SMOKE_DEBIAN_IMAGE=debian:trixie-slim 或
MIRRORPROXY_OS_SMOKE_FEDORA_IMAGE=fedora:43 等变量更换家族镜像、验证其他版本。
scripts/smoke-os-matrix.sh 独立运行全部 28 个 profile,并输出逐项日志和 results.tsv;
缺少真实镜像显示 BLOCKED,不会用父发行版伪造通过。Mint、Zorin、Armbian、Proxmox、
Raspberry Pi OS、RHEL、EndeavourOS、NixOS 可通过相应的
MIRRORPROXY_OS_SMOKE_<大写标识>_IMAGE 指定真实镜像。centos-stream 使用
MIRRORPROXY_OS_SMOKE_CENTOS_STREAM_IMAGE;nixos/nix 并不是 NixOS 系统镜像。
RHEL 另外需要客户授权上游。上游停止服务、签名过期、镜像下载失败均应记录为未通过。
scripts/smoke-system-extras.sh 验证 EPEL RPM 签名、Docker CE APT 下载及 Gentoo 签名
快照同步。使用静态 musl 候选客户端;镜像前缀通过 MIRRORPROXY_OS_SMOKE_REGISTRY
指定(例如 sina.dev),代理地址通过 MIRRORPROXY_OS_SMOKE_BASE 指定。
镜像站识别目录参考 LinuxMirrors 76fbf173,许可见
LinuxMirrors MIT。
本轮逐项结果和剩余环境要求见
2026-10-22 验收记录。
开始使用 · Start here
- 首页 · Home
- Docker + HTTPS 快速开始 · Quick start
- 二进制与已有入口部署 · Deployment
- 常见反向代理配置 · Reverse proxies
- 常见问题 · Troubleshooting
日常使用 · Everyday use
- 客户端改源 · Client
- Linux 系统与版本支持 · Linux system sources
- 其他客户端安装方式 · Client installation
- 支持的软件源 · Sources
- 容器镜像总览 · Container images
- 后台管理 · Administration
进阶配置 · Advanced
开发与维护 · Development