v3.8.313
1232 字
6 分钟
Debian本地镜像源搭建
首先说一下为什么要弄这事?
对于肉身在国内的朋友,Debian系的官方源镜像实在太慢,一般的系统更新只能依靠国内的源,如阿里源、腾讯源等厂商云,但如果你需要的是大规模部署,调用这些厂商源对公网上下行端口的负载是很大的,所以如果你只有一两台设备的更新需求,就没必要折腾这事了
部署一台用于同步的镜像软件源主机,只需要每日定时更新源主机的目录文件就好,内网的其他主机设备无需对外频繁通信,对内网某主机的安全性存在较高要求的,这种方式比较稳妥,另外更新流程只在内网状态下进行,那么就不必考虑出口带宽,同时避免许多公网上的流量监控,只需要考虑源主机软件包的安全性及GPG密钥的安全性即可
如果你是云服厂商,那么部署一台本地镜像软件源主机就很有必要了,毕竟用户每次租用设备一般都要先 ‘apt update && apt upgrade’ 极快的更新速度能够增强用户体验感,不像某些垃圾厂商只关注防火墙和策略组,当然这些也是必须的,可以做到虚拟主机的外层,而镜像软件源做在宿主机内层,层次化的安全策略更利于管理
注意存储空间限制
- 用于搭建镜像软件源的主机磁盘可用空间必须大于400TB(存在冗余),主机小于350TB的可用空间无需考虑
- 本次搭建仅服务于 Debian10/11/12 以及 ubuntu20/22 系统,每增加一种系统预计需要增加230TB的可用空间
- 本次用于搭建的主机内存必须大于2G,交换分区必须大于内存的2倍,CPU核数不做过多要求,线程越多越好
开始搭建
环境:首先新建一个Debian11的主机(可以是虚拟机)
sudo apt update && sudo apt upgrade # 标准操作保持系统最新# 安装部署用的必备工具sudo apt install apache2 rsync e2fsck resize2fs lvextend # 假设使用LXC容器进行搭建,过程可能有扩容需求# 安装好后打开浏览器应该可以看到apache2的初始index.html页面,搭建完成后我们可以在浏览器看到所有的软件源;另外我们用于同步拉取软件源的是中科大USTC源,同步拉取使用rsync协议工具,而客户机使用则是通过HTTP协议进行更新源# 接下来,删除apache2初始页面并建立 debian/ 和 ubuntu 两个文件夹rm -r /var/www/html/index.htmlmkdir -p /var/www/html/debian && mkdir -p /var/www/html/debian-security/mkdir -p /var/www/html/ubuntu开始前可以用以下工具检查主机可用空间
fdisk -ldf -h# 开始同步拉取rsync -avz --relative rsync://rsync.mirrors.ustc.edu.cn/debian/ /var/www/html/debian/rsync -avz --relative rsync://rsync.mirrors.ustc.edu.cn/debian-security/ /var/www/html/debian-security/rsync -avz --relative rsync://rsync.mirrors.ustc.edu.cn/ubuntu/ /var/www/html/ubuntu/# 如果中途出现中断的,可以用以下命令续上rsync -avzu --delete --relative --partial --update rsync://<源地址>/ /var/www/html/<本地目录>/# -a (--archive):以归档模式同步文件,相当于-vrlptgoD选项的组合,其中包括递归地同步子目录、保留文件权限和时间、保留软链接等等# -v (--verbose):输出详细信息,让你了解rsync命令正在做什么# -z (--compress):对传输的文件进行压缩,可以加快传输速度# -u (--update):仅同步源目录中更新的文件# --delete:将目标目录中源目录不存在的文件删除,保持目录同步# --partial:传输中断后可以从断点继续传输# --relative:使rsync将相对路径名写入目标目录中经过漫长的等待,应该已经拉取完成,现在我们需要去每个软件源目录做Web后端的符号链接
cd /var/www/html/debian/ && sudo ln -s README.html index.htmlcd /var/www/html/debian-security/ && sudo ln -s README.security index.htmlcd /var/www/html/ubuntu/ && sudo ln -s README.html index.html完成后打开浏览器输入主机的本地内网地址,就可以看到刚刚同步的所有软件源了
- 借助cron工具立项配置每日凌晨2点定时更新
sudo nano /etc/crontab# 将以下内容加入文件内容的底部0 2 * * * rsync -avz --delete --partial --stats rsync://rsync.mirrors.ustc.edu.cn/debian/ /var/www/html/debian/ >> /var/log/cron.log 2>&10 2 * * * rsync -avz --delete --partial --stats rsync://rsync.mirrors.ustc.edu.cn/debian-security/ /var/www/html/debian-security/ >> /var/log/cron.log 2>&10 2 * * * rsync -avz --delete --partial --stats rsync://rsync.mirrors.ustc.edu.cn/ubuntu/ /var/www/html/ubuntu/ >> /var/log/cron.log 2>&1# 保存退出后我们需要重启以下cron服务sudo systemctl restart cron# 完成之后的每日更新状态我们只需要检查cron.log文件即可cat /var/log/cron.log如何增强安全性及配置GPG密钥就不细说了,方法甚多建议查看: 中科大源官方文档
以上便是本篇全部内容,感谢阅读
Debian本地镜像源搭建
https://cyber-mobile.net/posts/debian本地镜像源/