网站搜索

在 Ubuntu 和 Debian 系统中使用“apt-mirror”设置本地存储库


如今,即使对于普通互联网客户端,流量和休闲互联网速度眨眼间也能达到数十千兆级,您可能会问,在 LAN 上设置本地存储库缓存的目的是什么?

原因之一是减少从本地缓存提取数据包的互联网带宽和高速。但是,另一个主要原因应该是隐私。让我们想象一下,您组织中的客户受到互联网限制,但他们的 Linux 机器需要定期进行软件和安全系统更新,或者只需要新的软件包。更进一步说,在专用网络上运行的服务器仅包含并为受限制的网段提供秘密敏感信息,并且永远不应暴露于公共互联网。

这只是您应该在 LAN 上构建本地存储库镜像、委托边缘服务器执行此作业以及配置内部客户端从其缓存镜像中提取软件的几个原因。

Ubuntu 提供了 apt-mirror 软件包来将本地缓存与官方 Ubuntu 存储库同步,镜像可以通过 HTTPFTP 服务器进行配置以共享其镜像与本地系统客户端的软件包。

对于完整的镜像缓存,您的服务器至少需要为本地存储库保留 120G 可用空间。

要求

  1. 至少 120G 可用空间
  2. Proftpd 服务器以匿名模式安装和配置。

第1步:配置服务器

1. 您可能要做的第一件事是通过访问 Ubuntu Archive Mirror 页面并选择您的国家/地区来确定您所在位置附近最近且最快的 Ubuntu 镜像。

如果您所在的国家/地区提供更多镜像,您应该识别镜像地址并根据 pingtraceroute 结果进行一些测试。

2.下一步是安装设置本地镜像存储库所需的软件。安装apt-mirrorproftpd软件包并将proftpd配置为独立的系统守护进程。

sudo apt-get install apt-mirror proftpd-basic

3.现在是时候配置apt-mirror服务器了。通过添加最近的位置来打开并编辑 /etc/apt/mirror.list 文件(第 1 步) - 可选,如果默认镜像足够快或者您不在其中快点 - 并选择要下载软件包的系统路径。默认情况下,apt-mirror使用/var/spool/apt-mirror位置进行本地缓存,但在本教程中,我们将使用更改系统路径和点集base_path 指令指向 /opt/apt-mirror 位置。

sudo nano /etc/apt/mirror.list

此外,您还可以在 clean 指令之前取消注释或添加其他源列表 - 包括 Debian 源 - 取决于您的客户使用的 Ubuntu 版本。如果您愿意,您可以添加 12.04 中的源,但请注意,添加更多源需要更多可用空间。

对于 Debian 源列表,请访问 Debian Wiki 或 Debian 源列表生成器。

4. 现在您只需创建路径目录并运行 apt-mirror 命令即可将官方 Ubuntu 存储库与我们的本地镜像同步。

sudo mkdir -p /opt/apt-mirror
sudo apt-mirror

正如您所看到的,apt-mirror 继续进行索引和下载档案,显示下载的软件包总数及其大小。正如我们可以想象的那样,110-120 GB 足够大,需要一些时间来下载。

您可以运行 ls 命令来查看目录内容。

一旦初始下载完成,以后的下载量将会很小。

5.apt-mirror下载软件包时,您可以配置您的Proftpd服务器。您需要做的第一件事是,通过运行以下命令为 proftpd 创建匿名配置文件。

sudo nano /etc/proftpd/conf.d/anonymous.conf

然后将以下内容添加到anonymous.conf文件中并重新启动proftd服务。

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
  MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>

6. 下一步是通过发出命令运行绑定安装,将 apt-mirror 路径链接到 proftpd 路径。

sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/

要验证它,请运行不带参数或选项的 mount 命令。

mount

7.最后一步是确保Proftpd服务器在系统重新启动mirror-cache目录后自动启动也自动安装在 ftp 服务器路径上。要自动启用 proftpd,请运行以下命令。

sudo update-rc.d proftpd enable

要在 proftpd 上自动挂载 apt-mirror 缓存,请打开并编辑 /etc/rc.local 文件。

sudo nano /etc/rc.local

exit 0 指令之前添加以下行。在尝试安装之前也请延迟 5 秒。

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/

如果您从 Debian 存储库中提取软件包,请运行以下命令并确保启用上述 rc.local 文件的适当设置。

sudo mkdir /srv/ftp/debian
sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/

8. 对于每日 apt-mirror 同步,您还可以创建一个系统计划作业以在每天凌晨 2 点运行。运行 crontab 命令,选择您喜欢的编辑器,然后添加以下行语法。

sudo crontab –e

在最后一行添加以下行。

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log

现在,每天凌晨 2 点,您的系统存储库缓存将与 Ubuntu 官方镜像同步并创建日志文件。

第 2 步:配置客户端

9. 要配置本地 Ubuntu 客户端,请在客户端计算机上编辑 /etc/apt/source.list 以指向 IP 地址或主机名apt-mirror 服务器 – 用 ftp 替换 http 协议,然后更新系统。

deb ftp://192.168.1.13/ubuntu trusty universe
deb ftp://192.168.1.13/ubuntu trusty main restricted
deb ftp://192.168.1.13/ubuntu trusty-updates main restricted
## Ad so on….

10. 要查看存储库,您实际上可以打开浏览器并使用 FTP 协议指向您的域名服务器 IP 地址。

相同的系统也适用于Debian客户端和服务器,唯一需要更改的是debian镜像源列表

此外,如果您安装新的 UbuntuDebian 系统,当安装程序询问要使用哪个存储库时,请通过 ftp 协议手动提供本地镜像。

拥有自己的本地镜像存储库的好处是,您始终处于最新状态,并且本地客户端无需连接到 Internet 来安装更新或软件。