服务器的版本是ubuntu 22.04其他的需要自己研究了
Ubuntu的镜像源在2023-2-8占用磁盘为:310G左右
部署的服务器使用了341G
直接开始
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/