내가 일하고있는 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
. 노트:
- 이는 APT보다 훨씬 낮은 수준 (DNS 및 IP 네트워킹)에서 작동하므로 모든 응용 프로그램의 네트워크 방식 ( 적어도 모든 사용 네트워크)을 변경합니다
getaddrinfo
. - 을 (를) 편집하기 전에
gai.conf
이를 백업하고 읽어야합니다 (걱정하지 마십시오). 아래 편집 내용은 현재 파일에 이미 언급되어있을 것입니다. 현재 파일이 아래 언급 된 것과 다른 것을 나타내는 경우 현재 파일에있는 것을 선호해야합니다.
그러나 이것이 원하는 것이라면 (아마도 가능하다면) 계속 진행해 봅시다. 우리는 두 호스트가 말 www.he.net
과 www.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
(그렇지 않으면 영원히 중단 됩니다).
또한보십시오:
- http://www.funtoo.org/wiki/IPv6_Networking#Prefer_IPv4_over_IPv6 (아카이브 @ https://web.archive.org/web/20180905053005/https://www.funtoo.org/IPv6_Networking#Prefer_IPv4_over_IPv6 )
- http://www.getipv6.info/index.php/Customer_problems_that_could_occur#GNU.2FLinux (아카이브 @ https://web.archive.org/web/20180920175314/https://getipv6.info/display/IPv6/IPv6+ 정보 + 홈 # GNU.2FLinux )
답변
당신은 설정 수 는 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)
. 테스트 리포지토리를 사용하지 않고 소스에서 제거하기 만하면됩니다. 테스트 리포지토리는 여러 패키지의 최신 업데이트를 제공하지만 안정적인 것으로 간주되지는 않습니다.