Як створити APT-проксі за допомогою програми Raspberry PI з apt-cacher-ng?

Якщо ви живете і працюєте десь із повільнішим Інтернетом і вам потрібно придбати купу систем Debian та / або Ubuntu, оновлений цей проксі-сервер зробить ваше життя набагато простішим та швидшим.


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

sudo apt встановити Inkscape

APT завантажить архів програмного забезпечення з серверів сховища дистрибутива та встановить його. Це чудово працює, коли пакет програмного забезпечення невеликий, є лише декілька файлів, які потребують завантаження, і ваше інтернет-з’єднання швидко.

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

Проксі-сервер, зокрема проксі-сервер кешування, як apt-cacher-ng це програма, яка знаходиться між комп’ютером, який ви намагаєтесь оновити, та сервером репозиторію, в якому розміщене програмне забезпечення, яке ви завантажуєте. Машина, яку ви оновлюєте, запитає програмне забезпечення із проксі-сервера замість сховища, а проксі потім пересилатиме запит у сховище, завантажує програмне забезпечення та передає його назад на оновлення..

Розумна частина полягає в тому, що проксі зберігає копію всіх завантажених ним програмних файлів. Коли інша машина в локальній мережі намагається завантажити ті самі файли, тобто вона хоче встановити або оновити те саме програмне забезпечення, проксі вже має копію, яку він може надати запитувальній машині, не завантажуючи її.

Після першого завантаження всі наступні завантаження завантажуватимуться зі швидкістю локальної мережі.

Вимоги

Щоб виконати цей посібник, вам знадобиться наступне:

  • А Малина PI (будь-яка версія) працює Raspbian Buster що підключено до вашої локальної мережі.

  • Екран і клавіатура, щоб підключити ваш Raspberry Pi. Вони необов’язкові, якщо ви можете SSH у свій Raspberry Pi.
  • Некористовий користувач із підтримкою sudo на вашому Raspberry Pi.
  • Система Debian або Ubuntu у вашій локальній мережі.

Після того, як ви виконаєте всі ці вимоги, увійдіть у термінал на вашому PI Raspberry як користувач sudo та перейдіть до наступного розділу.

Встановлення apt-cacher-ng

Перш ніж встановлювати будь-які нові пакети в Linux, завжди добре провести оновлення системи. Це забезпечить, що у вашій системі працюють ті самі версії пакетів, які є у сховищах розповсюдження, а також, що ваш локальний список версій пакетів оновлений. Це дозволить уникнути помилок під час встановлення apt-cacher-ng.

Наступні команди оновлять вашу систему:

$ sudo apt оновлення
$ sudo apt оновлення

Тепер, коли ваш PI Raspberry оновлений, встановіть apt-cacher-ng:

$ sudo apt встановити apt-cacher-ng

Інсталятор запитає, чи хочете ви ввімкнути тунелі HTTPS через apt-cacher-ng. Ви повинні відповісти «Ні» на це питання. Ми налаштуємо APT для проксі-з’єднань HTTPS через apt-cacher-ng замість необхідності тунелів. Крім того, ви можете змінити ці параметри у файлі конфігурації apt-cacher-ng, якщо вам це потрібно.

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

$ sudo systemctl запустити apt-cacher-ng.service
$ sudo systemctl stop apt-cacher-ng.service
$ sudo systemctl перезапустити apt-cacher-ng.service

apt-cacher-ng зараз працює як системний демон, який прослуховує порт 3142 і готовий прийняти з’єднання від apt.

Налаштування apt на PI Raspberry

Перша система, яку ми налаштуємо на використання проксі-apt-cacher-ng, буде apt на PI Raspberry. Спосіб налаштування apt для використання proxy apt-cacher-ng буде перезапис URL-адрес у файл джерела apt. Файл джерел містить перелік URL-адрес сховищ, де програмне забезпечення дистрибутива доступне для завантаження.

Ви знайдете основний файл джерела для Raspbian за адресою /etc/apt/sources.list, а в новому встановленні виглядає наступним чином:

deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Рядок без коментарів нижче “apt-get update”, щоб увімкнути “apt-get source”
# deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

Єдиний активний (не коментований) рядок тут – перший, тобто:

deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

Нам потрібно змінити цей рядок, щоб відкрити файл текстовим редактором, тут ми використовуємо nano:

$ sudo nano /etc/apt/sources.list

Змініть перший рядок так, щоб він виглядав так:

deb http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

Що ви тут зробили, це вставити 127.0.0.1:3142 в URL.

IP-адреса 127.0.0.1 – це завжди IP локального комп’ютера, який часто називають “localhost”. Частина: 3142 вказує на порт.

Збережіть та вийдіть з нано, натиснувши CTRL + o, ENTER, CTRL + x.

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

apt та apt-cacher-ng тепер готові до тестування.

Тестування apt з apt-cacher-ng

Кожен раз, коли ви запускаєте apt, він буде кешувати копію завантажених файлів. apt робить це так, що ні, це не робить зайвих завантажень, а також зберігати локальну копію інсталяційного архіву у випадку, якщо пакет потрібно буде перевстановити і немає Інтернету.

Цей локальний кешування означає, що apt не зв’яжеться з проксі-сервером під час запуску apt оновлення або оновлення apt, якщо сховище не змінилося. Тому, щоб перевірити проксі, нам потрібно буде очистити підходящий кеш вручну. Наступні команди очистять усі кешовані пакети, які відповідають правильному:

$ sudo rm -rf / var / lib / apt / списки /
$ sudo rm -rf / var / кеш / apt / *

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

$ sudo apt оновлення

Ви повинні побачити кілька рядків виводу, які виглядають так:

Отримайте: 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 за помилками, виконавши цю команду:

$ хвост -f /var/log/apt-cacher-ng/apt-cacher.log

у другому терміналі. Якщо ви не зіткнулися з помилками, перейдіть до налаштування системи Debian або Ubuntu у вашій локальній мережі.

Налаштування Ubuntu або Debian System для використання 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:

$ ім’я хоста -Я

Це дозволить роздрукувати IP-адреси, які має Raspberry PI. Скористайтеся першою IP-адресою IPv4. Тут я буду використовувати приклад адреси 192.168.0.2. Вам потрібно буде замінити IP-адресу вашого PI Raspberry.

Знову на клієнтській машині відкрийте файл основних джерел за допомогою текстового редактора, тут ми використовуємо nano:

$ sudo nano /etc/apt/sources.list

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

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

Вам потрібно відредагувати ці рядки наступним чином, використовуючи IP-адресу вашої PI Raspberry, наприклад:

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 / списки / *
$ sudo rm -rf / var / кеш / apt / *

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

$ sudo apt оновлення
$ sudo apt оновлення

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

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

Ця машина тепер повністю налаштована для використання вашого нового проксі-сервера. Вам потрібно буде редагувати будь-який новий файл джерела, який ви додасте до цієї машини в майбутньому, включаючи будь-які нові рядки, які додаються для оновлення дистрибуції.

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 ви додали до URL-адреси 192.168.0.2:3142. Під час редагування рядків HTTPS потрібно додати 192.168.0.2плат142/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

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

Розділ «Ефективність кешу» інформує вас про те, скільки файлів apt-cacher-ng подано з кешу Vs, які з них обійшли кеш. “Хіти” вказують на файли, проксі-сервер, який подається з кеша, і “Пропуски” – це файли, які проксі-машина завантажив із сховища та додав у кеш..

Управління кешем

Файли, які apt-cacher-ng завантажує та обслуговує на клієнтських машинах у вашій локальній мережі, стануть застарілими, коли розробники додадуть нову версію до сховища. У цьому випадку ці stales 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