제가 일하는 ISP는 IPv6 인터넷에 대한 최종 연결을 준비하기 위해 내부 IPv6 네트워크를 설정하고 있습니다. 결과적으로 이 네트워크의 여러 서버는 기본적으로 IPv6 주소를 통해 security.debian.org에 연결하려고 실행 중입니다 apt-get update
. 이로 인해 모든 종류의 업데이트를 다운로드할 때마다 기다려야 하는 긴 시간 초과가 발생합니다.
IPv4를 선호할지 아니면 IPv6를 완전히 무시할지를 apt에 알릴 수 있는 방법이 있습니까?
답변1
-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
및 Acquire::ForceIPv6
버전에 추가0.9.7.9~exp1(바라보다오류 611891)은 Ubuntu Saucy(2013년 10월 출시) 및 Debian Jessie(2015년 4월 출시)부터 사용할 수 있습니다.
답변2
~처럼자일스는 말한다, 사용 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
편집된 파일을 저장한 후(다시 시작할 필요 없음) IPV4를 사용하는 네트워크 애플리케이션이 표시됩니다 telnet
(예:).
$ telnet www.ripe.net 81
Trying 193.0.6.139...
^C
$ telnet www.he.net 81
Trying 216.218.186.2...
시나리오 2: 특정 호스트가 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+Info+Home#GNU.2FLinux)
답변3
당신은 설정할 수 있습니다적절한 캐셔-ng대기 시스템의 모든 호스트에 대한 프록시/캐시 역할을 합니다. 특정 호스트만 사용하도록 구성을 강제하거나 해당 시스템에서 @badp가 제안한 /etc/hosts 트릭을 사용할 수 있습니다.
apt-get install apt-cacher-ng
apt-cache-ng를 설치한 후에는 다음 줄만 입력하면 됩니다(캐시 시스템을 가리키도록 IP 주소/호스트 이름 변경)./etc/apt/apt.conf.d/90httpproxy
Acquire::http { Proxy "http://[192.168.1.254]:3142"; };
대역폭 사용량을 줄이기 위해 이 설정을 사용하지만 문제는 해결될 것입니다. 안타깝게도 apt-get 자체의 ipv6 조회를 직접 비활성화하는 방법을 모르겠습니다.
답변4
해당 주소를 재정의 하는 줄을 추가하는 것은 /etc/hosts
어떻습니까 ? 예를 들어,
130.89.149.226 ftp.debian.org
195.20.242.89 security.debian.org