Хочете, щоб усі ПК у вашій локальній мережі оновлювались швидко, а інтернет-трафік не зникав, як вода в піску? Тоді встановімо локальний кешер пакетів apt-cacher-ng. Він зберігатиме завантажені .deb-пакети й віддаватиме їх іншим машинам у мережі. Результат — блискавичні оновлення Linux і менше навантаження на канал ⚡️

Основний How-to: встановлення сервера, клієнтів і перевірка

1) Вимоги

  • Будь-який Debian/Ubuntu як сервер Linux зі статичною IP-адресою, наприклад 192.168.1.10.
  • Кілька клієнтів у тій самій мережі (Debian/Ubuntu).
  • Відкритий TCP-порт 3142 (це порт apt-cacher-ng).

2) Встановлення apt-cacher-ng на сервері

На сервері виконайте apt-команди для інсталяції та запуску служби:

Якщо використовується UFW чи інший firewall, відкрийте порт 3142:

3) Базова конфігурація сервера

Відкрийте конфігураційний файл і увімкніть прослуховування на всіх інтерфейсах та обмежте доступ лише вашою підмережею. Це елемент безпеки і грамотних мережевих налаштувань:

Переконайтеся, що присутні або розкоментовані такі рядки (пристосуйте під вашу мережу):

Перезапустіть службу:

Швидка перевірка: відкрийте у браузері сторінку статистики (на сервері або з клієнта):

4) Налаштування клієнтів

На кожному клієнті створюємо apt-конфіг для проксі. Важливо: apt-cacher-ng кешує HTTP-трафік. Щоб кеш працював, джерела репозиторіїв мають бути через HTTP (не HTTPS). Це безпечно в LAN, адже apt перевіряє підписи пакунків.

Додайте файл /etc/apt/apt.conf.d/01proxy:

Якщо ваші джерела зараз використовують HTTPS, тимчасово перемкніть їх на HTTP. Для Ubuntu це можна зробити, замінивши HTTPS на HTTP у /etc/apt/sources.list та файлах у /etc/apt/sources.list.d/:

Тепер оновіть індекси та встановіть щось поширене (наприклад, curl), щоб прогріти кеш:

5) Перевірка, що кеш працює

  • На сервері відкрийте лог і подивіться звернення клієнтів:
  • У браузері перегляньте статистику: http://192.168.1.10:3142/acng-report.html — мають з’явитися рядки з Hits та Complete.
  • На другому клієнті повторіть встановлення того ж пакета — цього разу завантаження відбудеться миттєво з кешу 🚀

GUI-спосіб (для десктопів)

Повноцінної офіційної GUI для apt-проксі немає, але ви можете допомогти собі так:

FAQ

Найчастіше причин дві: 1) у клієнта репозиторії вказані через HTTPS (кешу не буде), 2) проксі не задано або IP/порт помилкові. Перевірте /etc/apt/apt.conf.d/01proxy і джерела в /etc/apt/sources.list*.

Так, це безпечно, адже apt перевіряє криптографічні підписи індексів і пакунків. Головне — використовуйте офіційні дзеркала та не відкривайте сервер назовні.

Полем AllowedNetworks у /etc/apt-cacher-ng/acng.conf. Наприклад: AllowedNetworks: 192.168.1.0/24. Не забудьте перезапустити службу.

Порада від Kernelka

Щоб не налаштовувати кожен ПК вручну, розгорніть файл 01proxy автоматично — через Ansible або простий SSH-скрипт. Також додайте локальний DNS-запис на кшталт apt.lan → IP вашого кешера — це спростить перенесення сервісу між машинами 💡

Підсумок

  • apt-cacher-ng прискорює оновлення Linux у локальній мережі та суттєво економить трафік.
  • Сервер: встановіть пакет, відкрийте порт 3142, обмежте доступ через AllowedNetworks.
  • Клієнти: додайте /etc/apt/apt.conf.d/01proxy і використовуйте HTTP-дзеркала.
  • Перевірка: логи та сторінка /acng-report.html покажуть HIT/MISS.
  • Підтримка: періодично очищайте кеш і контролюйте місце на диску.