połączenie z archive.ubuntu.com trwa zbyt długo


50

Mam serwer Ubuntu 11.10, który właśnie zainstalowałem. Teraz, jeśli spróbuję coś zrobić apt-get, spróbuje się połączyć archive.ubuntu.com.. Pozostanie w [Connecting to archive.ubuntu.com (2001:67c:1360:8c01::1a)]fazie przez około 2 minuty, po czym faktycznie zacznie się komunikować i pobierać rzeczy ...

W końcu zawsze się łączy, ale [Connecting to archive.ubuntu.com (2001:67c:1360:8c01::1a)]za każdym razem czeka na fazę przez około 2 minuty!

Nie miałem tego problemu wcześniej na Ubuntu 11.10, zaraz po ponownej instalacji systemu operacyjnego.

Wszelkie pomysły na temat problemu?


Zastanawiam się, czy ma to związek z faktem, że używasz IPv6. Czy jesteś w sieci IPv6?
— Thomas Ward

Nie, nie sądzę. Nie skonfigurowałem żadnej takiej rzeczy ..
— Ahmad

Adresy IP w dołączonych wiadomościach to IPv6. To sugeruje, że używa IPv6, a jeśli się nie mylę, nie ma tylu serwerów IPv6 dla archiwum.
— Thomas Ward

1
@Ahmad Ponieważ rozwiązałeś problem i napisałeś rozwiązanie, prosimy o opublikowanie go jako odpowiedzi (a następnie możesz go edytować również ze swojego pytania). Pamiętaj, że nie musisz czekać, aby to zrobić; tylko użytkownicy o reputacji mniejszej niż 100 muszą czekać przed udzieleniem odpowiedzi na własne pytania. Możesz nawet oznaczyć swoją odpowiedź jako zaakceptowaną (choć musisz na to poczekać dwa dni po opublikowaniu pytania).
— Eliah Kagan

Gotowe .. Teraz muszę tylko czekać 22 godziny, aby móc zaakceptować własną odpowiedź :)
— Ahmad

Odpowiedzi:


87

Rozwiązałem to 12.10, edytując /etc/gai.conf i usuwając komentarz z linii:

#
#    For sites which prefer IPv4 connections change the last line to
#
precedence ::ffff:0:0/96 100

Pozwala to utrzymać włączony IPv6, ale ustawia kolejność pierwszeństwa przed IPv4 zamiast IPv6.


13
Nie powinienem pisać ty jako komentarz, ale myślę, że należy powiedzieć, że ty
— jesteś

1
Oto odpowiedź
— kbuilds

3
Potwierdzono również na Ubuntu 14.04 / ElementaryOS freya!
— oikonomopo

2
doskonały! działał urok!
— John

2
Nadal obowiązuje dla Xubuntu 15.04
— Dag

16

Rozwiązanie:

Zrozumiałem problem. Musiałem wyłączyć łączność IPv6, jak zauważył Lord Of Time.

Uruchomienie następującego polecenia w terminalu informuje, czy protokół IPv6 jest włączony, czy nie:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

0oznacza jego włączone, a jednocześnie 1wyłączone.

Aby wyłączyć IPv6 z poziomu terminala, wprowadź następujące dane:

echo "#disable ipv6" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Ponownie uruchom pierwsze polecenie i powinno być 1teraz.


Nie mam tego pliku ...
— amadib,

Wyłączenie IPv6 nie jest rozwiązaniem. To obejście. Potrzebujemy IPv6 i wyłączenie go zdecydowanie nie jest zalecane. Prawidłowe rozwiązania albo zmuszają APT do używania tylko ipv4, albo ustawiają priorytet, jak pokazano w najlepszym rozwiązaniu.
— mniess

7

Jeśli chcesz tylko zmodyfikować apt-get, możesz wymusić IPv4 za pomocą:

apt-get -o Acquire::ForceIPv4=true update

Aby ustawienie było trwałe, utwórz plik 99force-ipv4 w /etc/apt/apt.conf.d/.

sudoedit /etc/apt/apt.conf.d/99force-ipv4

Umieść w nim następującą zawartość:

Acquire::ForceIPv4 "true";

Zapisz plik i gotowe. Jeśli zamiast tego chcesz wymusić IPv6, zmień 4 na 6 w nazwie pliku i ustawieniach. Aby wybrać jedną z nich, przetestuj szybką metodą i sprawdź, która działa lepiej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.