Ubuntu 20.04 与22.04 内网apt源搭建

本文介绍了如何使用apt-mirror在Ubuntu20.04LTS系统上搭建内网apt源服务器,同步阿里云的Ubuntu镜像,并通过Nginx和Docker代理提供服务。过程中详细列出了配置步骤,包括设置阿里云源,修改apt-mirror配置,创建Docker容器以代理访问,以及解决更新过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

搭建说明

采用官方提供apt-mirror方式进行搭建
由于单个发行版apt包磁盘占用600G左右,建议1T磁盘空间

部署环境

名称ip主机名配置操作系统
apt内网源服务器192.168.0.201CT11C 2G 1TUbuntu 20.04 LTS
内网客户端192.168.0.202CT21C 1G 50GUbuntu 20.04 LTS

阿里云apt同步源

国内apt下载下载较慢,设置阿里云apt同步源
备份 sources.list

cp /etc/apt/sources.list /etc/apt/sources.list-bak

Ubuntu 20.04 LTS 配置修改如下

cat > /etc/apt/sources.list <<EOF
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
EOF

apt-mirror安装

安装

更新apt 索引与安装

apt update
apt install apt-mirror -y

配置文件

apt-mirror默认配置文件: /etc/apt/mirror.list
修改默认路径: (可选,目录可不创建)
set base_path /data/apt-mirror
set run_postmirror 0
使用阿里云apt同步源 (若多次同步失败建议切换清华大学apt源:mirrors.tuna.tsinghua.edu.cn 进行同步)
可以设置多个,当前同步focal版本

vim /etc/apt/mirror.list

############# config ##################
#
# set base_path    /var/spool/apt-mirror
set base_path    /data/apt-mirror
#
# set mirror_path  $base_path/mirror
# set skel_path    $base_path/skel
# set var_path     $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch  <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse


clean https://mirrors.aliyun.com/ubuntu

若要添加22.04 TLS版本,在 /etc/apt/mirror.list配置文件新增

deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse

# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

运行同步

apt-mirror

等待执行完毕(首次执行耗时较长,可放入后台执行)
在这里插入图片描述

目录结构

同步目录结构如下
在这里插入图片描述
mirror目录中包含了同步源的名称

root@CT1:/data/apt-mirror# ll mirror/
total 0
drwxr-x--- 3 root root 32 Jun  9 16:08 ./
drwxr-xr-x 5 root root 87 Jun  9 23:20 ../
drwxr-x--- 3 root root 20 Jun  9 16:08 mirrors.aliyun.com/

需要代理的目录为当前同步源下/ubuntu目录

root@CT1:/data/apt-mirror# ll mirror/mirrors.aliyun.com/ubuntu/
total 0
drwxr-x--- 4 root root 31 Jun  9 18:36 ./
drwxr-x--- 3 root root 20 Jun  9 16:08 ../
drwxr-x--- 6 root root 85 Jun  9 18:36 dists/
drwxr-x--- 6 root root 70 Jun  9 18:09 pool/

代理访问

配置

使用nginx docker-compose方式进行代理
安装docker与docker-compose,也可使用apt方式安装nginx

vim docker-compose.yaml
version: '3'
services:
  apt-mirror:   
    image: nginx:1.25.2-alpine
    container_name: apt-mirror
    restart: always
    ports:
      - '80:80'
    volumes:
      - /data/apt-mirror/mirror/mirrors.aliyun.com/ubuntu:/usr/share/nginx/html/ubuntu/
    #  - /data/apt-mirror/mirror/mirrors.tuna.tsinghua.edu.cn/ubuntu:/usr/share/nginx/html/ubuntu/

启动

docker-compose up -d 

客户机验证

配置

配置内网主机使用搭建的apt源进行更新
备份 sources.list

cp /etc/apt/sources.list /etc/apt/sources.list-bak

修改配置

cat > /etc/apt/sources.list << EOF
deb http://192.168.0.201/ubuntu/ focal main restricted universe multiverse
deb-src http://192.168.0.201/ubuntu/ focal main restricted universe multiverse

deb http://192.168.0.201/ubuntu/ focal-security main restricted universe multiverse
deb-src http://192.168.0.201/ubuntu/ focal-security main restricted universe multiverse

deb http://192.168.0.201/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://192.168.0.201/ubuntu/ focal-updates main restricted universe multiverse

deb http://192.168.0.201/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://192.168.0.201/ubuntu/ focal-backports main restricted universe multiverse
EOF

更新apt索引

apt update
Reading package lists... Done
E: Failed to fetch http://192.168.0.201/ubuntu/dists/focal/main/cnf/Commands-amd64  404  Not Found [IP: 192.168.0.201]
E: Failed to fetch http://192.168.0.201/ubuntu/dists/focal-security/main/cnf/Commands-amd64  404  Not Found [IP: 192.168.0.201]
E: Failed to fetch http://192.168.0.201/ubuntu/dists/focal-updates/main/cnf/Commands-amd64  404  Not Found [IP: 192.168.0.201]
E: Failed to fetch http://192.168.0.201/ubuntu/dists/focal-backports/main/cnf/Commands-amd64  404  Not Found [IP: 192.168.0.201]
E: Some index files failed to download. They have been ignored, or old ones used instead.
root@CT1:/data/apt-sources# 

报错处理

apt源缺少cnf下的一些索引文件,导致更新失败
经查找ubuntu官网apt-mirror软件包信息,apt-mirror_0.5.4-2已修复该问题
在这里插入图片描述
官网下载连接:https://packages.ubuntu.com/zh-tw/mantic/all/apt-mirror/download

回到apt内网源服务器

查看当前安装包版本
root@CT1:~# dpkg -l|grep apt-mirror
ii  apt-mirror                            0.5.4-1                           all          APT sources mirroring tool

安装apt-mirror_0.5.4-2版本
使用阿里云仓库下载:

wget https://mirrors.aliyun.com/ubuntu/pool/universe/a/apt-mirror/apt-mirror_0.5.4-2_all.deb

安装

dpkg -i apt-mirror_0.5.4-2_all.deb

执行apt-mirror进行同步

apt-mirror

apt内网源服务器更新完毕后,在apt客户端再次进行更新,提示成功

apt update
Ubuntu 22.04 LTS(代号“Jammy Jellyfish”)安装时设置本地镜像可以提高软件包下载速度,并在网络不稳定时提供备份。以下是步骤: 1. **打开终端**: 打开终端可以通过搜索快捷键 `Ctrl` + `Alt` + `T` 进入。 2. **更新系统信息**: 首先,确保你的系统是最新的: ``` sudo apt update && sudo apt upgrade ``` 3. **添加PPA(个人软件包存档)**: 如果你想创建一个自定义的软件,你可以选择先加入一个PPA作为基础。例如,如果你想使用阿里云的Ubuntu镜像,可以添加: ``` sudo add-apt-repository ppa:mirrorservice/mirrors.list ``` 然后更新缓存: ``` sudo apt update ``` 4. **编辑 `/etc/apt/sources.list`**: 使用文本编辑器(如 `nano` 或 `vim`)打开这个文件: ``` sudo nano /etc/apt/sources.list ``` 在文件底部添加你的本地镜像地址。对于阿里云,它通常类似: ``` deb [arch=amd64] http://mirrors.aliyun.com/ubuntu focal main restricted universe multiverse deb-src [arch=amd64] http://mirrors.aliyun.com/ubuntu focal main restricted universe multiverse ``` 5. **替换官方**: 如果你想完全替代官方,可以将原有的官方行替换为你添加的本地。记得保存并关闭编辑器。 6. **更新索引**: ``` sudo apt-get clean sudo apt-get update ``` 7. **验证镜像**: 可以通过查询 `http://mirrors.aliyun.com/ubuntu/dists/focal/main/binary-amd64/Packages.gz` 等文件确认新是否有效。 8. **安装软件**: 安装软件时,系统会优先从你配置的本地获取。 注意:设置本地镜像后,记得定期检查其更新,因为长期依赖可能会导致无法获得最新的安全补丁。此外,如果遇到问题,可以随时删除添加的本地并恢复到默认官方
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值