當今天的流量和普通網絡用戶的網速都以吉比特為單位,即使對於普通的互聯網客戶來說,這一切都是眨眼之間的事情,你可能會問,在局域網上設置本地存儲庫緩存的目的是什麼?

其中一個原因是為了減少互聯網帶寬和從本地緩存中拉取軟件包的高速度。但是,另一個主要原因應該是隱私。讓我們想象一下,您組織的客戶受到互聯網的限制,但是他們的Linux系統需要定期進行軟件和安全系統更新,或者只是需要新的軟件包。再進一步想象,一台運行在私有網絡上的伺服器,包含並為受限制的網絡段提供機密敏感信息,絕不能暴露在公共互聯網中。
這僅僅是您應該在您的局域網上建立本地存儲庫鏡像、為此工作配置邊緣伺服器並配置內部客戶端從其緩存鏡像中拉取軟件的一些原因。
Ubuntu提供了apt-mirror軟件包,用於將本地緩存與官方Ubuntu存儲庫同步,可以通過HTTP或FTP伺服器配置鏡像,以與本地系統客戶端共享其軟件包。
要建立完整的鏡像緩存,您的伺服器至少需要120G的可用空間用於本地存儲庫。
需求
- 至少120G的可用空間
- 已安裝並配置為匿名模式的Proftpd伺服器。
步驟1:配置伺服器
1. 或許你要做的第一件事是通過瀏覽Ubuntu存檔鏡像頁面,選擇你的國家,來識別靠近你位置的最接近和最快的Ubuntu鏡像。

如果你的國家提供了更多鏡像,你應該識別鏡像地址並根據ping或traceroute結果進行一些測試。

2. 下一步是安裝設置本地鏡像儲存庫所需的軟件。安裝apt-mirror和proftpd軟件包,並將proftpd配置為獨立系統守護進程。
$ sudo apt-get install apt-mirror proftpd-basic


3. 現在是時候配置apt-mirror伺服器了。通過添加你最接近的位置(步驟1)來打開和編輯/etc/apt/mirror.list文件-選擇你希望套件下載的系統路徑。預設apt-mirror使用/var/spool/apt-mirror位置作為本地緩存,但在本教程中,我們將會更改系統路徑,將set base_path指令指向/opt/apt-mirror位置。
$ sudo nano /etc/apt/mirror.list

而且你可以在清除指令之前取消註釋或添加其他來源列表-包括Debian來源-這取決於你的客戶使用哪個Ubuntu版本。你可以添加來源自12.04,如果你想,但請注意,添加更多來源需要更多的可用空間。
對於Debian源列表,請訪問Debian Wiki或Debian Sources列表生成器。
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 官方镜像同步并创建一个日志文件。
第二步:配置客户端
9. 要配置本地 Ubuntu 客户端,编辑客户端计算机上的 /etc/apt/source.list,将其指向 apt-mirror 服务器的IP地址或主机名—将http协议替换为ftp,然后更新系统。
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鏡像和源清單。
此外,如果您安裝全新的Ubuntu或Debian系統,當安裝程式詢問要使用哪個儲存庫時,請手動提供您的本地鏡像,使用ftp協議。
擁有自己的本地鏡像儲存庫的好處是,您始終處於最新狀態,您的本地客戶端無需連接到互聯網即可安裝更新或軟體。
Source:
https://www.tecmint.com/setup-local-repositories-in-ubuntu/