Brak internetu po aktualizacji z 16.04 do 18.04

34

Po aktualizacji zauważyłem, że nie mam dostępu do Internetu . Sieć przewodowa i ustawienia Wi-Fi wyglądały dobrze, ale nie działały. Po zalogowaniu system zawsze przełączał się w tryb samolotowy. Udostępniłem sieć komórkową przez USB i Bluetooth przez telefon komórkowy, ale one również nie działały.

Zoltán Süle
źródło
Zgadzam się z decyzją. I rozumiem zasadę. Musisz zobaczyć, że jeśli masz notebooka z uaktualnionym ubuntu bez Internetu, bardzo trudno jest znaleźć odpowiedź przez telefon. answer.launchpad.net nie jest tak dobrze indeksowany, jak askubuntu.com
Zoltán Süle
1
@sudodus Proszę ponownie otworzyć. 18.04 wyszedł i napotkałem dokładnie ten sam problem!
user5950
@ user5950, nie mogę tego zrobić sam, ale oddam mój głos ponownie :-) Ale to może nie działać. - W każdym razie sugeruję, abyś zadał nowe pytanie (o podobnym tytule i tekście, ale nie dokładnie takie samo).
sudodus
@ user5950: postępuj zgodnie z zaakceptowaną odpowiedzią, którą skopiowałem z launchpad.net (andrew-woodhead666). To zadziałało dla mnie. Jeśli to jest twój problem, naprawi to.
Zoltán Süle

Odpowiedzi:

36

Zgłosiłem błąd na starterze. Możesz subskrybować, jeśli jesteś zaangażowany: https://bugs.launchpad.net/ubuntu/+bug/1816530

POCHODZENIE rozwiązania

jeśli /etc/resolv.confjest pusty, ale możesz pingować 8.8.8.8

$ echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

jeśli pole /etc/resolvconf/resolv.conf.d/headjest puste, musisz powtórzyć powyższe polecenie po każdym ponownym uruchomieniu, z wyjątkiem:

$ echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolvconf/resolv.conf.d/head > /dev/null

następnie musisz ponownie uruchomić resolvconf i sieć

$ sudo systemctl enable resolvconf
$ sudo systemctl start resolvconf
$ sudo /etc/init.d/networking restart
Zoltán Süle
źródło
1
czy serwer nazw jest ustawiony w /etc/resolv.confpliku? Jeśli nie, dodaj nameserver 8.8.8.8do tego pliku
Zoltán Süle
4
dodanie serwera nazw do /etc/resolv.conf i ponowne uruchomienie przez sudo /etc/init.d/networking restartzrobiło magię! Wielkie dzięki!!
Eftychia Thomaidou
1
@EftychiaThomaidou, Gratulacje i dzięki za udostępnienie rozwiązania / potwierdzenie, że ta metoda działa :-)
sudodus
2
@sudodus @EftychiaThomaidou: musisz go również dodać /etc/resolvconf/resolv.conf.d/head. W przeciwnym razie edycję /etc/resolv.confpliku należy powtórzyć po każdym ponownym uruchomieniu.
Zoltán Süle,
1
Jest to obejście, ale nie jest to dobre rozwiązanie i prawdopodobnie spowoduje awarię systemu w nieprzewidywalny sposób w przyszłości. Powinieneś użyć GUI do konfiguracji sieci lub netplan, aby poprawnie skonfigurować swoją sieć.
JanC
6

Zgadzam się z kilkoma innymi osobami, że wybrana odpowiedź prawdopodobnie nie jest najlepszym sposobem na rozwiązanie problemu:

Gdy plik ma na początku komentarz, który mówi

"DO NOT EDIT THIS FILE"

to prawdopodobnie jest bardzo dobry powód, aby ... nie edytować tego pliku! ;-)

A oto dlaczego, podobnie jak sugestia lepszego (IMHO) rozwiązania:

za. plik /etc/resolv.conf, który zmodyfikowałeś, zostanie nadpisany w czasie uruchamiania, więc twoja modyfikacja nie „przylgnie”.

b. adres IP (127.0.0.53), który pierwotnie tam był (przed jego modyfikacją), w rzeczywistości jest adresem resolvera DNS. Jest tutaj! Możesz pingować! działa lokalnie na twoim komputerze. Co to jest program rozpoznawania kodów pośredniczących? Zajmuje zapytania DNS i szuka w pamięci podręcznej rozdzielczości! Jeśli nie będzie w stanie go znaleźć, skontaktuje się z prawdziwym serwerem DNS (a następnie zapisze w pamięci podręcznej wynik). Tak więc, jeśli nadpiszesz adres resolvera, przegapisz tę ważną funkcję buforowania resolvera!

Problem z tą nową metodą rozwiązywania problemów w Ubuntu 18.04 polega na tym, że „prawdziwy” adres serwera DNS nigdy nie został ustawiony. Tak więc, jeśli program rozpoznawania kodów pośredniczących nie znajdzie żądanej domeny w pamięci podręcznej, nie wie, do którego serwera DNS zapytać. (W związku z tym dostęp do Internetu oparty na nazwie Twojej domeny przestaje działać). Wszystko, co musisz zrobić, to skonfigurować „prawdziwy” serwer DNS, z którego musi korzystać ten program rozpoznawania kodów pośredniczących. I robisz to, edytując (sudo!)/etc/systemd/resolved.conf

Po prostu dodaj coś takiego

DNS=8.8.8.8

do tego pliku.

Następnie zrestartuj sieć, a raczej zrestartuj komputer, abyś mógł sprawdzić, czy masz rozwiązanie, które jest trwałe po ponownym uruchomieniu komputera.

(To, czego jeszcze nie rozgryzłem, to dlaczego DHCP nie ustawia poprawnie właściwego serwera DNS!)

Paul Claessen
źródło
Nie działało dla mnie ...
Ng Sek Long
1
Dodałem „DNS = 8.8.8.8 8.8.4.4 4.2.2.2”, a następnie uruchomiłem „systemctl restart systemd-resolved” i zadziałało
Larry R. Irwin
Wystarczy użyć adresu IP dla wszystkich witryn, które chcesz odwiedzić, a następnie nie potrzebujesz DNS, problem rozwiązany!
Stack Underflow
6

Zaakceptowana odpowiedź rozwiązała mój problem. Jednak, jak wszyscy inni stwierdzili, to tylko do momentu ponownego uruchomienia komputera, co robię codziennie na moim komputerze. Wpisywanie od 5 do 6 wierszy w terminalu przy każdym uruchomieniu systemu nie jest dla mnie zabawne.

Po kopaniu w Internecie znalazłem rozwiązanie, aby trwale rozwiązać problem. Ponownie uruchomiłem 3 razy, aby się upewnić, że połączenie internetowe jest dostępne i nie muszę nic robić.

Rozwiązanie:

Uruchom terminal i wpisz:

$ ifconfig

Teraz musisz dowiedzieć się, jaki jest twój interfejs Ethernet. Mój jest wymieniony jako eth1. Następny typ:

$sudo gedit /etc/network/interfaces

Mój plik miał tylko:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

Teraz musisz dodać następujące wiersze:

auto eth1
iface eth1 inet dhcp

Wreszcie, $ sudo ifup eth1uruchom ponownie komputer i gotowe. Nie zapomnij zmienić eth1nazwy interfejsu Ethernet.

Oryginalna odpowiedź

Co teraz
źródło
Oto odpowiedź, która mi to zrobiła. Mój komputer został nagle odłączony od routera natychmiast po aktualizacji. Oznacza to, że nie mogłem nawet odwiedzić strony docelowej routera pod adresem 192.168.0.1. Napisałem skrypt o nazwie estalker.sh , który obserwuje możliwość zwijania google.com jak jastrząb. Gdy tylko sudo ifup eno1wpisałem, estalker zgłosił dostęp do Internetu, a strona docelowa została odświeżona w chromie, aby pokazać działającą konsolę administracyjną.
Braden Best
3

tl; dr

Najpierw edytuj ten plik

sudo vim /etc/resolvconf/resolv.conf.d/base

Po drugie, dodaj następujące

nameserver 8.8.8.8
nameserver 8.8.4.4

Następnie uruchom ponownie Ubuntu, powinien mieć teraz Internet.


Wyjaśniać

Niektóre z wymienionych rozwiązań działały, ale nie powiodły się po ponownym uruchomieniu Ubuntu (w moim przypadku VM),

Powyższe rozwiązanie jest tl; dr z tego rozwiązania ( https://unix.stackexchange.com/a/128223/243480 ) i działało idealnie

Ng Sek Long
źródło
dlaczego ten plik ma „/ base”? Plik wydaje się znajdować jako /etc/resolvconf/resolv.conf.d
Andrés Parada,
2
W moim Ubuntu ma on / base, a resolv.conf.d to katalog
Ng Sek Long
2
Mi to pasuje!
Natan Shalva
Tak, tak jak powiedziałeś: /etc/resolv.conf zostanie wyczyszczony po ponownym uruchomieniu. Twoje jest rozwiązaniem, z którego korzystałem, tyle że użyłem nano ;-)
Bastion
nano będzie w porządku dla tej pracy :)
Ng Sek Long
1

Miałem ten sam problem na Ubuntu 18.04 i powyższa odpowiedź nie działała dla mnie, ponieważ nie miałem folderu o nazwie /etc/resolvconf/resolv.conf.d/. Więc zrobiłem następujące

sudo mkdir -p /etc/resolvconf/resolv.conf.d
sudo touch /etc/resolvconf/resolv.conf.d/head

Następnie dodałem nameserver 8.8.8.8do pliku/etc/resolvconf/resolv.conf.d/head

Następnie prosty restart sieci rozwiązał problem.

sudo /etc/init.d/networking restart
użytkownik9377103
źródło
0

Zmiana /etc/resolv.confnie jest najlepszą odpowiedzią na ten problem. Zgodnie z Ubuntu 16.04 resolv.confplik dokumentacji może zostać nadpisany przez system w dowolnym momencie.
Jeśli używasz konfiguracji statycznego adresu IP, powinieneś dodać jeden wiersz do /etc/network/interfacespliku w swojej konfiguracji karty Ethernet. Powinien wyglądać mniej więcej tak:

iface eth0 inet static 
    address 192.168.3.3 
    emsp;netmask 255.255.255.0 
    gateway 192.168.3.1 
    dns-nameservers 8.8.8.8

A następnie, aby ponownie uruchomić sieć:

/etc/init.d/networking restart

Jeśli chcesz uniknąć ewentualnych problemów w przyszłości, możesz zrobić jeszcze jedną rzecz. Aktualizacja z 16.04 na 18.04 nie zmienia metody konfiguracji sieci z /etc/networkna nową /etc/netplanużywaną w 18.04. Jeśli chcesz to zmienić ręcznie, spójrz na Jak włączyć netplan na serwerze Ubuntu zaktualizowanym z 16.04 do 18.04

Niktnaprawde Nikt nie
źródło
jeśli inni potwierdzą, że to właściwa odpowiedź, zaakceptuję ją! Rozważ, że moja odpowiedź pochodzi z oficjalnej strony ubuntu (startera), a głównym problemem jest brak ustawienia adresu IP serwera nazw. Naprawianie Internetu jest ważne, jeśli chcesz zainstalować coś takiego netplan.io.
Zoltán Süle,
0

Witam wszystkich Prawie całkowity noob tutaj, ale napotkałem ten problem, kiedy zacząłem podwójne uruchamianie między Windows 10 i załadowałem Ubuntu 18.04 na oddzielnym dysku twardym. Mój internet się nie łączy, a router nie pozwala mi otworzyć interfejsu konfiguracji. W końcu doszedłem do wniosku, że dzieje się tak, ponieważ ustawiłem DCHP do przypisania statycznego adresu IP do systemu Windows 10. Po sprawdzeniu wszystkich informacji, które mogłem znaleźć i nic nie działając, załadowałem system Windows 10 i usunąłem statyczne adresy IP routerów z ustawień DHCP. To sprawiło, że Internet działał, ale chciałem statycznego adresu IP dla Windows i Ubuntu. Najlepsze, co mogę wymyślić, to to, że Ubuntu nie zdejmuje poprawnie dłoni z serwera DHCP routerów, mimo że jest ustawiony na automatyczny. Po ręcznym skonfigurowaniu statycznego adresu IP i bramy w systemie Ubuntu mogę wrócić do posiadania wspomnianego statycznego adresu IP. Mam nadzieję, że to komuś pomoże.

Newb Dawg
źródło
0

Na niedziałającym zaktualizowanym komputerze dowiązanie symboliczne:

/etc/resolv.conf -> /run/resolveconf/resolv.conf

Na działającym komputerze z 18.04 dowiązanie symboliczne było:

/etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf

następnie zastępuję stary połączony plik nowym:

rm  /etc/resolv.conf
sudo ln -s  /run/systemd/resolve/stub-resolv.conf  /etc/resolv.conf

(praca po procedurach opisanych poniżej)

Covich
źródło
-1

Problem z połączeniem rozwiązałem po aktualizacji, używając połączenia bezprzewodowego za pomocą adaptera sieciowego podłączonego przez USB, a następnie zmieniając preferowane połączenie przewodowe bezpośrednio na router.

wubetu
źródło