Problem rozwiązywania wielu stron internetowych

38

Obecnie używam Ubuntu 12.04 i korzystam z Chrome / Firefox wraz z OpenDNS (wypróbowałem Google Public DNS oraz DNS mojego ISP).

Nagle wiele witryn, które często odwiedzam, już się nie ładuje. Niektóre z nich to strona imgur, yahoo, fed-sudoku , microsoft i strona dodatkowa Firefoksa. Jestem pewien, że jest wiele innych, które się nie ładują.

Mam system Windows 7 w trybie podwójnego rozruchu i nie ma żadnych problemów z otwieraniem tych stron w systemie Windows.

Krótka historia

Dwa tygodnie temu zainstalowałem Ubuntu 12.10. Natychmiast stanąłem przed tym problemem. Myślałem, że coś poszło nie tak podczas instalacji, więc usunąłem Ubuntu 12.10 i zamiast tego zainstalowałem Lubuntu 12.10, ale problem nadal występował. Próbowałem więc otworzyć te strony internetowe w Live Environments (Ubuntu 12.10, Lubuntu 12.10 i Ubuntu 12.04.1) z USB. Problem dotyczył Ubuntu 12.10 i Lubuntu 12.10. Udało mi się jednak uzyskać dostęp do tych stron z Ubuntu 12.04.1. Tak więc zainstalowałem 12.04.1 na moim dysku twardym. Wszystko w dniu 12.04 było w porządku do wczoraj; ale nagle te strony już się nie ładują. Windows 7 w trybie Dual-Boot działa bez zarzutu.

Aktualizacje

(1) W odpowiedzi na odpowiedź Zhanga do sprawdzenia basic terminal commands- Użyłem OpenDNS i GooglePublic DNS do przetestowania tych poleceń (ponownie uruchomiłem komputer między nimi). Są to wyjścia terminali podczas korzystania z OpenDNS i podczas korzystania z GooglePublicDNS .

(2) Jest to wynik ifconfig- Pastebin Link .

(3) Następnie próbowałem użyć, wgetaby sprawdzić, czy problem dotyczy przeglądarki. Nie działało to jednak na stronach internetowych, które nie ładują się w mojej przeglądarce. To jest link Pastebin pokazujący go dla Google (działa) i Yahoo (nie działa).

(4) Następnie postępuj zgodnie z instrukcjami wymienionymi w noobslab do disable IPV6. Ponadto uruchomiłem ponownie komputer. Jednak to też nie pomogło.

(5) Następnie edytowałem moje połączenie przewodowe za pomocą Network-Managera do ignore IPV6. Potem spróbowałem otworzyć Yahoo w przeglądarce - załadował się za pierwszym razem. Jednak gdy spróbowałem ponownie, nie załadowałem się. Inne problematyczne witryny w ogóle się nie ładowały.

(6) Znów próbowałem wget. Tym razem jednak przekazano mu argument -4; to znaczy; wget -4 www.yahoo.com. Ale jeszcze raz nie otrzymałem żadnej odpowiedzi.

(7) Następnie próbowałem się bawić MTU. Kliknij ten link, aby sprawdzić, jakie maksimum mogę ustawić. Dla mnie maksymalne możliwe było 10324. Wypróbowałem też inne wartości, takie jak 1500, 1492, 1452 i 100. Ale to też nie pomogło.

(8) Re-installed Ubuntu 12.04.1 , usuwając poprzednią instalację i jako takie wszystkie inne zmiany. Zainstalowano również wszystkie dostępne aktualizacje. Przez pierwsze pół godziny byłem w stanie załadować wszystkie strony - w tym te, które miały problem. Ale później mam ten sam problem, co wcześniej - nie mogę załadować stron takich jak yahoo, imgur, microsoft, fed-sudoku itp.

(9) Pytanie skierował laurent

Z informacji wget pastebin w pytaniu wynika, że ​​problemem nie jest DNS, ponieważ polecenia wgeti digdocierają do adresu IP Yahoo. To powiedziawszy, nie wiem, dlaczego nic nie pobiera za pomocą wget! Czy ustawiłeś zaporę ogniową? (możesz to sprawdzić za pomocą sudo iptables -L). W ifconfigwynikach są 2 interfejsy, ppp0 i eth0. Którego należy użyć do połączenia z Internetem? Czy możesz opublikować wynik routepolecenia? Obs: eth0 nie ma adresu IPV4, więc myślę, że nie jest poprawnie skonfigurowany (jak to jest /etc/network/interfaces?)

Oto Link Pastebin dla wyjść terminali sudo iptables -L; route a cat /etc/network/interfaces. Nie uruchamiam żadnej zapory ogniowej. To czysta instalacja Ubuntu 12.04.1. ppp0 służy do łączenia się z Internetem (wymaga nazwy użytkownika i hasła podanego przez mojego dostawcę usług internetowych), a eth0 to OnBoard LAN Intela, który łączy modem przez port Ethernet.

(10) Próbowałem dołączyć nameserver 208.67.222.222linię /etc/resolv.conf(ponieważ używam OpenDNS). Ale to nie pomogło (nawet po ponownym uruchomieniu). Cofnęliśmy zmiany. To także część odpowiedzi udzielonej przez Laurenta - jest wymagana, jeśli chcę korzystać z OpenDNS.

Inne informacje

  • Mam modem ADSL (nie router) podłączony do komputera za pomocą portu Ethernet. Aby połączyć się z Internetem, mam połączenie DSL. Więc używam PPPOE do połączenia.
  • Wyjście terminala dla informacji o systemie sudo lshw -C network; cat /etc/resolv.conf; ifconfig -a- Pastebin Link
Aditya
źródło

Odpowiedzi:

21

Część 1 - Połączenie PPPoE nie działa

Spróbowałbym wyłączyć Menedżera sieci i ręcznie skonfigurować sieć, jak wyjaśniono w pomocy Ubuntu ADSLPPPoE . Config with pppoeconfNajpierw skorzystaj z części, która zasadniczo działa sudo pppoeconfi odpowiada na pytania. Ponieważ musisz użyć innego serwera DNS niż ten dostawcy usług internetowych, odpowiedz nona pytanie dotyczące korzystania z równorzędnego serwera DNS.

Opcjonalne, jeśli połączenie internetowe nie zostanie ponownie uruchomione podczas rozruchu: Możesz edytować nano /etc/rc.local, dodać następujące wiersze przed exitwierszem i uruchomić ponownie, aby go przetestować.

killall pppd
ifconfig eth0 up
pon dsl-provider

Menedżer sieci nie będzie używany podczas korzystania z ręcznej konfiguracji, ale można go wyłączyć, klikając go i usuwając zaznaczenie opcji enable network(i enable wirelessjeśli jest dostępna). Jeśli wyłączenie nie działa, możesz je również odinstalować za pomocą sudo apt-get remove network-manageri po, sudo apt-get autoremoveaby wyczyścić automatycznie zainstalowane pakiety.

Część 2 Zmiana domyślnego serwera DNS ISP na openDNS

Odkryłem tutaj, że najlepszym sposobem na użycie statycznego DNS resolvconfjest dodanie serwera nazw /etc/network/interfaceslub dodanie go /etc/resolvconf/resolv.conf.d/head. Ponieważ interfejsy są automatycznie konfigurowane (dhcp), musisz użyć headpliku:

sudo nano /etc/resolvconf/resolv.conf.d/head

i dodaj na końcu:

nameserver 208.67.222.222
nameserver 208.67.220.220

Ograniczenia

  • Do połączenia nie można użyć Network-Managera. Jednak automatycznie łączy się z Internetem. W przeciwnym razie możesz połączyć się, uruchamiając pon dsl-provider. Aby się rozłączyć, musisz być sudo, więc uruchom sudo poffrozłącza się.
  • [Ten problem dotyczy tylko Ubuntu 12.04.] Podczas uruchamiania systemu Ubuntu (z wyłączonym modemem lub gdy nadal próbuje nawiązać połączenie z dostawcą usług internetowych) - Ubuntu czeka na załadowanie Network-Configurationprzez około 2 minuty, a następnie uruchamia się bez konfiguracji sieci. Aby uzyskać dostęp do Internetu, musisz uruchomić pon dsl-provider.

Poprawki do usunięcia wcześniejszych testów (niepotrzebne w innych przypadkach):

Ponieważ resolv.confwcześniej usuwaliśmy dowiązanie symboliczne, musimy je ponownie utworzyć (niepotrzebne przy nowej instalacji):

cd /etc
sudo rm resolv.conf
sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf

Jeśli to zadziała, możesz cofnąć zmiany, /etc/dhcp/dhclient.confktóre wprowadziliśmy wcześniej.

laurent
źródło
Hej!! Co zrobiłeś? Witryny z problemami ładują się przy użyciu tej metody sudo pppoeconf. Mam tylko nadzieję, że to nie jest tymczasowe. Mam nadzieję, że znasz teraz problem. Czy jest jakiś sposób, aby używać Menedżera sieci zamiast uruchamiania poleceń pon dsl-provideri poff dsl-providerza każdym razem. Dziękuję Ci. Dziękuję bardzo :) :) :)
Aditya,
4
Ta odpowiedź zawiera porady dotyczące usunięcia resolvconfpaczki. Ten pakiet jest częścią podstawowego systemu Ubuntu 12.04 i nowszych. Istnieje bardzo niewiele uzasadnionych powodów, aby usunąć resolvconf, i nie widzę żadnego z tych powodów mających zastosowanie tutaj. Jeśli naprawdę chcesz mieć plik statyczny /etc/resolv.conf, lepiej zostawić zainstalowany resolvconf i po prostu zastąpić łącze symboliczne /etc/resolv.conf-> ../run/resolvconf/resolv.confplikiem statycznym. Jest to lepsze, ponieważ obecność resolvconf zapobiega nadpisywaniu innych pakietów /etc.resolv.conf.
jdthood,
2
Tak. Pakiety w głównym repozytorium Ubuntu, które historycznie zapisały się na /etc/resolv.conf, zostały bezpośrednio zmodyfikowane, aby powstrzymały się od pisania na /etc/resolv.conf, jeśli zainstalowany jest pakiet resolvconf. Więc nawet jeśli chcesz tylko statyczny plik /etc/resolv.conf, dobrze jest mieć zainstalowany resolvconf, ponieważ będzie on działał jako rodzaj profilaktyki. Program resolvconf (/ sbin / resolvconf) nigdy nie dotyka bezpośrednio /etc/resolv.conf; zapisuje do /run/resolvconf/resolv.conf; a pakiet resolvconf podejmuje tylko jedną próbę skonfigurowania dowiązania symbolicznego na /etc/resolv.conf.
jdthood,
1
@Aditya - OK edytowane zgodnie z wynikami. Aby odpowiedzieć na pytanie dotyczące rc.localmodyfikacji, należy jej używać tylko wtedy, gdy połączenie internetowe nie zostanie ponownie uruchomione podczas rozruchu (ponieważ nie było to w 12.04, ale wygląda na to, że teraz zacznie działać poprawnie w 12.10, więc można je usunąć). Długi czas rozruchu, gdy modem nie działa, ponieważ używasz innego DNS, który jest nieosiągalny, gdy połączenie nie jest w pełni ustanowione. Możliwe, że jeśli usuniesz dhclient.confmodyfikację i użyjesz tylko resolv.conftej, tak się nie stanie. W każdym razie proponuję inny sposób, aby to zrobić w nowej edycji.
laurent,
1
Cieszę się, że działa! Możesz spróbować sudo poff -asprawdzić, czy jest to problem z uprawnieniami. Jeśli to rozwiązuje problem sprawdzić, czy użytkownik ma odpowiednie uprawnienia z idi sprawdź, czy jesteś w dipi dialoutgrup. Jeśli nie, możesz dodać za pomocą sudo adduser your-user dialout. Aby sprawdzić, co się dzieje, użyj tail /var/log/ppp.logpo poff(lub lepiej tail -f /var/log/pppw jednym terminalu, podczas gdy poffw innym), aby zobaczyć, dlaczego to nie działa.
laurent,
11
  1. Sprawdź, czy Twój klient może komunikować się z serwerami openDNS

    sudo traceroute -n -w 2 -q 2 -m 30  208.67.222.222
    

    Jeśli ostatni wiersz danych wyjściowych nie zawiera 208.67.222.222 jako końcowego przeskoku lub jeśli występują znaczne limity czasu, może występować problem z siecią uniemożliwiający skontaktowanie się z serwerami openDNS.

  2. Sprawdź, czy openDNS może rozpoznać wybraną nazwę hosta

    dig @208.67.222.222 www.difficult.com.      
    

    W wierszu polecenia uruchom następujące polecenie, zastępując www.difficult.com. z nazwą, którą trudno było rozwiązać (umieszczenie kropki na końcu nazwy, aby uniknąć problemów z sufiksami domen i listami wyszukiwania)

    Jeśli dane wyjściowe nie zawierają odpowiedzi dla nazwy hosta, kontynuuj:

  3. Sprawdź, czy inny otwarty program rozpoznawania nazw może rozpoznać wybraną nazwę hosta

    dig @8.8.8.8 www.difficult.com.
    dig @8.8.8.4 www.difficult.com.
    dig @4.2.2.1 www.difficult.com.
    dig @4.2.2.2 www.difficult.com.
    

    Jeśli uzyskasz pomyślny wynik, może występować problem z openDNS

  4. Sprawdź, czy wiarygodne serwery nazw są poprawne

    intoDNS jest bardzo pomocny.


AKTUALIZACJA :
Ta odpowiedź nie mogła rozwiązać problemu, tylko w celu rozwiązania problemu.
Jeśli rozwiązanie DNS działało dobrze, przejdź do odpowiedzi laurenta.


Odniesienie: rozwiązywanie problemów z publicznym DNS

yuan
źródło
Z informacji wget pastebin w pytaniu wynika, że ​​problemem nie jest DNS, ponieważ polecenia wgeti digdocierają do adresu IP Yahoo. To powiedziawszy, nie wiem, dlaczego nic nie pobiera za pomocą wget! Czy ustawiłeś zaporę ogniową? (możesz to sprawdzić za pomocą sudo iptables -L)
laurent,
To prawda, że ​​w ifconfigwynikach są 2 interfejsy ppp0 i eth0. Którego należy użyć do połączenia z Internetem? Czy możesz opublikować wynik routepolecenia? Obs: eth0 nie ma adresu IPV4, więc myślę, że nie jest poprawnie skonfigurowany (jak to jest /etc/network/interfaces?)
laurent
2
Cześć Zhang, przepraszam za zamieszanie związane z Super User. Zleciłem nagrodę za to pytanie, aby zyskało więcej uwagi. Twoje zdrowie!
slhck,
1
@slhck: Dzięki za dostarczenie nagrody za to pytanie. AskUbuntu i Ubuntu Community jest świetna ... Uwielbiam to ... Pozdrawiam !!!
Aditya
@Aditya, masz plik /etc/ppp/resolv? Jeśli tak, czy możesz sprawdzić, czy Twój ISP DNS jest tam zapisany? i zmień go na adresy IP openDNS. Możesz więc zmienić atrybut -i z powrotem na/etc/resolv.conf
laurent,
3

Dołącz tę linię do ciebie /etc/resolv.conf:

nameserver 8.8.8.8
jaśmin
źródło
Obecnie używam OpenDNS. Czy na pewno powinienem dołączyć serwery DNS Google?
Aditya
Miałem taki problem jak twój. Wystarczy dołączyć dns (nawet OpenDNS może działać) do resolv.conf jak w mojej odpowiedzi i wypróbować.
jaśmin
2
Twój komputer faktycznie użyje ich wszystkich w kolejności, więc dodanie jednego do końca może sprawić, że wszystko zadziała, ale jeśli pierwsze serwery nazw wciąż przekroczą limit czasu, twój system będzie działał wolno.
ImaginaryRobots,
Zauważ, że w Ubuntu 12.04 i nowszych wersjach nie powinieneś normalnie edytować /etc/resolv.conf, ponieważ jest on dynamicznie aktualizowany przez resolvconf. Jeśli naprawdę chcesz mieć /etc/resolv.confplik statyczny , pozostaw zainstalowany pakiet resolvconf i zastąp dowiązanie symboliczne w pliku /etc/resolv.conf plikiem statycznym zawierającym (jak w tym przykładzie) nameserver 8.8.8.8.
jdthood,
3

Pierwotny problem można prawdopodobnie rozwiązać, wykonując następujące czynności.

sudo apt-get install resolvconf
sudo dpkg-reconfigure resolvconf
jdthood
źródło
Powinien to zrobić również rozwiązać problem na Live CD. Jeśli tak, spróbowałbym na Ubuntu 12.10 Live CD ..
Aditya,
Prawdopodobnie nie rozwiąże niczego na oryginalnym Live CD Ubuntu 12.04 lub 12.10, ponieważ wiadomo, że resolvconf jest poprawnie zainstalowany na tych CD. Ale wiele pochodnych Ubuntu stworzyło płyty CD z wadliwymi instalacjami resolvconf. Takie wadliwe instalacje mogą czasem zostać naprawione przez uruchomienie sudo dpkg-reconfigure resolvconf.
jdthood,
Pierwotny problem występował przy wciąż zainstalowanym resolvconf (i na żywo CD), było to spowodowane konfiguracją pppoe, a nie DNS. Problem z resolv.confprzepisywaniem przy użyciu OP ISP DNS zamiast openDNS pojawił się podczas konfigurowania ppp connection ( sudo pppoeconf), więc pomyślałem, że resolvconf przepisuje go (ale jak mogliśmy zobaczyć później, tak nie było!). W każdym razie problem jest bardzo dziwny, ponieważ niektóre witryny działały poprawnie, a niektóre nie. We wszystkich przypadkach rozpoznawanie DNS działało (i nadal działa). Jedynym problemem jest teraz to, że OP chce użyć innego serwera DNS.
laurent,
Postępowanie sudo dpkg-reconfigure resolvconfzgodnie z instrukcjami / instrukcjami rozwiązało mój problem! To wystarczyło!
Apelsin
3

Może możesz spróbować wyłączyć dnsmasq:

sudo vim /etc/NetworkManager/NetworkManager.conf

Umieść #przeddns=dnsmasq

Następnie:

sudo restart network-manager

Po zainstalowaniu 12.04 i 12.10 mam problem z rozwiązaniem niektórych stron internetowych. Po wyłączeniu dnsmasqwszystko działało dobrze.

Jeśli to pomoże, możesz zainstalować pełną usługę dnsmasq i wprowadzić swojego ulubionego dostawcę DNS /etc/resolvconf/resolv.conf.d/tail.

snowhawkyrf
źródło
Chciałbym tego spróbować. Jednak mój Network Manager pokazuje moją sieć LAN jako Device not managed. Dlatego też nie pokazuje połączenia DSL, które właśnie utworzyłem. Spójrz na ten obraz .
Aditya
NetworkManager nie zarządza interfejsem, ponieważ jest ręcznie konfigurowany w /etc/network/interfaceswyniku działania pppoeconf. Problem polegał na tym, że automatyczne połączenie utworzone przez NetworkManager nie działało, ale możesz spróbować teraz (ponieważ wiesz, jak naprawić, jeśli przestanie działać). Wystarczy wypowiedzieć się wiersze dodane przez pppoeconfw /etc/network/interfacesi zmiany managed=false to =truew /etc/NetworkManager/NetworkManager.conf.Teraz, że wiesz gdzie jest problem, zgłoś, jeśli nie działa automatycznie i może starać się go rozwiązać za pomocą menedżera sieci.
laurent
@laurent i @snowhawkyrf: Próbowałem. Jednak to nie działa dla mnie. Korzystanie pppoeconfwydaje się być jedyną opcją rozwiązania problemu. W każdym razie dziękuję za twoje uwagi.
Aditya
0

Najwyraźniej problemem jest sposób, w jaki Ubuntu radzi sobie z połączeniami DSL. Nie udało mi się skonfigurować połączenia DSL zgodnie z sugestią ekspertów.

W ramach obejścia korzystam z TOR, ponieważ istnieje tylko kilka stron internetowych, na które ma wpływ.

maisun
źródło
0

Ten sam problem wystąpił tutaj (ASUS EeePC 1015BX - Ubuntu 12.10 - system AMD C-60). G Edytowanie /etc/resolv.confpliku ( sudo -H gedit /etc/resolv.conf) i zamiana nameserver 127.0.1.1wiersza na następujący

nameserver 208.67.222.222
nameserver 208.67.220.220

rozwiązał problemy.

Możesz to zrobić na stałe, korzystając z tych procedur.

Wander Silva
źródło
0

Cóż, piszę to polecenie za każdym razem, gdy przestaje działać, nadal uważam, że to błąd, a może robię coś złego z komputerem

service NetworkManager restart

Powinien zacząć działać (jeśli nie ma połączenia z Internetem). Ale jeśli to nie zadziała, spróbuj zaktualizować rekordy dns, a następnie ponownie wykonaj powyższe polecenie. Shold pracy.

Ray Dragon
źródło