Как создать APT Proxy, используя Raspberry PI с apt-cacher-ng?

Если вы живете и работаете где-то с более медленным Интернетом и вам нужно обновить несколько систем Debian и / или Ubuntu, этот подходящий прокси сделает вашу жизнь намного проще и быстрее.


APT это программа, которую дистрибутивы Debian и Ubuntu Linux используют для установки и обновления своего программного обеспечения. В их стандартной конфигурации, когда вы используете apt для установки программы, например:

sudo apt установить inkscape

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

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

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

Умная часть заключается в том, что прокси-сервер будет хранить копию всех загруженных файлов программного обеспечения. Когда другая машина в локальной сети пытается загрузить те же файлы, т. Е. Она хочет установить или обновить то же программное обеспечение, у прокси-сервера уже есть копия, которую он может предоставить запрашивающей машине без необходимости ее загрузки..

После первой загрузки все последующие загрузки будут перемещаться со скоростью вашей локальной сети..

Требования

Для завершения этого руководства вам понадобится следующее:

  • Экран и клавиатура для подключения к вашему Raspberry Pi. Это необязательно, если вы можете использовать SSH в Raspberry Pi.
  • Пользователь без полномочий root с поддержкой sudo на вашем Raspberry Pi.
  • Система Debian или Ubuntu в вашей локальной сети.

Когда у вас есть все эти требования, войдите в терминал на Raspberry PI в качестве пользователя sudo и перейдите к следующему разделу..

Установка apt-cacher-ng

Перед установкой любых новых пакетов в Linux всегда полезно выполнить обновление системы. Это гарантирует, что в вашей системе работают те же версии пакетов, которые доступны в репозиториях дистрибутива, а также актуальность вашего локального списка версий пакетов. Это обеспечит отсутствие ошибок при установке apt-cacher-ng..

Следующие команды обновят вашу систему:

$ sudo apt update
$ sudo apt upgrade

Теперь, когда ваш Raspberry PI обновлен, установите apt-cacher-ng:

$ sudo apt install apt-cacher-ng

Установщик спросит вас, хотите ли вы включить туннели HTTPS через apt-cacher-ng. Вы должны ответить «Нет» на этот вопрос. Мы настроим APT для прокси-соединений HTTPS через apt-cacher-ng вместо использования туннелей. Кроме того, вы можете изменить эти параметры в файле конфигурации apt-cacher-ng позже, если вам это нужно.

В соответствии с современными соглашениями о программном обеспечении, файл службы systemd создается и включается при установке apt-cacher-ng. Это означает, что apt-cacher-ng автоматически запустится при загрузке, и вы также можете управлять apt-cacher-ng с помощью обычных служебных команд systemd:

$ sudo systemctl start apt-cacher-ng.service
$ sudo systemctl stop apt-cacher-ng.service
$ sudo systemctl restart apt-cacher-ng.service

apt-cacher-ng теперь работает как системный демон, прослушивающий порт 3142 и готовый принимать соединения от apt.

Конфигурирование apt на Raspberry PI

Первая система, которую мы настроим для использования прокси apt-cacher-ng, будет установлена ​​на Raspberry PI. Способ, которым мы настроим apt для использования прокси apt-cacher-ng, будет переписать URL-адреса в исходном файле apt. Исходный файл содержит список URL репозиториев, где можно скачать программное обеспечение дистрибутива..

Вы найдете основной исходный файл для Raspbian по адресу /etc/apt/sources.list и при новой установке выглядит следующим образом:

deb http://raspbian.raspberrypi.org/raspbian/ buster основной вклад несвободный rpi
# Раскомментируйте строку ниже, затем «apt-get update», чтобы включить «apt-get source»
# deb-src http://raspbian.raspberrypi.org/raspbian/ buster основной вклад несвободный rpi

Единственная активная (некомментированная) строка здесь – первая, т.е.

deb http://raspbian.raspberrypi.org/raspbian/ buster основной вклад несвободный rpi

Нам нужно изменить эту строку, поэтому откройте файл в текстовом редакторе, здесь мы используем nano:

$ sudo nano /etc/apt/sources.list

Измените первую строку, чтобы она выглядела следующим образом:

deb http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian/ buster основной вклад несвободный rpi

Что вы сделали здесь, чтобы вставить 127.0.0.1:3142 в URL.

IP-адрес 127.0.0.1 всегда является IP-адресом локального компьютера, который часто называют «локальным узлом». Часть: 3142 указывает порт.

Сохраните и выйдите из nano, нажав клавиши CTRL + o, ENTER, CTRL + x..

Теперь вам нужно будет внести те же изменения в исходный файл по адресу /etc/apt/sources.list.d/raspi.list.

apt и apt-cacher-ng теперь готовы к тестированию.

Тестирование apt с помощью apt-cacher-ng

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

Это локальное кэширование означает, что apt не будет связываться с прокси при запуске apt update или apt update, если хранилище не изменилось. Поэтому, чтобы протестировать прокси, нам нужно очистить apt-кэш вручную. Следующие команды очистят все кэшированные пакеты apt:

$ sudo rm -rf / var / lib / apt / lists /
$ sudo rm -rf / var / cache / apt / *

Теперь протестируйте apt, запустив обновление и проверив наличие ошибок:

$ sudo apt update

Вы должны увидеть несколько строк вывода, которые выглядят так:

Получите: 1 http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian buster InRelease [15,0 кБ]

Начало URL http://127.0.0.1:3142/ означает, что apt получает файлы обновления от apt-cacher-ng.

Вы также можете посмотреть файл журнала apt-cacher-ng на наличие ошибок, выполнив эту команду:

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

во втором терминале. Если вы не обнаружите никаких ошибок, вы можете перейти к настройке системы Debian или Ubuntu в вашей локальной сети..

Конфигурирование системы Ubuntu или Debian для использования apt-cacher-ng

Системы Debian или Ubuntu в вашей локальной сети, для которых вы хотите воспользоваться прокси-сервером apt-cacher-ng, не нуждаются в установке дополнительного программного обеспечения. Все, что вам нужно сделать, это переписать их исходные файлы, чтобы они собирали все свои обновления из apt-cacher-ng, вместо того чтобы напрямую связываться с хранилищем.

Изменение, которое необходимо внести в исходные файлы, точно такое же, как и изменение, внесенное в исходные коды Raspberry PI, за исключением того, что вам необходимо использовать IP-адрес Raspberry PI вместо 127.0.0.1..

Это означает, что вам сначала нужно получить IP-адрес вашего Raspberry Pi. Самый простой способ получить IP-адрес Raspberry PI – это запустить следующую команду в терминале Raspberry PI:

$ hostname -I

Это распечатает IP-адреса, которые есть у Raspberry PI. Используйте первый IPv4-адрес. Здесь я буду использовать пример адреса 192.168.0.2. Вам нужно будет заменить IP-адрес вашего Raspberry PI.

Вернувшись на клиентскую машину, откройте файл основных источников с помощью текстового редактора, здесь мы используем nano:

$ sudo nano /etc/apt/sources.list

Файл будет содержать строки в том же формате, что и в /etc/apt/sources.list Raspberry PI. Вот пример строки из установки Debian Buster:

deb http://ftp.debian.org/debian buster main

Вам нужно отредактировать эти строки следующим образом, используя IP вашего Raspberry PI, например:

deb http://192.168.0.2:3142/ftp.debian.org/debian buster main

Отредактируйте все строки в /etc/apt/sources.list и любом другом файле источников в /etc/apt/sources.list.d/. Затем удалите все локально кэшированные файлы для тестирования:

$ sudo rm -rf / var / lib / apt / lists / *
$ sudo rm -rf / var / cache / apt / *

Обновите систему еще раз:

$ sudo apt update
$ sudo apt upgrade

Выходные данные из apt должны указывать, что файлы обновлений поступают из прокси-сервера apt-cacher-ng путем печати строк, подобных следующей, которая содержит IP-адрес прокси:

Hit: 1 http://192.168.0.2:3142/ftp.debian.org/debian buster InRelease

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

APT через HTTPS

Все исходные файлы, которые мы рассмотрели, используют HTTP-соединения. Это преднамеренное проектное решение Debian и Ubuntu, поскольку в установочных архивах есть встроенные криптографические подписи, которые предотвращают злонамеренное вмешательство. Поэтому HTTPS не добавляет много дополнительной безопасности, в то же время значительно увеличивая инженерную нагрузку, связанную с наличием большого количества географически разнообразных зеркал..

Однако есть несколько преимуществ использования HTTPS, которые означают, что некоторые неофициальные репозитории используют HTTPS. apt-cacher-ng поддерживает два метода обработки репозиториев HTTPS.

Во-первых, передать соединения от клиента напрямую серверу хранилища. Это имеет печальное следствие, что пакеты не кэшируются apt-cacher-ng. Если вы хотите запустить apt-cacher-ng в этом режиме, откройте /etc/apt-cacher-ng/acng.conf в текстовом редакторе:

$ sudo nano /etc/apt-cacher-ng/acng.conf

И добавьте следующую строку:

PassThroughPattern:. *

Это настраивает apt-cacher-ng, чтобы позволить HTTPS-соединениям проходить от клиента к хранилищу.

Второй способ – изменить строки репозитория в исходных файлах клиента, чтобы клиент подключался к apt-cacher-ng через HTTP, а затем apt-cacher-ng подключался к репозиторию через HTTPS. Пакеты будут загружены в apt-cacher-ng через HTTPS, затем они будут отправлены на клиентский компьютер через HTTP. apt-cacher-ng может кэшировать пакеты, и мы не теряем преимущества HTTPS.

Следующая строка источников предназначена для доступа к хранилищу Docker через HTTPS:

deb [arch = amd64] https://download.docker.com/linux/debian buster stable

Когда вы редактировали строки HTTP, вы добавили 192.168.0.2:3142 в URL. Когда вы редактируете строки HTTPS, вам нужно добавить 192.168.0.2:3142/HTTPS/// например:

deb [arch = amd64] http://192.168.1.67:3142/HTTPS///download.docker.com/linux/debian buster stable

Теперь клиентская машина будет запрашивать пакет у apt-cacher-ng через HTTP, а apt-cacher-ng будет загружать и кэшировать пакеты из Docker через HTTPS..

Администрирование apt-cacher-ng

Веб-интерфейс доступен для управления apt-cacher-ng в вашей локальной сети. Чтобы получить доступ к этому графическому интерфейсу, вы должны указать вашему браузеру:

Http: //: 3142 / acng-report.html

Подстановка примера локальной сети IP, 192.168.0.2, дает нам:

http://192.168.0.2:3142/acng-report.html

Первый и самый важный раздел графического интерфейса «Статистика передачи» предоставляет вам информацию об объеме данных, загруженных из хранилищ, по сравнению с данными, которые были переданы из кэша. На следующем рисунке показан этот раздел графического интерфейса:

Раздел «Эффективность кеширования» информирует вас о том, сколько файлов apt-cacher-ng‘s обслуживало из его кеша, и какие из них обошли кеш. «Хиты» означают файлы, которые прокси-сервер обслуживал из кэша, а «Миски» – файлы, которые прокси-машина загружала из хранилища и добавляла в кэш..

Управление кешем

Файлы, которые apt-cacher-ng загружает и обслуживает на клиентских компьютерах в вашей локальной сети, станут устаревшими, когда разработчики добавят новую версию в репозиторий. Когда это происходит, эти устаревшие apt-cacher-ng должны удалить их из кэша, так как они больше не нужны и занимают место на вашем диске. Raspberry PI проверяет кэш и автоматически удаляет устаревшие файлы.

Когда вы установили apt-cacher-ng, вы также установили файл cron по адресу:

/etc/cron.daily/apt-cacher-ng

Это выполняется cron каждый день, который очищает кеш для вас.

Если вы хотите просмотреть и очистить кэш вручную, вам необходимо войти в веб-интерфейс и нажать кнопку с надписью «Начать сканирование и / или срок действия». Делать это обычно не нужно, но вам может понадобиться это, если вы обновляете из быстро обновляемых репозиториев.

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

Заинтересованы в изучении Raspberry Pi, проверить этот онлайн курс.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map