Локальный сервер обновлений для ПК с РЕДОС Linux на базе apt-cacher-ng. Часть 1.
В прошлой статье мы рассмотрели сборку apt-cacher-ng из исходного кода в РЕДОС Linux. Сегодня мы рассмотрим его настройку и настройку клиентских ПК на получение обновлений через собранный ранее кэширующий прокси-сервер.
Стоит обратить внимание, что при первом обновлении скорость загрузки пакетов на клиенте будет низкой, но после окончания загрузки всех пакетов, при обновлении следующих ПК, при условии что на них установлено одинаковое ПО и они постоянно обновляются, загрузка увеличиться будет в разы, а то и на порядок!
Настройка клиента для обновления РЕДОС linux с apt-cacher-ng
Для того, чтобы клиенты могли использовать прокси-сервер для загрузки обновлений, нам нужно указать адрес прокси-сервера в настройках утилиты dnf.
На ПК клиента с установленным РЕДОС Linux в файл:
/etc/dnf/dnf.confДобавим строку:
proxy=http://192.168.1.4:3142Обратите внимание! Замените:
192.168.1.4На адрес вашего сервера apt-cacher-ng!
Для внесения изменений запустим:
echo -e "\nproxy=http://192.168.1.4:3142\n" | sudo tee -a /etc/dnf/dnf.confОбратите внимание! В файле может быть несколько записей вида:
proxy=http://192.168.1.4:3142Но только последняя из них будет использована при настройке сервера!
Запустим
sudo dnf updateDNF выдаст ошибку:
RedOS - Base 0.0 B/s | 0 B 00:00
Errors during downloading metadata for repository 'base':
- Curl error (56): Failure when receiving data from the peer for https://mirror.yandex.ru/redos/8.0/x86_64/os/repodata/repomd.xml [CONNECT tunnel failed, response 403]
Error: Не удалось загрузить метаданные для репозитория «base»: Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
RedOS - Updates 0.0 B/s | 0 B 00:00
Errors during downloading metadata for repository 'updates':
- Curl error (56): Failure when receiving data from the peer for https://mirror.yandex.ru/redos/8.0/x86_64/updates/repodata/repomd.xml [CONNECT tunnel failed, response 403]
Error: Не удалось загрузить метаданные для репозитория «updates»: Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
Игнорируются репозитории: base, updates
Зависимости разрешены.
Отсутствуют действия для выполнения.
Выполнено!Прокси сервер не смог выполнить запрос!
Всё дело в том, что для подключения к apt-cacher-ng мы используем протокол HTTP, а для соединения с серверами обновления HTTPS. Для использования HTTPS нужна дополнительная настройка сервера apt-cacher-ng.
Настройка apt-cacher-ng для загрузки обновлений по HTTPS
В настоящее время в сети Интернет повсеместно используется протокол HTTPS, поэтому для загрузки любой информации из сети глобальной сети, я рекомендую использовать HTTPS.
Для загрузки обновлений с серверов Яндекса по протоколу HTTPS нам потребуется произвести настройку apt-cacher-ng.
В файл:
/etc/apt-cacher-ng/acng.confДобавим строку:
Remap-mirror-yandex-os: http://mos.ya.ru ; file:backends_ya_osДля этого запустим:
echo -e "\nRemap-mirror-yandex-os: http://mos.ya.ru ; file:backends_ya_os\n" | tee -a /etc/apt-cacher-ng/acng.confЗдесь мы добавили команду для переназначения (подмены) адреса:
http://mos.ya.ruна любой из адресов указанные в файле:
/etc/apt-cacher-ng/backends_ya_osНа сервере apt-cacher-ng создадим файл
/etc/apt-cacher-ng/backends_ya_osС содержимым:
https://mirror.yandex.ru/redos/8.0/x86_64/osДля этого запустим:
echo "https://mirror.yandex.ru/redos/8.0/x86_64/os" | sudo tee /etc/apt-cacher-ng/backends_ya_osДавайте рассмотрим, как это работает:
При получении запроса от клиента, через прокси сервер заменит часть адреса:
http://mos.ya.ruТ.е. будет произведена подмена части адреса на:
https://mirror.yandex.ru/redos/8.0/x86_64/osПри этом остальная часть запроса останется неизменной.
Таким образом адрес:
http://mos.ya.ru/repodata/269af7f579eea2bd2d741d0ad8d3c4276ac017c2b8cb6e7c15438c93e1a96f3f-comps.xmlБудет преобразован в:
https://mirror.yandex.ru/redos/8.0/x86_64/os/repodata/269af7f579eea2bd2d741d0ad8d3c4276ac017c2b8cb6e7c15438c93e1a96f3f-comps.xmlДобавим такие же настройки для репозитория обновлений:
Запустим:
echo " https://mirror.yandex.ru/redos/8.0/x86_64/updates" | sudo tee /etc/apt-cacher-ng/backends_ya_up
echo -e "\nRemap-mirror-yandex-update: http://mup.ya.ru ; file:backends_ya_up\n" | tee -a /etc/apt-cacher-ng/acng.confПерезапустим службу:
sudo systemctl restart apt-cacher-ngНастройка клиентского ПК с РЕДОС linux на обновление через apt-cacher-ng
На клиентском ПК изменим файлы c настройками репозиториев.
Откроем файл:
sudo mcedit /etc/yum.repos.d/RedOS-Base.repoЗаменим содержимое на:
[base]
name=RedOS - Base
baseurl=http://mos.ya.ru
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=1Откроем файл:
sudo mcedit /etc/yum.repos.d/RedOS-Updates.repoЗаменим содержимое на:
[updates]
name=RedOS - Updates
baseurl=http://mup.ya.ru
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=1Запустим обновление:
sudo dnf updateВ консоли на сервере начнут появляться строки:
1770348180|I|614632|192.168.1.21|mirror.yandex.ru/redos/8.0/x86_64/os/repodata/269af7f579eea2bd2d741d0ad8d3c4276ac017c2b8cb6e7c15438c93e1a96f3f-comps.xml
1770348180|O|614316|192.168.1.21|mirror.yandex.ru/redos/8.0/x86_64/os/repodata/269af7f579eea2bd2d741d0ad8d3c4276ac017c2b8cb6e7c15438c93e1a96f3f-comps.xml
1770348220|I|17174609|192.168.1.21|mirror.yandex.ru/redos/8.0/x86_64/os/repodata/4f44a969e75281a6e25cb775eb1c407132fe50ecbb52780a6896a6c7036eb9a8-primary.xml.zst
1770348220|O|17174291|192.168.1.21|mirror.yandex.ru/redos/8.0/x86_64/os/repodata/4f44a969e75281a6e25cb775eb1c407132fe50ecbb52780a6896a6c7036eb9a8-primary.xml.zstКаждая строка начинается с даты в формате Epoch.
С помощью онлайн калькуляторов можно проверить, что число:
1770348220На самом деле:
Wed Feb 18 2026 03:06:14 GMT+0000Значения:
O или IОзначают
Input
OutputЭто направление загрузка/отдача.
Далее следует размер загружаемого файла, ip-адрес ПК, который запрашивает файл и полный путь до файла.
Данные строки будут появляться после окончательной загрузки файла с вышестоящего сервера обновлений.
На сервере все файлы будут сохраняться в папку:
/var/cache/apt-cacher-ng/mirror.yandex.ru/Заключение
Сегодня мы рассмотрели настройку локального сервера обновлений в РЕДОС Linux:
Рассмотрели настройку сервера apt-cacher-ng;
Рассмотрели настройку клиента для работы с apt-cacher-ng.
Добавить комментарий