Nie można uzyskać dostępu do wybranych witryn https w systemie Linux za pośrednictwem PPPoE


18

Moje połączenie internetowe było kiedyś bezpośrednim połączeniem LAN z moim dostawcą. Wtedy wszystko ładowałoby się dobrze zarówno w systemie Windows, jak i Ubuntu (podwójny rozruch). Jednak jakiś czas temu zaczęli wymagać ode mnie wybierania numeru (PPPoE) przy użyciu nazwy użytkownika i hasła. Brama, maska ​​podsieci, IP, serwery DNS pozostały takie same. Ale od tego czasu nie byłem w stanie przeglądać niektórych stron internetowych na Ubuntu, nawet jeśli nie było takich problemów w systemie Windows. Niektóre przykładowe strony internetowe to - strona logowania Ovi (chociaż share.ovi.com ładuje się dobrze, a nokia.com ładuje się dobrze), Live Mail (działa na Chrome (ium) i Opera, ale nie na Firefox (zarówno 3.6, jak i 4)) Mozilla Strona internetowa Addons i inne losowe strony internetowe.

Niektóre strony internetowe, które nie ładują się, pokazują komunikaty o przekroczeniu limitu czasu, a dla niektórych stron internetowych (np. Moz Addons), przeglądarka będzie próbowała ładować się bez końca (zostawiłem to nawet przez godziny, ale nie zauważyłem nic innego zdarzyć).

Próbowałem zmienić serwery DNS na publiczne. Próbowałem nawet uruchomić komputer z LiveCD Fedory, a następnie zmienić DNS na te (a nawet na OpenDNS), ale dzieje się dokładnie to samo. Co może być z natury błędne w niektórych konfiguracjach w samym systemie Linux, które powodują ten problem?

Czy ktoś wie, dlaczego tak się dzieje i jak można to naprawić?

Uwaga: to pytanie zostało zamieszczone na SU, ale nie otrzymano żadnych odpowiedzi.

Aktualizacja: Właśnie zobaczyłem tutaj, że ktoś ma podobny problem i rozwiązałem go, umieszczając plik NetworkManager.conf/etc/NetworkManager . Co musi być w tym pliku?

Odpowiedzi:


24

Występują objawy problemu z MTU : niektóre połączenia TCP zawieszają się, mniej więcej odtwarzalnie dla danego polecenia lub adresu URL, ale bez ogólnie dostrzegalnego wzorca. Charakterystycznym objawem jest to, że interaktywne sesje ssh działają dobrze, ale przesyłanie plików prawie zawsze kończy się niepowodzeniem. Ponadto pppoe jest głównym źródłem problemu MTU dla użytkowników domowych. Przepisuję więc czek MTU.

Co to jest? M aximum t ransmission U NIT jest maksymalny rozmiar pakietu za pośrednictwem łącza sieciowego. MTU różni się w zależności od medium transportowego, np. Przewodowy Ethernet i Wi-Fi (802.11) mają różne MTU, a łącza ATM (które stanowią większość infrastruktury dalekobieżnej) mają swoje własne MTU. PPPOE jest protokołem enkapsulowanym, co oznacza, że ​​każdy pakiet składa się z kilku bajtów nagłówka, a następnie pakietu leżącego u jego podstaw - dzięki czemu obniża maksymalny rozmiar pakietu o rozmiar nagłówka. IP pozwala routerom pofragmentować pakiety, jeśli wykryją, że są zbyt duże do następnego przeskoku, ale to nie zawsze działa. Teoretycznie należy odkryć właściwą MTUautomatycznie , ale to też nie zawsze działa. W szczególności Google sugeruje, że Network Manager nie zawsze właściwie działa na podstawie informacji MTU uzyskanych z odkrycia MTU, ale nie wiem, których wersji dotyczy problem i jakie są problematyczne przypadki użycia.

Jak to zmierzyć. Jeśli masz tracepathz systemu Linux iputils , uruchom, tracepath 8.8.8.8aby zobaczyć MTU na ścieżce do serwera DNS Google. Jeśli twoja wersja traceroutema --mtuopcję, uruchom traceroute -n --mtu 8.8.8.8. Zobacz Odkryj MTU między mną a docelowym adresem IP, aby uzyskać więcej opcji.

Brak automatycznych narzędzi pozwala mierzyć ręcznie. Spróbuj wysłać pakiety ping o danym rozmiarze do hostów zewnętrznych, które na nie odpowiedzą, np. ping -c 1 -s 42 8.8.8.8(W systemie Linux; w innych systemach sprawdź dokumentację swojego pingpolecenia). Twoje pakiety powinny przejść przez wystarczająco małe wartości 42 (jeśli 42 nie działa, coś blokuje pingi). W przypadku większych wartości pakiet nie przejdzie. 1464 jest typową wartością maksymalną, jeżeli ograniczającym elementem infrastruktury jest lokalna sieć Ethernet. Jeśli masz szczęście, gdy wyślesz zbyt duży pakiet, zobaczysz komunikat podobny do tego Frag needed and DF set (mtu = 1492). Jeśli nie masz szczęścia, po prostu eksperymentuj z wartością, aż znajdziesz wartość maksymalną, a następnie dodaj 28 ( -sokreśla rozmiar ładunku, a oprócz tego jest 28 bajtów). Zobacz teżJak zoptymalizować połączenie internetowe za pomocą MTU i RWIN na forach Ubuntu.

Jak to ustawić (zastąp 1454 ustaloną eth0przez Ciebie jednostką MTU i nazwą interfejsu sieciowego)

  • Jako jednorazowy (Linux): uruchom ifconfig eth0 mtu 1454
  • Trwale (Debian i pochodne, takie jak Ubuntu, jeśli nie używasz Network Managera): Edytuj /etc/network/interfaces. Tuż po wpisie interfejsu sieciowego (po iface eth0 …dyrektywie) dodaj wiersz z pre-up ifconfig $IFACE mtu 1454. Alternatywnie, jeśli twój adres IP jest statyczny, możesz dodać mtu 1454parametr do iface eth0 inet staticdyrektywy.
  • Trwale (Debian i pochodne, takie jak Ubuntu, z Menedżerem sieci lub bez): Utwórz skrypt wywoływany /etc/network/if-pre-up.d/mtuz następującą zawartością i uczyń go światowym plikiem wykonywalnym ( chmod a+rx):

    #!/bin/sh
    ifconfig $IFACE mtu 1454
    

Dalsze zasoby


Przestałem się łączyć za pomocą menedżera sieci i zacząłem używać pppoeconf. pppoeconf zasugerował ustawienie mtu na 1452 i działa dobrze. Wielkie dzięki.
Mussnoon

Ponadto, jeśli jesteś superużytkownikiem, czy możesz również zamieścić tam odpowiedź, abym mógł ją tam również zaakceptować. Oto link: superuser.com/questions/213264/…
Mussnoon

Cześć, dzięki za post. Ale w ostatecznym rozwiązaniu nic nie mogę zrobić z ifconfig, ponieważ w mojej dystrybucji jest to przestarzałe. Mam tylko „ip”. Jak mogę to zrobić za pomocą „ip”?
Santi

2
@ Santi Myślę, że tak, ip link set eth0 mtu 1454ale nie jestem ipekspertem, sprawdź instrukcję.
Gilles „SO- przestań być zły”

@Gilles dzięki! To było to. Potrzebuję jednak praw sudo, ale to nie był problem. Miejmy nadzieję, że to pomoże, mam problem z dostępem do repozytoriów https (zawiesza się przez większość czasu) i połączenie z nimi ssh nawet nie działa. Z tym samym laptopem w sieci mojego instytutu oba protokoły działają dobrze.
Santi

2

Wygląda na to, że podstawowy problem dotyczy SSL. Wszystkie Twoje problematyczne adresy URL są https://....jednymi.

Nie rozumiem, dlaczego zmiana PPPoE ma na to wpływ, ale być może twój dostawca usług internetowych zmienił więcej niż jedną rzecz na raz i obwiniasz niewłaściwą zmianę.

Spróbowałbym dodać router sprzętowy, szczególnie zalecany przez numer modelu przez twojego dostawcę usług internetowych. Nie tylko jest prawdopodobne, że uda się wynegocjować połączenie PPPoE dokładnie tak, jak chce tego twój dostawca usług internetowych, być może rozwiąże to również problem z połączeniami SSL.

Jeśli to nie pomoże w twoim bezpośrednim problemie, nadal zyskujesz z tego kilka dodatkowych korzyści.

Po pierwsze, zapora sprzętowa dodaje warstwę bezpieczeństwa. Jeśli chcesz zezwolić na połączenia z maszyną za zaporą ogniową, zobacz PortForward.com, aby uzyskać instrukcje dotyczące przekazywania portów na każdym routerze, którego prawdopodobnie będziesz używać.

Po drugie, większość routerów domowych umożliwia udostępnianie połączenia internetowego wielu komputerom.


Możesz coś tam mieć. A co z witrynami Gmail, Yahoo i AOL? A na Twitterze? Właśnie próbowałem twitter.com i działa.
Poniedziałek

1

Miałem dokładnie ten sam problem z chromem (i chromem). Założyłem, że to problem z webkitem. Nigdy nie znalazłem trwałego rozwiązania, ale jeśli przejdziesz do tego kodu błędu (bez rzeczywistych wartości), zobaczysz, że wiele osób ma ten sam problem. Mogłem tymczasowo uruchomić to, zamykając kartę, która była połączona z konkretną witryną, a następnie wyczyściłem pamięć podręczną i pliki cookie i wszystko.

Nigdy nie znalazłem rozwiązania i od tego czasu wróciłem do Firefoxa.


W moim przypadku nie ma to jednak nic wspólnego z przeglądarką. Próbowałem również z IE i Safari z maszyny wirtualnej XP - te same wyniki.
Mussnoon
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.