Ubuntu의 LAN에서 Apt 다운로드를 캐시하는 가장 좋은 방법은?

5034 단어 ubuntu
네트워킹
우리 집에는 여러 대의 Ubuntu 기계가 있는데 인터넷 연결 속도가 매우 느려서 때때로 여러 대의 기계를 동시에 업데이트해야 한다(특히 새로운 Ubuntu 버전에서)
내 기계 한 대가 가방을 다운로드하기만 하면 다른 기계는 첫 번째 기계를 사용하여debs를 얻을 수 있는 방법이 있습니까?이것은 나의 로컬 이미지를 만드는 것과 관련이 있습니까?아니면 프록시?아니면 간소화할 수 있나요?

공인된 답안


저는 일련의 해결 방안에 대해 연구를 했습니다. 일부 Ubuntu 개발자들은 10.04 및 더 높은 버전에 프록시 설정을 제공했습니다(Squid 기반).그것은 squid-deb-proxy이라고 한다.그것은 단지 기계 한 대가 서버로 필요할 뿐이다.대규모 조직은 일반적으로 자신의 완전한 거울을 운행하지만, 대다수 사람들에게는 필요에 따라 거울을 보면 충분하다.

왜 squid deb 에이전트입니까?

  • 클라이언트는 파일을 편집하지 않습니다.
  • 은zeroconf를 사용하여 클라이언트가
  • 은 새로운 도구를 작성하는 대신 기존의 신뢰할 수 있는 에이전트 솔루션을 사용합니다.
  • 은 일반적인 Linux 관리자에게 쉽게 설치할 수 있습니다.
  • 서버 구성


    서버 역할을 할 시스템에서 다음 도구를 사용하여 도구를 설치합니다.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에 가장 먼저 올라왔다.

    좋은 웹페이지 즐겨찾기