Четверг, 19.02.2026 19:00

Настройка кэширующего прокси сервера apt-cacher-ng для установки обновлений РЕДОС Linux в локальной сети

Для загрузки обновление в РЕДОС Linux по умолчанию используются сервера разработчика или зеркала Яндекса. Когда в сети насчитывается больше 10 ПК постоянная загрузка одних и тех же файлов может создавать значительный трафик до этих серверов.

Чтобы не загружать одни и те же файлы много раз, имеет смысл установить кэширующий прокси-сервер, созданный специально для загрузки и временного хранения метаданных репозиториев и файлов с пакетами.

Одним из популярных таких серверов является apt-cacher-ng. Изначально он создавался для работы с APT-репозиториями, но со временем его доработали, и он так же хорошо работает с RPM-репозиториями.

Все загружаемые файлы автоматически сохраняются в специальной папке на сервере. При следующем обращении, при условии, что файл не изменился, клиенту будет отдан уже загруженный файл, таким образом снижается нагрузка на канал провайдера сети Интернет и повышается скорость загрузки, так как внутри сети она всегда выше!

Установка apt-cacher-ng в РЕДОС linux

Установим пакет:

sudo dnf install apt-cacher-ng

Активируем автозапуск службы:

sudo systemctl status apt-cacher-ng

Если используется межсетевой экран, обязательно разрешим доступ по порту:

sudo ufw allow 3142/tcp

Включим службу:

sudo systemctl enable --now apt-cacher-ng

Чтобы следить за процессом загрузки воспользуемся командой в консоли:

sudo tail -f /var/log/apt-cacher-ng/apt-cacher.log

В последующем, в нём будут появляться строки вида:

1770335215|I|2821|192.168.1.21|repo.red-soft.ru/redos/8.0/x86_64/os/repodata/repomd.xml
1770335215|O|2617|192.168.1.21|repo.red-soft.ru/redos/8.0/x86_64/os/repodata/repomd.xml
1770335239|I|614462|192.168.1.21|repo.red-soft.ru/redos/8.0/x86_64/os/repodata/269af7f579eea2bd2d741d0ad8d3c4276ac017c2b8cb6e7c15438c93e1a96f3f-comps.xml
1770335239|O|614316|192.168.1.21|repo.red-soft.ru/redos/8.0/x86_64/os/repodata/269af7f579eea2bd2d741d0ad8d3c4276ac017c2b8cb6e7c15438c93e1a96f3f-comps.xml

Загруженные файлы будут размещены в папке с кэшем:

/var/cache/apt-cacher-ng/

Настройка клиента

Для того, чтобы клиенты могли использовать прокси-сервер для загрузки обновлений, нам нужно указать указать адрес прокси-сервера в настройках утилиты dnf.

В файл

/etc/dnf/dnf.conf

Добавим строку:

proxy=http://192.168.1.4:3142

Заменим:

192.168.1.4

Где 192.168.1.4 адрес сервера на котором запущен apt-cacher-ng!

Для этого запустим:

echo -e "\nproxy=http://192.168.130.4:3142\n" | sudo tee -a /etc/dnf/dnf.conf

Помимо этого, внесем изменения в файлы с настройками репозиториев:

Откроем файл:

sudo mcedit /etc/yum.repos.d/RedOS-Base.repo

Заменим содержимое на:

[base]
name=RedOS - Base
baseurl=https://mirror.yandex.ru/redos/8.0/$basearch/os
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=https://mirror.yandex.ru/redos/8.0/$basearch/updates
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=1

Запустим

sudo dnf update

Загрузка зависнет или выдаст ошибку:

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
Зависимости разрешены.
Отсутствуют действия для выполнения.
Выполнено!

Прокси сервер не смог выполнить запрос, так как для использования HTTPS нужна дополнительная настройка сервера apt-cacher-ng с указанием сертификатов.

Внутри сети мы будем использовать http, так как пакеты и так уже подписаны GPG и их модификация исключена.

Используем протокол HTTP для загрузки обновлений через apt-cacher-ng

Откроем файл:

sudo mcedit /etc/yum.repos.d/RedOS-Base.repo

Заменим содержимое на:

[base]
name=RedOS - Base
baseurl=http://mirror.yandex.ru/redos/8.0/$basearch/os
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://mirror.yandex.ru/redos/8.0/$basearch/updates
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT
enabled=1

Мы изменили протокол на http://

Перезапустим службу:

sudo systemctl restart apt-cacher-ng

Запустим на сервере apt-cacher-ng:

sudo tail -f /var/log/apt-cacher-ng/apt-cacher.log

Запустим на клиенте:

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

На этот раз загрузка обновлений произойдет без проблем.

Будет создана папка:

/var/cache/apt-cacher-ng/mirror.yandex.ru

С загруженными файлами.

sudo dnf update

Начнется обновление

Настройка apt-cacher-ng для загрузки обновлений по HTTPS

В настоящее время в сети Интернет повсеместно используется протокол HTTPS. Возможно и в вашей локальной сети существует требование загрузки обновлений только по протоколу HTTPS. В таком случае нам потребуется дополнительная настройка сервера и клиента.

На сервере apt-cacher-ng создадим файл

/etc/apt-cacher-ng/backends_yandex

С содержимым:

https://mirror.yandex.ru/redos/8.0/x86_64

Для этого запустим:

echo "https://mirror.yandex.ru/redos/8.0/x86_64" | sudo tee /etc/apt-cacher-ng/backends_yandex

В файл:

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

Добавим строку:

Remap-mirror-yandex: http://m.ya.ru ; file:backends_yandex

Для этого запустим:

echo -e "\nRemap-mirror-yandex: http://m.ya.ru ; file:backends_yandex\n" | tee -a /etc/apt-cacher-ng/acng.conf

Перезапустим службу:

sudo systemctl restart apt-cacher-ng

Настройка клиента для обновления по протоколу HTTPS

На клиентском ПК изменим файлы 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

Обновление будет произведено.

Заключение

 

Дело в том

 

Использование apt-cacher-ng как прокси сервера

В конец файла

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

 

PassThroughPattern: mirror\.yandex\.ru:443$

Перезапустим службу

sudo systemctl restart apt-cacher-ng

 

 

(65-66/292): avahi-libs-0.8-21.red80.x86_64.rpm                                                     32% [===============================                                                                   ] 4.6 MB/s | 152 MB     01:09 ETA

Загруженные пакеты были сохранены в кэше до следующей успешной транзакции.

Вы можете удалить кэшированные пакеты, выполнив «dnf clean packages».

Ошибка: Ошибка при загрузке пакетов:

  avahi-glib-0.8-21.red80.x86_64: Cannot download, all mirrors were already tried without success

Категория РЕД ОС Linux

Добавить комментарий

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
Просмотров: 61