Как да създадете APT Proxy с помощта на Raspberry PI с apt-cacher-ng?

Ако живеете и работите някъде с по-бавен интернет и трябва да получите куп Debian и / или Ubuntu системи, актуализирани, този подходящ прокси ще направи живота ви много по-лесен и по-бърз.


APT е програмата, която дистрибуциите на Debian и Ubuntu Linux използват за инсталиране и актуализиране на софтуера си. В тяхната външна конфигурация, когато използвате apt за инсталиране на програма, например:

sudo apt инсталирате inkscape

APT ще изтегли софтуерния архив от сървърите на хранилището за дистрибуция и ще го инсталира. Това работи чудесно, когато софтуерният пакет е малък, има само няколко файла, които се нуждаят от изтегляне и вашата интернет връзка е бърза.

Ако обаче имате много софтуер за инсталиране и имате офис, пълен с машини, които всички се нуждаят от актуализиране и имате бавна интернет връзка, може да отнеме много време, за да изтеглите и инсталирате всичко на всяка машина.

Прокси сървър, по-специално кеширащ прокси, като ап-cacher-нг е програма, която седи между компютъра, който се опитвате да актуализирате, и сървъра на хранилището, който съхранява софтуера, който изтегляте. Машината, която актуализирате, ще поиска софтуера от прокси сървъра вместо от хранилището, а след това проксито ще препрати заявката в хранилището, ще изтегли софтуера и ще го върне обратно на актуализиращата машина.

Умната част е, че проксито ще запази копие на всички софтуерни файлове, които е изтеглил. Когато друга машина в локалната мрежа се опита да изтегли същите файлове, т.е. иска да инсталира или актуализира същия софтуер, проксито вече има копие, което може да даде на заявяващата машина, без да се налага да я изтегля.

След първото изтегляне, всички следващи изтегляния ще се зареждат със скорост от вашата локална мрежа.

Изисквания

За да завършите това ръководство, ще ви е необходимо следното:

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

След като имате всички тези изисквания, влезте в терминал на вашия Raspberry PI като sudo потребител и преминете към следващия раздел.

Инсталиране на apt-cacher-ng

Преди да инсталирате нови пакети в Linux, винаги е добра идея да извършите актуализация на системата. Това ще гарантира, че вашата система работи със същите версии на пакетите, които са налични в дистрибуторите за разпространение, както и че вашият локален списък на версиите на пакетите е актуален. Това ще гарантира, че няма да срещнете грешки по време на инсталирането на apt-cacher-ng.

Следните команди ще актуализират вашата система:

$ sudo подходяща актуализация
$ 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 на Raspberry PI. Начинът, по който ще конфигурираме apt да използва prot 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 показва порта.

Запишете и излезте от 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 актуализация или надстройка apt, ако хранилището не се е променило. Следователно, за да тестваме прокси, ще трябва да изчистим кеш-паметта ръчно. Следващите команди ще изчистят всички кеширани пакети на apt:

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

Сега тествайте apt, като пуснете актуализация и проверите за грешки:

$ sudo подходяща актуализация

Трябва да видите няколко реда на продукцията, които изглеждат като:

Вземете: 1 http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]

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 за използване на apt-cacher-ng

Системите Debian или Ubuntu във вашата локална мрежа, които искате да се възползвате от proxy apt-cacher-ng прокси, не се нуждаят от допълнителен инсталиран софтуер. Всичко, което трябва да направите, е да презапишете техните източници, така че да събират всичките си актуализации от apt-cacher-ng, вместо да се свързват директно с хранилището.

Промяната, която трябва да направите изходните файлове, е абсолютно същата като редактирането, което сте направили към източниците на Raspberry PI, с изключение на това, че трябва да използвате IP адреса на Raspberry PI вместо 127.0.0.1.

Това означава, че първо ще трябва да получите IP адреса на вашия Raspberry Pi. Най-лесният начин да получите IP адреса на PI Raspberry е да изпълните следната команда в терминал на Raspberry PI:

$ hostname -I

Това ще разпечата IP адресите, които има Raspberry PI. Използвайте първия IPv4 IP адрес. Тук ще използвам примерния адрес 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 на вашия 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 / списъци / *
$ sudo rm -rf / var / кеш / apt / *

Актуализирайте системата отново:

$ sudo подходяща актуализация
$ sudo apt надграждане

Изходът от apt трябва да показва, че актуализационните файлове идват от прокси apt-cacher-ng чрез отпечатване на редове като следните, които съдържат IP на проксито:

Ударете: 1 http://192.168.0.2:1142/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 редове, вие добавихте 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

Наличен е уеб GUI за управление на apt-cacher-ng във вашата локална мрежа. За да получите достъп до този GUI, трябва да насочите браузъра си към:

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 всеки ден, което изчиства кеша за вас.

Ако искате да прегледате и изчистите кеша ръчно, тогава трябва да влезете в уеб GUI и да кликнете върху бутона с надпис „Стартиране на сканиране и / или изтичане“. Това обикновено не е необходимо, но може да се наложи да го направите, ако се актуализирате от бързо актуализиране на хранилища.

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

Интересува се от проучване на 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