Ubuntu의 LAN에서 Apt 다운로드를 캐시하는 가장 좋은 방법은?
5034 단어 ubuntu
우리 집에는 여러 대의 Ubuntu 기계가 있는데 인터넷 연결 속도가 매우 느려서 때때로 여러 대의 기계를 동시에 업데이트해야 한다(특히 새로운 Ubuntu 버전에서)
내 기계 한 대가 가방을 다운로드하기만 하면 다른 기계는 첫 번째 기계를 사용하여debs를 얻을 수 있는 방법이 있습니까?이것은 나의 로컬 이미지를 만드는 것과 관련이 있습니까?아니면 프록시?아니면 간소화할 수 있나요?
공인된 답안
저는 일련의 해결 방안에 대해 연구를 했습니다. 일부 Ubuntu 개발자들은 10.04 및 더 높은 버전에 프록시 설정을 제공했습니다(Squid 기반).그것은
squid-deb-proxy
이라고 한다.그것은 단지 기계 한 대가 서버로 필요할 뿐이다.대규모 조직은 일반적으로 자신의 완전한 거울을 운행하지만, 대다수 사람들에게는 필요에 따라 거울을 보면 충분하다.왜 squid deb 에이전트입니까?
서버 구성
서버 역할을 할 시스템에서 다음 도구를 사용하여 도구를 설치합니다.
sudo apt-get install squid-deb-proxy avahi-utils
서비스 비트를 시작합니다. sudo start squid-deb-proxy
그리고 avahi 비트(12.04+를 사용하는 경우 다음이 필요하지 않습니다. sudo start squid-deb-proxy-avahi
이것은 서버가zeroconf를 통해 네트워크에 자신을 발표할 수 있도록 프록시 서버 (기본적으로 포트 8000) 와avahi 도구를 설치합니다.고객 구성
캐시를 사용할 각 컴퓨터(클라이언트와 서버 자체, 캐시를 사용할 수 있음)에서 클라이언트 도구를 설치하여 서버를 자동으로 검색하고 여기를 클릭할 수 있도록 합니다.
또는 명령줄을 통해 다음을 수행합니다.
sudo apt-get install squid-deb-proxy-client
선택 사항: 최고 효율을 얻기 위해서는 다른 기계가 필요할 때 캐시에 저장할 수 있도록 한 기계를 자동 다운로드 업데이트로 설정해야 합니다.시스템 -> 관리 -> 업데이트 관리자에 들어가서 "설정..."단추를 누르면 업데이트 옵션 카드에서 모든 업데이트를 자동으로 다운로드할 수 있습니다.타사 소스 캐시
기본적으로 캐시는 공식 Ubuntu 저장소만 캐시하도록 설정됩니다.더 많은 정보를 추가하려면
/etc/squid-deb-proxy/mirror-dstdomain.acl
의 원본 목록에 추가해야 합니다.이것은 네가 파파를 추가할 수 있는 곳이다.발사대.net 또는 사용자가 사용할 수 있는 다른 서비스입니다.이 파일을 변경한 후 변경 사항을 적용하려면 sudo restart squid-deb-proxy
을 실행해야 합니다.수동 설정
어떤 이유로zeroconf를 사용하지 않으려면
/etc/apt/apt.conf
을 편집하고 다음 섹션을 추가하여 0.0.0.0을 서버의 IP 주소로 바꾸면 클라이언트를 사용 에이전트로 수동으로 설정할 수 있습니다. Acquire {
Retries "0";
HTTP { Proxy "http://0.0.0.0:8000"; };
};
방화벽
방화벽을 사용하는 경우avahi는 주소 224.0.0.0/4에서 5353을 사용하며 다음과 같은 규칙이 필요합니다.
# Specifically port 5353 which avahi uses
-A INPUT -i eth2 -d 224.0.0.0/4 --dport 5353 -j ACCEPT
# OR
# Wide open so all local broadcasting works
-A INPUT -i eth2 -d 224.0.0.0/4 -j ACCEPT
이제 에이전트를 통해 실제 통신을 하려면 TCP 포트 8000을 열어야 합니다.대체로 다음과 같다.-A INPUT -i eth2 -p tcp -m tcp --dport 8000 -d 192.168.0.1 -s 192.168.0.0/24 --syn -j ACCEPT
이 규칙들은 단지 너를 돕기 위해서이다.설정과 일치하지 않을 수도 있습니다.(잘못된 인터페이스, 잘못된 전용 네트워크 IP 주소 등)유효한지 확인
먼저 서버에서 로그를 추적하여
tail -F /var/log/squid-deb-proxy/access.log
을 보고 클라이언트가 설치된 모든 컴퓨터에서 업데이트를 실행한다.로그는 스크롤을 시작해야 하며 다음 항목이 표시됩니다.1307310795.647 32 192.168.1.106 TCP_MISS/302 768 GET http://us.archive.ubuntu.com/ubuntu/dists/natty-proposed/universe/i18n/Translation-en.xz - DIRECT/141.210.26.10 text/html
1307310795.683 34 192.168.1.106 TCP_MISS/302 752 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/main/i18n/Translation-en_US.lzma - DIRECT/141.210.26.10 text/html
1307310795.716 32 192.168.1.106 TCP_MISS/302 746 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/main/i18n/Translation-en.lzma - DIRECT/141.210.26.10 text/html
1307310795.750 32 192.168.1.106 TCP_MISS/302 764 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/multiverse/i18n/Translation-en_US.lzma - DIRECT/141.210.26.10 text/html
1307310795.784 32 192.168.1.106 TCP_MISS/302 758 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/multiverse/i18n/Translation-en.lzma - DIRECT/141.210.26.10 text/html
1307310795.817 32 192.168.1.106 TCP_MISS/404 657 GET http://us.archive.ubuntu.com/dists/natty-proposed/multiverse/i18n/Translation-en_US.xz - DIRECT/141.210.26.10 text/html
이것은 클라이언트가 캐시를 보았지만, 그것을 잃어버렸다는 것을 의미한다. 이것은 클라이언트가 아직 아무런 내용도 캐시하지 않았기 때문이다.이후의 각 실행은 TCP HIT로 표시되어야 합니다./var/cache/squid-deb-proxy
에서 squid 캐시 파일 자체를 찾을 수 있습니다.그것을 사용하다
그때부터 네트워크에 있는 모든 기계는 외부 네트워크를 클릭하여 패키지를 얻기 전에 캐시를 검사한다.새 패키지를 사용할 수 있는 경우 첫 번째 시스템에서 네트워크에서 패키지를 다운로드한 후 해당 패키지에 대한 추가 요청이 서버에서 클라이언트로 전송됩니다.
대기 사항
네트워크에서 공개된 캐시를 직접 사용할 수 있도록 apt를 사용해야 합니다. 기본적으로 클라이언트를 설치할 필요가 없습니다.우리는 403의deb가 거울 목록에 없는 the bug을 복원해야 한다.
게시물 Best Way to Cache Apt Downloads on a Lan in Ubuntu?이 Stack All Flow에 가장 먼저 올라왔다.
Reference
이 문제에 관하여(Ubuntu의 LAN에서 Apt 다운로드를 캐시하는 가장 좋은 방법은?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/stackallflow/best-way-to-cache-apt-downloads-on-a-lan-in-ubuntu-2pj8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)