一、第一步:把操作系统基础镜像同步完整(核心价值底座)

你现在已经同步 Ubuntu、Rocky、Alpine,把对应系统配套仓库全部补齐,内网机器 90% 软件依赖都能覆盖,不用单独同步 MySQL/Nginx 独立源。

1. 同步系统自带官方仓库(系统内置软件,包含 nginx、redis、php、mysql-client 等)

以清华 rsync 源为例,追加到worker.conf

toml

# Rocky Linux Base + AppStream 官方主仓库(自带mysql、nginx、redis)
[[mirrors]]
name = "rocky-base"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/rocky/"
interval = 43200
use_ipv6 = false

# Ubuntu 全部主仓库 main/universe/restricted/multiverse
[[mirrors]]
name = "ubuntu"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/ubuntu/"
interval = 43200
use_ipv6 = false

# Ubuntu 更新、安全补丁仓库
[[mirrors]]
name = "ubuntu-security"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/ubuntu-security/"
interval = 43200
use_ipv6 = false

# Alpine 完整仓库
[[mirrors]]
name = "alpine"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/alpine/"
interval = 43200
use_ipv6 = false

# EPEL 扩展库(CentOS/Rocky 海量第三方软件,含mysql-server、nginx、pg)
[[mirrors]]
name = "epel"
provider = "rsync"
upstream = "rsync://mirrors.tuna.tsinghua.edu.cn/epel/"
interval = 43200
use_ipv6 = false

效果说明

Rocky+EPEL、Ubuntu universe 仓库内,已经内置:MySQL、Nginx、Redis、PostgreSQL、PHP、Java、Git 等绝大多数常用服务软件。

内网机器直接yum install mysql nginx / apt install mysql nginx 全部走内网,不需要单独同步 MySQL 独立官方源,节省数百 GB 磁盘。

二、搭建内网 HTTP 静态分发服务(让所有内网机器访问镜像)

单纯同步文件没用,必须用 Nginx 把mirror_dir=/home/mirror目录暴露成内网 HTTP 站点,所有服务器、装机机器统一内网地址拉取包。

1. Nginx 最简配置 /etc/nginx/conf.d/mirror.conf

nginx

server {
    listen 80;
    server_name mirror.internal.local 192.168.x.x; # 你的内网IP

    root /home/mirror;
    autoindex on; # 开启目录浏览,方便调试
    autoindex_exact_size off;
    autoindex_localtime on;

    expires 12h; # 静态文件缓存,减轻磁盘IO
    add_header Cache-Control "public";
}

2. 内网机器统一替换源文件示例

Rocky Linux 机器 /etc/yum.repos.d/base.repo

ini

[baseos]
name=Rocky Linux $releasever - BaseOS
baseurl=http://mirror.internal.local/rocky/$releasever/BaseOS/$basearch/os/
gpgcheck=1
gpgkey=http://mirror.internal.local/rocky/RPM-GPG-KEY-Rocky-$releasever
enabled=1

Ubuntu 机器 /etc/apt/sources.list

list

deb http://mirror.internal.local/ubuntu/ jammy main restricted universe multiverse
deb http://mirror.internal.local/ubuntu-security/ jammy-security main restricted universe multiverse

收益

  1. 所有服务器下载软件走千兆内网,速度拉满;

  2. 完全阻断外网流量,断网环境也能安装软件;

  3. 仅一台机器同步外网,数百台内网机器复用一份缓存,大幅节省外网带宽。

三、离线装机 / 自动化部署场景(镜像站最大落地价值)

1. PXE 无人值守装机(内网批量装系统)

  1. 从同步好的/home/mirror/rocky/home/mirror/ubuntu提取网络安装引导文件;

  2. 搭配 DHCP+TFTP,新服务器上电自动从内网镜像站安装系统;

  3. 安装过程软件包全部读取本地镜像,不需要外网,10 分钟装完一台服务器。

2. 容器本地离线缓存(替代同步 Docker 源)

不用同步庞大 docker-ce 镜像仓库,改用两种轻量化方案:

  1. 内网私有镜像仓库 Harbor:开发 / 运维推送常用 MySQL、Nginx 镜像到 Harbor,内网容器全部拉本地镜像;

  2. 装机脚本内置docker load:提前把业务所需镜像导出 tar 包,存放在/home/mirror/docker-img目录,离线服务器直接导入,不用同步整个官方 Docker 仓库。

四、缓存分层 & 磁盘优化,延长存储寿命、降低同步压力

1. 定时清理过期无用包

系统镜像同步会积累旧版本安装包,编写定时脚本删除废弃版本,节省磁盘:

bash

运行

# 每周日凌晨清理旧缓存
0 1 * * 0 find /home/mirror -type f -mtime +90 -name "*.rpm" -o -name "*.deb" -delete

2. 只读快照备份

同步目录做 LVM 快照 /rsync 备份到另一块硬盘,防止同步中断文件损坏,镜像文件永久可回滚。

五、内网统一运维配套能力(放大镜像站作用)

1. 离线漏洞修复

内网服务器无外网,依靠本地镜像站的ubuntu-security、Rocky 更新仓库,执行yum update / apt upgrade 完成安全补丁更新,不用连接公网漏洞库。

2. 开发环境离线部署

开发机、测试机全部替换内网源:

  • Python pip:搭建内网 pypi 简易缓存(devpi,仅缓存开发所需包,不用全量同步 pypi);

  • NodeJS npm:Verdaccio 本地缓存;

  • Java Maven:Nexus 内网私服。

关键点:开发语言包用缓存私服,而非全量同步整个官方仓库,磁盘占用极小,搭配系统镜像站形成完整离线开发环境。

3. 带宽限流同步,不占用办公外网

tunasync 配置同步限速,避免白天同步拉满外网带宽影响办公:

修改 worker 全局配置,增加限速参数:

toml

[global]
name = "local-worker"
mirror_dir = "/home/mirror/mirrors"
concurrent = 2
log_dir = "/usr/local/tunasync/log"
# rsync全局限速 10M/s
rsync_options = "--bwlimit=10000"

六、总结:不单独同步 MySQL/Nginx 等独立源的核心优势

  1. 磁盘节省:系统官方仓库已经包含全部常用软件,不用额外占用 200G + 存储;

  2. 维护简化:仅维护 OS 基础镜像,减少同步任务、减少 rsync 报错;

  3. 覆盖全场景:服务器装机、软件安装、漏洞更新、离线开发全部满足;

  4. 带宽最优:单次同步一份系统仓库,全内网机器复用,外网消耗降到最低;

  5. 断网可用:完全离线环境下,服务器新增、重装、打补丁全部不依赖互联网。