温馨提示×

如何搭建本地ubuntu镜像源

小樊
43
2026-10-01 09:57:17
栏目: 智能运维

下面给你一套在 Ubuntu 上搭建本地镜像源(离线/局域网可用)的常见做法,适合内网、离线环境、批量装机等场景。


一、方案选择

常见有三种方式:

  1. apt-mirror(最常用,完整镜像)
  2. reprepro(可控、可裁剪的私有源)
  3. nginx + 已下载的 deb 包(轻量静态源)

如果只是“公司内网加速”,推荐 apt-mirror + nginx


二、使用 apt-mirror 搭建完整镜像源(推荐)

1. 安装 apt-mirror

sudo apt update
sudo apt install apt-mirror apache2 -y

(也可用 nginx,下面以 apache 为例)


2. 配置 apt-mirror

编辑配置文件:

sudo vim /etc/apt/mirror.list

示例(Ubuntu 22.04):

set base_path    /var/spool/apt-mirror
set mirror_path  $base_path/mirror
set skel_path    $base_path/skel
set var_path     $base_path/var
set defaultarch  amd64
set nthreads     20

deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-security main restricted universe multiverse

clean http://archive.ubuntu.com/ubuntu

可只保留你需要的版本(如 20.04 → focal)


3. 开始同步镜像

sudo apt-mirror

⏳ 首次同步可能 几十 GB~上百 GB

同步完成后目录:

/var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu

4. 配置 Web 服务

Apache 示例

sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu /var/www/html/ubuntu

访问测试:

http://<服务器IP>/ubuntu/

5. 客户端配置

在需要使用该镜像的机器上:

sudo vim /etc/apt/sources.list

改为:

deb http://<镜像服务器IP>/ubuntu jammy main restricted universe multiverse
deb http://<镜像服务器IP>/ubuntu jammy-updates main restricted universe multiverse
deb http://<镜像服务器IP>/ubuntu jammy-security main restricted universe multiverse

然后:

sudo apt update

三、轻量方案:只缓存已下载的 deb(推荐小团队)

1. 安装工具

sudo apt install nginx dpkg-dev -y

2. 收集 deb 包

mkdir -p /srv/ubuntu/pool
cp /var/cache/apt/archives/*.deb /srv/ubuntu/pool/

3. 生成 Packages 索引

cd /srv/ubuntu
dpkg-scanpackages pool /dev/null | gzip > Packages.gz

4. 配置 nginx

server {
    listen 80;
    root /srv/ubuntu;
    autoindex on;
}

5. 客户端使用

deb [trusted=yes] http://<IP>/ / 

四、定时更新镜像(可选)

sudo crontab -e
0 2 * * * /usr/bin/apt-mirror

五、常见用途

✅ 内网加速
✅ 离线安装
✅ 安全隔离环境
✅ 批量装机(PXE + 本地源)


如果你告诉我:

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • 是否完全离线
  • 是否需要 ARM / i386
  • 是否用于 PXE 装机

我可以给你更精确的配置模板。

0 踩