一、第一步:把操作系统基础镜像同步完整(核心价值底座)
你现在已经同步 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. PXE 无人值守装机(内网批量装系统)
从同步好的
/home/mirror/rocky、/home/mirror/ubuntu提取网络安装引导文件;搭配 DHCP+TFTP,新服务器上电自动从内网镜像站安装系统;
安装过程软件包全部读取本地镜像,不需要外网,10 分钟装完一台服务器。
2. 容器本地离线缓存(替代同步 Docker 源)
不用同步庞大 docker-ce 镜像仓库,改用两种轻量化方案:
内网私有镜像仓库 Harbor:开发 / 运维推送常用 MySQL、Nginx 镜像到 Harbor,内网容器全部拉本地镜像;
装机脚本内置
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 等独立源的核心优势
磁盘节省:系统官方仓库已经包含全部常用软件,不用额外占用 200G + 存储;
维护简化:仅维护 OS 基础镜像,减少同步任务、减少 rsync 报错;
覆盖全场景:服务器装机、软件安装、漏洞更新、离线开发全部满足;
带宽最优:单次同步一份系统仓库,全内网机器复用,外网消耗降到最低;
断网可用:完全离线环境下,服务器新增、重装、打补丁全部不依赖互联网。