Задача: Где прописывается прокси для APT
у Raspbian Stretch
Т.е. я хочу чтобы система Raspbian Stretch
которая записана на карту памяти MicroSD
и используется, как операционная система для миникомпьютера Raspberry Pi 3 Model B
тянула устанавливаемые на нее пакеты не через интернет, а через используемые в моей локальной сети сервис apt-cacher-ng. Т.к. все устанавливаемое по части операционных систем у меня идет через подготовленный iPXE
меню + файл ответов посредством сервиса FOG
. + настроить apt
на работу через 3proxy + tor
Вот к примеру строка скопированная из файла ответов server.seed:
d-i mirror/http/proxy string http://172.35.35.8:3142/
Подключаюсь к миникомпьютеру по SSH
в своей локальной сети:
ekzorchik@navy:~$ ssh -l pi 172.33.33.10 Warning: Permanently added '172.33.33.10' (ECDSA) to the list of known hosts. pi@172.33.33.10's password: Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Fri Nov 22 01:04:09 2019 from 172.33.33.16 SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password. pi@raspberrypi:~ $
Применительно к APT:
(если файла 10proxy
нет то его создаю)
pi@raspberrypi:~ $ sudo nano /etc/apt/apt.conf.d/10proxy Acquire::http::Proxy "http://172.35.35.8:3142/";
После не забываем сохранить внесенные изменения.
pi@raspberrypi:~ $ sudo rm -Rf /var/lib/apt/lists pi@raspberrypi:~ $ sudo apt-get update && sudo apt-get upgrade -y
смотрю на стороне сервере где сервис apt-cacher-ng
ekzorchik@srv-wiki:~$ sudo netstat -tulpn | grep :3142 [sudo] password for ekzorchik: tcp 0 0 172.35.35.8:3142 0.0.0.0:* LISTEN 1065/apt-cacher-ng tcp 0 0 127.0.0.1:3142 0.0.0.0:* LISTEN 1065/apt-cacher-ng ekzorchik@srv-wiki:~$ cat /etc/apt-cacher-ng/acng.conf | grep CacheDir | grep -v "#" CacheDir: /data/repository ekzorchik@srv-wiki:~$ ekzorchik@srv-wiki:~$ ekzorchik@srv-wiki:~$ sudo apt-get install tree -y ekzorchik@srv-wiki:~$ tree /data/repository/raspbian.raspberrypi.org/raspbian/dists/stretch/ /data/repository/raspbian.raspberrypi.org/raspbian/dists/stretch/ ├── contrib │ └── binary-armhf │ ├── Packages.xz │ └── Packages.xz.head ├── InRelease ├── InRelease.head ├── main │ └── binary-armhf │ ├── Packages.xz │ └── Packages.xz.head ├── non-free │ └── binary-armhf │ ├── Packages.xz │ └── Packages.xz.head └── rpi └── binary-armhf ├── Packages.xz └── Packages.xz.head 8 directories, 10 files ekzorchik@srv-wiki:~$ ekzorchik@srv-wiki:~$ sudo du -sh /data/repository/raspbian.raspberrypi.org/raspbian/dists/stretch/ 12M /data/repository/raspbian.raspberrypi.org/raspbian/dists/stretch/
Пока размер локального репозитария всего 12Mb.
Общий же каталог для всех запрашиваемых репозитариев с моих систем уже более 8Gb
ekzorchik@srv-wiki:~$ sudo du -sh /data/repository/ 8.2G /data/repository/ ekzorchik@srv-wiki:~$
если записать образ Raspbian Stretch
на карту памяти и подключить в Rasbperry Pi 3 Model B
, указать настройки выше для прокси в локальной сети, то каталог с локальными deb
пакетами на сервере по идее должен увеличиться и он увеличился.
ekzorchik@srv-wiki:~$ sudo du -sh /data/repository/raspbian.raspberrypi.org/ 156M /data/repository/raspbian.raspberrypi.org/ ekzorchik@srv-wiki:~$ sudo du -sh /data/repository/ 8.4G /data/repository/
Я экономлю интернет трафик и быстрее произвожу развертывание систем, сервисов в локальной сети. По сути это WSUS
но для Ubuntu, Debian, Raspbian
операционных систем.
Так, а тут задумка — а как сделать дабы пустить трафик через SOCKS
, решение через связку 3proxy + tor — Работает!
pi@raspberrypi:~ $ sudo nano /etc/apt/apt.conf.d/10proxy Acquire::http::Proxy "socks5h://172.35.35.8:50001/";
Просто в моей сети работает связка
3proxy + tor
для организации доступа к ресурсам которые попадают под запрет. Нужно они только в общеобразовательных целях.
pi@raspberrypi:~ $ sudo rm -Rf /var/lib/apt/lists pi@raspberrypi:~ $ sudo apt-get update && sudo apt-get upgrade -y
и да, теперь репозитарии обновляется через связку 3proxy+tor
из интернета, т.е. я прикидываюся каждый раз разным объектом сети интернет.
Работает и без каких-либо ошибок. Но все же я предпочитаю, чтобы все системы Linux
которыми я пользуюсь выходили в интернет через развернутые локальные сервисы. Может стоит сам сервис apt-cacher-ng
организовать работать через связку 3proxy+tor
— а это уже интереснее. Надо будет сделать заметку на этот счет.
А пока задача выполнена. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.