apt-mirror搭建Ubuntu镜像站

简介: 因为公司要经常用到Ubuntu,又没有镜像站,使用外面的镜像站虽说很方便,但是速度有点慢,只能自己折腾一个镜像站了。apt-mirror在网上教程很多,但是很乱,一些地方就直接省略。似乎tunasync比较方便,在部署完apt-mirror之后才看到有这个,公司不给服务器我折腾了,没办法

服务器的版本是ubuntu 22.04其他的需要自己研究了

Ubuntu的镜像源在2023-2-8占用磁盘为:310G左右

部署的服务器使用了341G

image.png


直接开始

1.安装apt-mirror和nginx

apt-get install apt-mirror nginx

2.修改apt-mirror配置

#记得修改版号

vi /etc/apt/mirror.list
############# config ##################
#
#数据基目录
# set base_path    /var/spool/apt-mirror
#
#镜像存储位置
# set mirror_path  $base_path/mirror
#临时下载索引位置
# set skel_path    $base_path/skel
#URLs和MD5校验信息存储位置
# set var_path     $base_path/var
#清除废弃包脚本地址
# set cleanscript $var_path/clean.sh
#默认下载的OS架构 像amd64这种的
# set defaultarch  <running host architecture>
#这个脚本是运行必需的
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
#设置下载线程数
set nthreads     20
set _tilde 0
#
############# end config ##############
#简单来说就是 
#deb 地址/os 版本号  后面那些好像就是os里面的文件夹
#个人比较喜欢用上海交通大学的镜像源
deb https://mirror.sjtu.edu.cn/ubuntu jammy main restricted universe multiverse
deb https://mirror.sjtu.edu.cn/ubuntu jammy-security main restricted universe multiverse
deb https://mirror.sjtu.edu.cn/ubuntu jammy-updates main restricted universe multiverse
deb https://mirror.sjtu.edu.cn/ubuntu jammy-proposed main restricted universe multiverse
deb https://mirror.sjtu.edu.cn/ubuntu jammy-backports main restricted universe multiverse
deb-src https://mirror.sjtu.edu.cn/ubuntu jammy main restricted universe multiverse
deb-src https://mirror.sjtu.edu.cn/ubuntu jammy-security main restricted universe multiverse
deb-src https://mirror.sjtu.edu.cn/ubuntu jammy-updates main restricted universe multiverse
deb-src https://mirror.sjtu.edu.cn/ubuntu jammy-proposed main restricted universe multiverse
deb-src https://mirror.sjtu.edu.cn/ubuntu jammy-backports main restricted universe multiverse
#这个脚本会清除上游服务器废弃的包的
clean https://mirror.sjtu.edu.cn/ubuntu

3.修改vi /usr/bin/apt-mirror

因为:apt-mirror无法下载cnf文件夹(apt-mirror软件最后一次更新在2017年,而ubuntu20.04在2020年才发布,软件没有对系统做适配,就是bug)

add_url_to_download( $url . $_ . "/binary-" . $arch . "/Release" );

add_url_to_download( $url . $_ . "/binary-" . $arch . "/Packages.gz" );

add_url_to_download( $url . $_ . "/binary-" . $arch . "/Packages.bz2" );

add_url_to_download( $url . $_ . "/binary-" . $arch . "/Packages.xz" );

add_url_to_download( $url . $_ . "/cnf/Commands-" . $arch . ".xz" );

add_url_to_download( $url . $_ . "/i18n/Index" );


如果不想编辑就看看这个

https://github.com/Stifler6996/apt-mirror


4.同步

#前台同步
apt-mirror
#后台同步
nohup apt-mirror &

4.1定时同步

crontab -e
0 0 * * * apt-mirror  #每天23点执行一次apt-mirror,定时向上游更新镜像站文件
0 22 * * * /var/spool/apt-mirror/var/clean.sh  #提前一个小时清理被上游镜像站遗弃的软件包


5.修改nginx配置文件

vi /etc/nginx/sites-available/default

#如果不需要https直接跳过就行
server {
        listen 443 ssl;
        server_tokens off;
        server_name 域名;
        ssl_certificate 证书.crt;
        ssl_certificate_key 证书对应的key.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
        ssl_prefer_server_ciphers on;
        location / {
                root /var/spool/apt-mirror/mirror/mirror.sjtu.edu.cn;
                autoindex on;
                autoindex_exact_size off;
        }
}
server {
  listen 80;
  server_name: 自己的域名
  #如果需要配置https取消注释下面那行,location就需要写在https的配置项了
  #这个就重定向到https配置项
  #return 301 https://$server_name$request_uri;
  location / {
    root /var/spool/apt-mirror/mirror/镜像源地址(例如sjtu.edu.cn)
    #开启目录访问
    atuoindex: on;
    #看文件大小用的
    autoindex_exact_size off;
  }
}


参考:

1.异常处理出处:https://blog.csdn.net/qq_39525606/article/details/121163223

2.基本配置项:https://blog.linux-code.com/articles/thread-1788.html

3.git地址出处:https://aword.net/nei-wang-da-jian-apt-mirror/







相关文章
|
Ubuntu Docker 容器
ubuntu 桌面 docker 镜像 vnc
ubuntu 桌面 docker 镜像 vnc
195 0
|
Ubuntu Linux C语言
还在用Alpine作为你Docker的Python开发基础镜像?其实Ubuntu更好一点
一般情况下,当你想为你的Python开发环境选择一个基础镜像时,大多数人都会选择Alpine,为什么?因为它太小了,仅仅只有 5 MB 左右(对比 Ubuntu 系列镜像接近 100 MB),但事实的真相是,我们选择基础镜像并不是为了体验一下Python语法而已,在此基础上,我们需要调试和安装各种扩展,可能会安装很多三方依赖,甚至预设更多服务,在这种环境下,Alpine就并非是一个很好的选择了,本次我们就来分别在Alpine和Ubuntu上来体验一下安装和编译Python的区别。
还在用Alpine作为你Docker的Python开发基础镜像?其实Ubuntu更好一点
|
Ubuntu
Ubuntu系统镜像下载,国内镜像站大全(山大/清华/阿里/浙大/中科大...)
装Ubuntu,是很多理工科同学入门的第一个挑战,首先我们就需要找到一个能用的iso镜像,根据你的网络环境的不同,不同的站点下载速度会不一样,下面列举一下几个比较好用的,都是来自Ubuntu官方推荐镜像站链接导航国内分区
4567 0
|
4月前
|
Ubuntu Linux Shell
树莓派ubuntu镜像备份详细教程
本文是关于树莓派Ubuntu镜像备份的详细教程,包括如何获取镜像、使用PiShrink工具减小镜像体积的步骤和命令,以及相关参数的说明。
123 0
|
4月前
|
Ubuntu Windows
Ubuntu22.04制作镜像
如何在Ubuntu 22.04操作系统上制作系统镜像。
212 0
|
4月前
|
Ubuntu Linux 测试技术
下载ISO镜像的方法 Debian、Red Hat 、CentOS、Ubuntu、Kali Linux🌐
Debian、Red Hat、CentOS、Ubuntu与Kali Linux均为知名Linux发行版。下载Debian须访问官网并按计算机架构选ISO文件。Red Hat下载通常需订阅账户,可从官网登录后获取。CentOS可从官网或镜像站点下载,注意CentOS 8已停更。Ubuntu下载简便,官网直接选取版本及架构即可。Kali Linux专为安全测试设计,官网提供直接下载ISO镜像服务。
818 0
|
6月前
|
弹性计算 Ubuntu Linux
Ubuntu 镜像-阿里云
Ubuntu 镜像-阿里云
303 1
|
Ubuntu 网络协议 数据安全/隐私保护
RK3568开发笔记(六):开发板烧写ubuntu固件(支持mipi屏镜像+支持hdmi屏镜像)
编译了uboot,kernel,buildroot后,可以单独输入固件,也可以整体打包成rootfs进行一次性输入,rootfs直接更新升级这个方式目前也是常用的。本篇刷了2个镜像,一个支持mipi屏幕得ubuntu固件,一个支持hdmi固件,但是都不支持笔者的usb触摸屏
|
存储 Ubuntu 机器人
Ubuntu下载ISO镜像的方法
一、镜像介绍 1、大概介绍 .iso 是电脑上镜像的存储格式之一,所以通常在电脑中以后缀.iso命名,俗称iso镜像文件。 2、详细介绍 .iso是电脑上光盘镜像(CD Mirror)的存储格式之一,因为其是根据ISO-9660有关CD-ROM文件系统标准存储的文件,所以通常在电脑中以后缀.iso命名,俗称iso镜像文件。它形式上只有一个文件,可以真实反映光盘的内容,可由刻录软件或者镜像文件制作工具创建。 二、Ubuntu 1、介绍 Ubuntu是基于Debian,以桌面应用为主的Linux发行版。Ubuntu有三个正式版本,包括桌面版、服务器版及用于物联网设备和机器人的Core版。前述三
2264 1
|
存储 缓存 Ubuntu
【Docker】Docker比虚拟机快的原因、ubuntu容器、镜像的分层概念和私有库的详细讲解
【Docker】Docker比虚拟机快的原因、ubuntu容器、镜像的分层概念和私有库的详细讲解
564 0