Làm cách nào để tạo Proxy APT bằng Raspberry PI với apt-cacher-ng?

Nếu bạn sống và làm việc ở đâu đó với internet chậm hơn và cần có một loạt các hệ thống Debian và / hoặc Ubuntu được cập nhật proxy apt này sẽ giúp cuộc sống của bạn dễ dàng và nhanh hơn nhiều.


ĐÚNG CÁCH là chương trình mà các bản phân phối Debian và Ubuntu Linux sử dụng để cài đặt và cập nhật phần mềm của họ. Trong cấu hình có sẵn của họ, khi bạn sử dụng apt để cài đặt chương trình, ví dụ:

sudo apt cài đặt inkscape

APT sẽ tải xuống kho lưu trữ phần mềm từ các máy chủ kho lưu trữ phân phối và cài đặt nó. Điều này hoạt động rất tốt khi gói phần mềm nhỏ, chỉ có một vài tệp cần tải xuống và kết nối internet của bạn nhanh.

Tuy nhiên, nếu bạn có nhiều phần mềm để cài đặt và có một văn phòng đầy đủ các máy cần cập nhật và bạn có kết nối internet chậm thì có thể mất nhiều thời gian để tải xuống và cài đặt mọi thứ trên mọi máy.

Một máy chủ proxy, cụ thể là proxy lưu trữ, như apt-cacher-ng là một chương trình nằm giữa máy tính bạn đang cố cập nhật và máy chủ kho lưu trữ phần mềm mà bạn đang tải xuống. Máy bạn đang cập nhật sẽ yêu cầu phần mềm từ máy chủ proxy thay vì kho lưu trữ và sau đó proxy sẽ chuyển tiếp yêu cầu đến kho lưu trữ, tải xuống phần mềm và gửi lại cho máy cập nhật.

Phần thông minh là proxy sẽ giữ một bản sao của tất cả các tệp phần mềm mà nó đã tải xuống. Khi một máy khác trên mạng cục bộ cố tải xuống cùng một tệp, tức là nó muốn cài đặt hoặc cập nhật phần mềm tương tự, proxy đã có một bản sao mà nó có thể cung cấp cho máy yêu cầu mà không cần tải xuống.

Sau lần tải xuống đầu tiên, tất cả các lần tải xuống tiếp theo sẽ nén theo tốc độ của mạng cục bộ của bạn.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn sẽ cần những điều sau đây:

  • Một màn hình và bàn phím để cắm vào Raspberry Pi của bạn. Đây là các tùy chọn nếu bạn có thể SSH vào Raspberry Pi của mình.
  • Người dùng không root, bật sudo trên Raspberry Pi của bạn.
  • Hệ thống Debian hoặc Ubuntu trên mạng cục bộ của bạn.

Khi bạn có tất cả các yêu cầu này, hãy đăng nhập vào một thiết bị đầu cuối trên Raspberry PI với tư cách là người dùng sudo và chuyển sang phần tiếp theo.

Cài đặt apt-cacher-ng

Trước khi cài đặt bất kỳ gói mới nào trên Linux, bạn nên thực hiện cập nhật hệ thống. Điều này sẽ đảm bảo rằng hệ thống của bạn đang chạy các phiên bản gói giống nhau có sẵn trong kho phân phối và danh sách các phiên bản gói địa phương của bạn được cập nhật. Làm điều này sẽ đảm bảo rằng bạn không gặp phải bất kỳ lỗi nào trong quá trình cài đặt apt-cacher-ng.

Các lệnh sau sẽ cập nhật hệ thống của bạn:

$ sudo apt cập nhật
$ sudo apt nâng cấp

Bây giờ Raspberry PI của bạn đã được cập nhật cài đặt apt-cacher-ng:

$ sudo apt cài đặt apt-cacher-ng

Trình cài đặt sẽ hỏi bạn nếu bạn muốn bật các đường hầm HTTPS thông qua apt-cacher-ng. Bạn nên trả lời câu hỏi không có câu hỏi nào. Chúng tôi sẽ định cấu hình APT để ủy quyền các kết nối HTTPS thông qua apt-cacher-ng thay vì cần các đường hầm. Ngoài ra, bạn có thể thay đổi các tùy chọn này trong tệp cấu hình apt-cacher-ng sau nếu bạn cần.

Để phù hợp với các quy ước phần mềm hiện đại, một tệp dịch vụ systemd được tạo và kích hoạt khi bạn cài đặt apt-cacher-ng. Điều này có nghĩa là apt-cacher-ng sẽ tự động khởi động khi khởi động và bạn cũng có thể quản lý apt-cacher-ng bằng các lệnh dịch vụ systemd thông thường:

$ sudo systemctl bắt đầu apt-cacher-ng.service
$ sudo systemctl dừng apt-cacher-ng.service
$ sudo systemctl khởi động lại apt-cacher-ng.service

apt-cacher-ng hiện đang chạy như một trình nền hệ thống lắng nghe trên cổng 3142 và sẵn sàng chấp nhận các kết nối từ apt.

Cấu hình apt trên Raspberry PI

Hệ thống đầu tiên mà chúng tôi sẽ cấu hình để sử dụng proxy apt-cacher-ng sẽ là apt trên Raspberry PI. Cách chúng ta sẽ cấu hình apt để sử dụng proxy apt-cacher-ng sẽ là viết lại các URL trong tệp nguồn của apt. Tệp nguồn chứa danh sách các URL của kho lưu trữ nơi phần mềm phân phối có sẵn để tải xuống.

Bạn sẽ tìm thấy tệp nguồn chính cho Raspbian tại /etc/apt/source.list và trên bản cài đặt mới trông như sau:

deb http://raspbian.raspberrypi.org/raspbian/ buster đóng góp chính không miễn phí rpi
# Dòng không ghi chú bên dưới rồi ‘apt-get update’ để bật ‘apt-get source’
# deb-src http://raspbian.raspberrypi.org/raspbian/ buster đóng góp chính không miễn phí rpi

Dòng duy nhất hoạt động (chưa bình luận) ở đây là dòng đầu tiên:

deb http://raspbian.raspberrypi.org/raspbian/ buster đóng góp chính không miễn phí rpi

Chúng tôi cần sửa đổi dòng này để mở tệp bằng trình soạn thảo văn bản, ở đây chúng tôi sử dụng nano:

$ sudo nano /etc/apt/source.list

Sửa đổi dòng đầu tiên để nó trông giống như sau:

deb http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian/ buster đóng góp chính không rpi miễn phí

Những gì bạn đã làm ở đây là chèn 127.0.0.1:3142 vào URL.

Địa chỉ IP 127.0.0.1 luôn là IP của máy tính cục bộ, thường được gọi là cục bộ cục bộ. Phần: 3142 chỉ ra cổng.

Lưu và thoát nano bằng cách nhấn CTRL + o, ENTER, CTRL + x.

Bây giờ bạn sẽ cần thực hiện cùng một thay đổi đối với tệp nguồn tại /etc/apt/source.list.d/raspi.list.

apt và apt-cacher-ng đã sẵn sàng để thử nghiệm.

Kiểm tra apt với apt-cacher-ng

Bất cứ khi nào bạn chạy apt, nó sẽ lưu một bản sao của bất kỳ tệp nào nó tải xuống. apt thực hiện điều này để không làm cho nó không thực hiện bất kỳ tải xuống không cần thiết nào và cũng để giữ một bản sao lưu trữ cài đặt cục bộ trong trường hợp gói cần được cài đặt lại và không có internet.

Bộ nhớ đệm cục bộ này có nghĩa là apt sẽ không liên lạc với proxy khi bạn chạy cập nhật apt hoặc nâng cấp apt nếu kho lưu trữ không thay đổi. Do đó, để kiểm tra proxy, chúng tôi sẽ cần xóa bộ nhớ cache apt theo cách thủ công. Các lệnh sau sẽ xóa tất cả các gói được lưu trong bộ nhớ cache của apt:

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

Bây giờ kiểm tra apt bằng cách chạy một bản cập nhật và kiểm tra bất kỳ lỗi nào:

$ sudo apt cập nhật

Bạn sẽ thấy một số dòng đầu ra trông như sau:

Nhận: 1 http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]

URL bắt đầu http://127.0.0.1:3142/ chỉ ra rằng apt đang nhận các tệp cập nhật từ apt-cacher-ng.

Bạn cũng có thể xem tệp nhật ký apt-cacher-ng để biết lỗi bằng cách chạy lệnh này:

$ đuôi -f /var/log/apt-cacher-ng/apt-cacher.log

trong một thiết bị đầu cuối thứ hai. Nếu bạn không gặp phải bất kỳ lỗi nào, bạn có thể tiến hành định cấu hình hệ thống Debian hoặc Ubuntu trên mạng cục bộ của mình.

Định cấu hình Hệ thống Ubuntu hoặc Debian để sử dụng apt-cacher-ng

Các hệ thống Debian hoặc Ubuntu trên mạng cục bộ của bạn mà bạn muốn hưởng lợi từ proxy apt-cacher-ng không cần bất kỳ phần mềm bổ sung nào được cài đặt. Tất cả những gì bạn cần làm là viết lại các tệp nguồn của họ để họ thu thập tất cả các bản cập nhật của họ từ apt-cacher-ng thay vì liên hệ trực tiếp với kho lưu trữ.

Thay đổi mà bạn cần để tạo các tệp nguồn hoàn toàn giống với chỉnh sửa mà bạn đã thực hiện đối với các nguồn trên Raspberry PI ngoại trừ việc bạn cần sử dụng địa chỉ IP của Raspberry PI thay cho 127.0.0.1.

Điều này có nghĩa là trước tiên bạn sẽ cần lấy địa chỉ IP của Raspberry Pi. Cách dễ nhất để lấy địa chỉ IP của Raspberry PI là chạy lệnh sau trong một thiết bị đầu cuối trên Raspberry PI:

$ tên máy chủ -I

Điều này sẽ in ra các địa chỉ IP mà Raspberry PI có. Sử dụng địa chỉ IP IPv4 đầu tiên. Ở đây, tôi sẽ sử dụng địa chỉ ví dụ 192.168.0.2. Bạn sẽ cần thay thế địa chỉ IP của Raspberry PI của bạn.

Quay lại máy khách, mở tệp nguồn chính bằng trình soạn thảo văn bản, ở đây chúng tôi sử dụng nano:

$ sudo nano /etc/apt/source.list

Tệp này sẽ chứa các dòng có cùng định dạng với các dòng trên Raspberry PI TẢI /etc/apt/source.list. Đây là một dòng ví dụ từ bản cài đặt Debian Buster:

deb http://ftp.debian.org/debian buster chính

Bạn cần chỉnh sửa các dòng này như sau bằng IP của Raspberry PI, ví dụ:

deb http://192.168.0.2:3142/ftp.debian.org/debian buster chính

Chỉnh sửa tất cả các dòng trong /etc/apt/source.list và bất kỳ tệp nguồn nào khác trong /etc/apt/source.list.d/. Sau đó xóa mọi tệp được lưu trong bộ nhớ cache cục bộ để kiểm tra:

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

Cập nhật lại hệ thống:

$ sudo apt cập nhật
$ sudo apt nâng cấp

Đầu ra từ apt sẽ chỉ ra rằng các tệp cập nhật đến từ proxy apt-cacher-ng bằng cách in các dòng như sau có chứa IP của proxy:

Lượt truy cập: 1 http://192.168.0.2:3142/ftp.debian.org/debian buster InRelease

Máy này hiện được cấu hình đầy đủ để sử dụng proxy apt mới của bạn. Bạn sẽ cần chỉnh sửa bất kỳ tệp nguồn mới nào mà bạn thêm vào máy này trong tương lai, bao gồm mọi dòng mới được thêm vào để nâng cấp phân phối.

APT qua HTTPS

Các tệp nguồn mà chúng tôi đã xem xét cho đến nay đều đã sử dụng tất cả các kết nối HTTP. Đây là một quyết định thiết kế có chủ ý của Debian và Ubuntu vì kho lưu trữ cài đặt có chữ ký mã hóa nội bộ được tích hợp sẵn để ngăn chặn hành vi giả mạo độc hại. Do đó, HTTPS không bổ sung nhiều bảo mật bổ sung trong khi thêm đáng kể vào gánh nặng kỹ thuật khi có một số lượng lớn các gương đa dạng về mặt địa lý.

Tuy nhiên, có một số lợi thế khi sử dụng HTTPS có nghĩa là một số kho lưu trữ không chính thức, sử dụng HTTPS. apt-cacher-ng hỗ trợ hai phương thức xử lý kho HTTPS.

Đầu tiên là truyền trực tiếp các kết nối từ máy khách đến máy chủ kho lưu trữ. Điều này có hậu quả đáng tiếc là các gói không được lưu trữ bởi apt-cacher-ng. Nếu bạn muốn chạy apt-cacher-ng trong chế độ này, hãy mở /etc/apt-cacher-ng/acng.conf bằng trình soạn thảo văn bản:

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

Và thêm dòng sau:

PassThroughPotype :. *

Điều này cấu hình apt-cacher-ng để cho phép các kết nối HTTPS đi qua từ máy khách đến kho lưu trữ.

Phương pháp thứ hai là sửa đổi các dòng kho lưu trữ trong các tệp nguồn của máy khách để máy khách kết nối với apt-cacher-ng thông qua HTTP nhưng sau đó apt-cacher-ng sẽ kết nối với kho lưu trữ thông qua HTTPS. Các gói sẽ tải xuống apt-cacher-ng qua HTTPS, sau đó chúng sẽ được gửi đến máy khách qua HTTP. apt-cacher-ng có thể lưu trữ các gói và chúng tôi không mất các lợi ích của HTTPS.

Dòng nguồn sau đây là để truy cập kho Docker qua HTTPS:

deb [arch = amd64] https://doad.docker.com/linux/debian buster ổn định

Khi bạn chỉnh sửa các dòng HTTP, bạn đã thêm 192.168.0.2:3142 vào URL. Khi bạn chỉnh sửa các dòng HTTPS, bạn cần thêm 192.168.0.2:3142/HTTPS/// ví dụ:

deb [arch = amd64] http://192.168.1.67:3142/HTTPS///doad.docker.com/linux/debian buster ổn định

Bây giờ máy khách sẽ yêu cầu gói từ apt-cacher-ng thông qua HTTP và apt-cacher-ng sẽ tải xuống và lưu trữ các gói từ Docker qua HTTPS.

Quản trị apt-cacher-ng

Một GUI web có sẵn để quản lý apt-cacher-ng trên mạng cục bộ của bạn. Để truy cập GUI này, bạn cần trỏ trình duyệt của mình tới:

http: //: 3142 / acng-báo cáo.html

Thay thế ví dụ IP mạng cục bộ, 192.168.0.2, cung cấp cho chúng tôi:

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

Phần đầu tiên và quan trọng nhất của GUI, Thống kê chuyển dữ liệu, cung cấp cho bạn thông tin về lượng dữ liệu được tải xuống từ kho dữ liệu Vs được cung cấp từ bộ đệm. Hình ảnh sau đây cho thấy phần này của GUI:

Phần hiệu quả của Bộ nhớ cache trong bộ phận Phần mềm thông báo cho bạn biết về số lượng tệp apt-cacher-ng‘ được phục vụ từ bộ đệm của nó Vs cái nào đã bỏ qua bộ đệm. Các lượt truy cập của các ứng dụng trực tuyến chỉ ra các tệp mà proxy được cung cấp từ bộ đệm và các Misseses là các tệp mà máy proxy đã tải xuống từ kho lưu trữ và thêm vào bộ đệm.

Quản lý bộ đệm

Các tệp mà apt-cacher-ng tải xuống và phục vụ cho các máy khách trên mạng cục bộ của bạn sẽ trở nên cũ kỹ khi các nhà phát triển thêm phiên bản mới vào kho lưu trữ. Khi điều này xảy ra, những stales apt-cacher-ng này phải xóa chúng khỏi bộ đệm vì chúng không còn cần thiết và chiếm dung lượng trên ổ đĩa của bạn. Raspberry PI Xem lại bộ đệm và tự động xóa các tệp cũ.

Khi bạn cài đặt apt-cacher-ng, bạn cũng đã cài đặt một tệp cron tại:

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

Điều này được chạy bởi cron mỗi ngày giúp xóa bộ nhớ cache cho bạn.

Nếu bạn muốn xem lại và xóa bộ nhớ cache theo cách thủ công thì bạn nên đăng nhập vào GUI web và nhấp vào nút được đánh dấu Quét Bắt đầu Quét và / hoặc Hết hạn. Làm điều này thường không cần thiết, nhưng bạn có thể cần phải làm như vậy nếu bạn đang cập nhật từ kho lưu trữ cập nhật nhanh chóng.

Bây giờ bạn có một proxy apt hiệu quả sẽ giảm bớt gánh nặng mạng của các bản cập nhật hệ thống lớn, lặp đi lặp lại trong văn phòng hoặc nhà của bạn.

Thích khám phá Raspberry Pi, kiểm tra khóa học trực tuyến này.

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