网站搜索

在 Ubuntu 14.04 服务器中使用“Apt-Cacher-NG”设置“Apt-Cache”服务器


Apt-Cacher-NG 是基于 Debian 的发行版(如 Ubuntu、Kubuntu、Xubuntu、Edubuntu、Linux Mint 等)的缓存代理服务器(或 apt 代理),用于在本地缓存下载的包你的服务器。

假设您有一个小型网络,连接的计算机很少,并且您想要在每个系统上手动安装和更新软件包,那么这将是一项艰巨的任务并且耗时,这就是在任何系统上配置 apt-cacher-ng 的原因这是个好主意,因为它会首先将所有从互联网下载的软件包缓存在 apt-cache 服务器上,而 Debian 的其余部分、Ubuntu 机器则从 Apt-Cache 获取它们,这也将节省我们宝贵的时间和互联网带宽。

特征

  1. apt-cacher-ng 将节省我们的时间。
  2. apt-cacher-ng 将节省我们的带宽。
  3. 我们可以使用导入选项将 ISO 映像数据或 DVD 集成到 apt-cacher-ng 中。

这里我将在 Ubuntu 14.04 中设置一个缓存服务器。在我们的办公室,我们使用 30 多个 Ubuntu 桌面客户端、28 个 Ubuntu 服务器 VMS(包括 12.04 和 14.04)、4 个 Linux mint 桌面。但我们使用在 Ubuntu 12.04 LTS 服务器版中运行的单个缓存服务器。到目前为止,软件包之间没有任何冲突。现在让我们开始设置 apt-cache 服务器。

注意:这不是 Ubuntu 或 Debian 镜像,这只是 apt 软件包的缓存服务器。

我的服务器设置
Apt Cache Server OS   : Ubuntu 14.04 LTS Server
Apt Cache IP Address  : 192.168.0.125
Apt Cache Hostname    : aptcacher.tecmint.lan
Default Port	      : 3142
我的客户端设置
Client OS             : Ubuntu 14.04 LTS
Client IP Address     : 192.168.0.3
Client Hostname       : client.tecmint.lan

步骤1:在服务器上安装和配置Apt-Cacher-NG

首先,使用“Ctr+Alt+T”登录服务器打开终端,并使用以下“apt”命令安装 Apt-Cacher-NG 软件包。

sudo apt-get install apt-cacher-ng

安装完成后,apt-cacher-ng将自动启动。现在打开并编辑位于“/etc/apt-cacher-ng”目录下的cache-ng配置文件。

sudo vim /etc/apt-cacher-ng/acng.conf

接下来,我们需要按照建议取消注释以下行,如果注释了,请从开头删除“#”。在安装或更新软件包时,所有 dpkg 软件包都将存储在该目录中。

CacheDir: /var/cache/apt-cacher-ng

要启用日志,我们需要启用此行,默认情况下它将启用。

LogDir: /var/log/apt-cacher-ng

apt-cacher会监听端口3142,如果需要更改端口,可以更改端口。

Port:3142

接下来,在该行下方添加行“BindAddress:0.0.0.0”条目:

BindAddress: localhost 192.168.7.254 publicNameOnMainInterface
BindAddress: 0.0.0.0

这里我们可以定义Ubuntu、Debian等都需要缓存的发行版。

Remap-debrep: file:deb_mirror*.gz /debian ; file:backends_debian # Debian Archives
Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu # Ubuntu Archives
Remap-debvol: file:debvol_mirror*.gz /debian-volatile ; file:backends_debvol # Debian Volatile Archives

如果我们需要在 Web 界面中获取 apt-cache 的报告,我们需要启用以下行,但默认情况下会启用此功能。

ReportPage: acng-report.html

要获取有关“log”的更多信息,我们必须取消注释以下行,如果我们将其设置为 0,则仅记录活动类型、时间、包裹传输的大小。

VerboseLog: 1

要运行 apt-cacher 服务,我们需要在配置中启用 pid 文件。

PidFile: /var/run/apt-cacher-ng/pid

删除未引用的文件。

ExTreshold: 4

最后,我们完成了配置,保存并关闭文件。现在我们都设置使用以下命令重新启动 apt-cacher-ng 服务。

sudo /etc/init.d/apt-cacher-ng restart

使用以下 URL 在 Web 界面中访问 apt-cacher-ng 的报告页面。

http://192.168.0.125:3142/

在这里我们可以看到 apt-cacher-ng 的报告页面,点击该页面底部的静态报告和配置页面即可获取下载命中率和未命中率。

我们需要从报告主页复制代理 URL 供以后使用。我们甚至可以通过 apt-cache 在该服务器中安装软件包,这些软件包可以在本地配置,只需在 /etc/apt/apt.conf.d/02proxy 中添加以下条目即可。

Acquire::http { Proxy "http://192.168.0.125:3142"; };

第2步:客户端配置

首先登录客户端计算机(Ubuntu/Debain)并在“/etc/apt/apt.conf.d/”目录下创建“02proxy”文件。

sudo vim /etc/apt/apt.conf.d/02proxy

现在复制获取 URL 并附加到 02proxy 文件。您将从 apt-cacher-ng 访问报告页面获取以下 URL:http://192.168.0.125:3142/。

Acquire::http { Proxy "http://192.168.0.125:3142"; };

使用 wq! 保存并退出。在此,如果客户端计算机上下载了任何软件包,则会将其缓存到 apt-cache 服务器上。

在我的客户端机器中,有 92 个软件包可以更新,其中 43 个更新是可用的安全更新。我们已经对缓存服务器应用了相同的更新。因此,这些包现在将缓存在 apt-cacher 中。如果我更新这台客户端计算机,那么从互联网获取软件包不会花费太多时间。

现在更新存储库并升级软件包。

sudo apt-get update 
sudo apt-get upgrade

在上面的屏幕中,它显示我们需要更新 85 个软件包,其大小为 104MB,让我们看看获取该软件包需要多长时间。

我什至不在数据中心,我只是使用 256Kbps 的互联网连接,下载速度仅为 50Kbps 到 60Kbps。但看看下图,它是如何在 3 秒内获取 104MB 的?这是因为它已经缓存在 apt-cacher-ng 服务器中。

如果我们需要查看已下载的缓存计数数据,我们可以在任何网络浏览器中访问 ip:port (192.168.0.125:3142) 来查看统计信息,就像我上面解释的那样。

同时,我们下载任何软件包以安装在任何 Debian/Ubuntu 计算机中,如果软件包在 apt-cache 中可用,它将从 apt-cache-ng 服务器获取,如果没有,它将从互联网获取到本地存储库以供将来使用。

在本文中,我们了解了如何使用 apt-cacher-ng 为 apt 软件包设置本地缓存服务器,许多人希望这种设置可以节省时间和带宽。我希望这对所有使用 Debian/Ubuntu 机器的人有所帮助。