IPv6 방법을 사용하도록 apt-get * not * 확인 통해 security.debian.org에 연결하려고 시도하므로 apt-get

내가 일하고있는 ISP는 결국 IPv6 인터넷에 연결하기 위해 내부 IPv6 네트워크를 설정하고 있습니다. 결과적 으로이 네트워크의 일부 서버는 이제 실행할 때 기본적으로 IPv6 주소를 통해 security.debian.org에 연결하려고 시도하므로 apt-get update모든 종류의 업데이트를 다운로드 할 때마다 긴 시간 초과를 기다려야합니다 .

apt에게 IPv4를 선호하거나 IPv6을 완전히 무시하도록 지시하는 방법이 있습니까?



답변

-o Acquire::ForceIPv4=true실행할 때 추가하십시오 apt-get.

설정을 영구적으로 유지하려면 /etc/apt/apt.conf.d/99force-ipv4를 작성 하여 입력 Acquire::ForceIPv4 "true";하십시오.

echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4

구성 옵션이 Acquire::ForceIPv4있으며 2013 년 10 월에 릴리스 된 Ubuntu Saucy 및 2015 년 4 월에 릴리스 된 Debian Jessie 이후에 사용할 수있는 Acquire::ForceIPv6버전 0.9.7.9 ~ exp1 ( 버그 611891 참조 )에 추가되었습니다.


답변

으로 질 말한다 , 사용 gai.conf. 노트:

  1. 이는 APT보다 훨씬 낮은 수준 (DNS 및 IP 네트워킹)에서 작동하므로 모든 응용 프로그램의 네트워크 방식 ( 적어도 모든 사용 네트워크)을 변경합니다 getaddrinfo.
  2. 을 (를) 편집하기 전에 gai.conf이를 백업하고 읽어야합니다 (걱정하지 마십시오). 아래 편집 내용은 현재 파일에 이미 언급되어있을 것입니다. 현재 파일이 아래 언급 된 것과 다른 것을 나타내는 경우 현재 파일에있는 것을 선호해야합니다.

그러나 이것이 원하는 것이라면 (아마도 가능하다면) 계속 진행해 봅시다. 우리는 두 호스트가 말 www.he.netwww.ripe.net:

$ host www.he.net
www.he.net is an alias for he.net.
he.net has address 216.218.186.2
he.net has IPv6 address 2001:470:0:76::2

$ host www.ripe.net
www.ripe.net has address 193.0.6.139
www.ripe.net has IPv6 address 2001:67c:2e8:22::c100:68b

사례 1 : 모든 호스트에 IPV4 선호

/etc/gai.conf다음 줄에 추가 하십시오.

precedence ::ffff:0:0/96  100

편집 된 파일을 저장 한 후 (다시 시작할 필요가 없음 telnet) IPV4를 사용하는 네트워킹 앱 (예 :)이 표시됩니다.

$ telnet www.ripe.net 81
Trying 193.0.6.139...
^C
$ telnet www.he.net 81
Trying 216.218.186.2...

사례 2 : 특정 호스트에 IPV6 선호

IPV6 www.he.net또는 네트워크 에만 IPV6을 사용하려는 경우 IPV6 주소의 전체 또는 일부에 마스크 / 접두사 를 추가 할 수 있습니다 /etc/gai.conf. 예를 들어, 다음 줄 :

precedence 2001:470::/32 100

(편집 된 파일을 저장 한 후) 생성

$ telnet www.ripe.net 81
Trying 193.0.6.139...
^C
$ telnet www.he.net 81
Trying 2001:470:0:76::2...
^C

사례 3 : 특정 호스트에 IPV4 선호

우리가 마스크를 뒤집 으면 그 반대가 사실입니까? @GrueMaster에 따르면,

precedence 2001:470::/96 100

IPV6을 비활성화 한 후 그를 위해 일했습니다 security.ubuntu.com(그렇지 않으면 영원히 중단 됩니다).


또한보십시오:


답변

당신은 설정 수 는 apt-cacher는-ng를 모든 호스트에 대한 프록시 / 캐시의 역할을하도록 여분의 컴퓨터에. 구성이 특정 호스트 만 사용하도록하거나 해당 시스템에서 @badp가 제안한 / etc / hosts 트릭을 사용하도록 강제 할 수 있습니다.

apt-get install apt-cacher-ng

apt-cache-ng 설정을 마치면 /etc/apt/apt.conf.d/90httpproxy에 다음 줄 (캐시 컴퓨터를 가리 키도록 IP 주소 / 호스트 이름을 변경 한 상태)을 삭제하면됩니다.

Acquire::http { Proxy "http://[192.168.1.254]:3142"; };

해당 설정을 사용하여 대역폭 사용을 줄이지 만 문제를 해결해야합니다. 불행히도 apt-get 자체에 대해 ipv6 조회를 직접 비활성화하는 방법을 알지 못합니다.


답변

ip6 응답을 삭제 한 DNS 프록시 서버를 설정하여이 문제를 해결할 수 있습니다.


답변

/etc/hosts관련 주소 를 재정의 할 때 줄을 추가하는 것은 어떻습니까? 예를 들어

130.89.149.226  ftp.debian.org
195.20.242.89   security.debian.org

답변

오래된 주제를 납치했지만 최근에 같은 문제가 발생했습니다. 따라서 위의 조언과 호스트whois 의 출력을 기반으로합니다 .

# host security.debian.org
security.debian.org has address 212.211.132.250
security.debian.org has address 195.20.242.89
security.debian.org has address 212.211.132.32
security.debian.org has IPv6 address 2001:8d8:580:400:6564:a62:0:2
security.debian.org has IPv6 address 2001:a78:5:0:216:35ff:fe7f:be4f
security.debian.org has IPv6 address 2001:a78:5:1:216:35ff:fe7f:6ceb

약간 다른 방식으로 문제를 해결 했습니다. /etc/gai.conf 에서 security.debian.org 를 포함하는 IPv6 네트워크의 우선 순위가 낮아졌습니다 .

# Make IPv6 for security.debian.org undesirable
precedence 2001:8d8:580::/48    5
precedence 2001:a78:5::/48      5

따라서 security.debian.org를 제외하고 IPv6이 여전히 선호 됩니다.


답변

2014 년 10 월 8 일 현재 로컬 네트워크의 프록시 뒤에서 데비안을 업데이트하려고 시도하면서 동일한 문제가 발생했습니다. 그것이 다른 사람들과 관련이 있기를 바랍니다. 다른 사람들이 언급했듯이, 편집 /etc/hosts은 조심해야 할 것입니다.

그러나 개인적으로 나는 단지 업데이트를하고 싶었습니다.

업데이트를 수행 할 때 /etc/apt/sources.list의 내용 (업데이트 이전과 다릅니다.) :

deb http://http.debian.net/debian/ testing main
deb-src http://http.debian.net/debian/ testing main

deb http://mirrors.kernel.org/debian/ wheezy main
deb-src http://mirrors.kernel.org/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

/etc/apt/apt.conf의 내용 :

Acquire::http::proxy "http://192.168.1.10:7777/";
Acquire::http::Timeout "10";
Acquire::ftp::Timeout "10";

/ etc / hosts에 추가 :

#Workaround for making apt-get work (08-10-2014)
195.20.242.89 security.debian.org
130.89.148.12 ftp.debian.org

이제 apt-get update ; apt-get upgrade루트로 실행 하면 잘 작동했습니다.

다른 답변에서 언급했듯이 도메인에서 host 명령을 실행하여 hosts 파일에 올바른 ip를 삽입하십시오.

예:

$ host ftp.debian.org
ftp.debian.org has address 130.89.148.12

이것으로 시스템이로 성공적으로 업데이트되었습니다 Debian GNU/Linux testing (jessie). 테스트 리포지토리를 사용하지 않고 소스에서 제거하기 만하면됩니다. 테스트 리포지토리는 여러 패키지의 최신 업데이트를 제공하지만 안정적인 것으로 간주되지는 않습니다.