Не удается получить доступ к избранным сайтам https в Linux через PPPoE

18

Раньше мое интернет-соединение было прямым соединением с моим провайдером. Тогда все работало бы нормально как в Windows, так и в Ubuntu (двойная загрузка). Однако некоторое время назад они начали нуждаться в том, чтобы я набирал номер (PPPoE), используя имя пользователя и пароль. Шлюз, маска подсети, IP, DNS-серверы остались прежними. Но с тех пор я не смог просматривать определенные сайты в Ubuntu, хотя в Windows таких проблем не было. Некоторые примеры веб-сайтов - страница входа в Ovi (хотя share.ovi.com загружается нормально, а nokia.com загружается нормально), Live Mail (работает в Chrome (ium) и Opera, но не в Firefox (как 3.6, так и 4)) Mozilla Аддоны сайта и другие случайные сайты.

На некоторых сайтах, которые не загружаются, отображаются сообщения о тайм-ауте, а на некоторых сайтах (например, moz addons) браузер будет пытаться загрузить без конца (я оставлял его таким даже несколько часов, но не заметил ничего другого). бывает).

Я попытался изменить DNS-серверы на общедоступные. Я даже пытался загрузиться с Fedora LiveCD и затем сменить DNS на них (и даже на OpenDNS), но происходит то же самое. Что может быть по сути не так с некоторыми конфигурациями в самом Linux, которые вызывают эту проблему?

Кто-нибудь знает, почему это происходит и как это можно исправить?

Примечание. Этот вопрос был опубликован в SU, но не получил никаких ответов.

Update: Только видел здесь , что кто - то имел подобную проблему и решить ее, поставив NetworkManager.conf файл /etc/NetworkManager. Что должно быть в этом файле?

Mussnoon
источник

Ответы:

24

У вас есть признаки проблемы MTU : некоторые TCP-соединения зависают, более или менее воспроизводимо для данной команды или URL, но без какого-либо легко различимого общего шаблона. Характерным признаком является то, что интерактивные сеансы SSH работают хорошо, но передача файлов почти всегда заканчивается неудачей. Кроме того, pppoe является источником проблем MTU для домашних пользователей. Поэтому я прописываю проверку MTU.

Что это? М aximum т ransmission у нита максимального размера пакета по каналу сети. MTU варьируется от транспортной среды к транспортной среде, например, проводной Ethernet и Wi-Fi (802.11) имеют разные MTU, а каналы ATM (которые составляют большую часть инфраструктуры дальней связи) имеют свои собственные MTU. PPPOE - это инкапсулированный протокол, который означает, что каждый пакет состоит из нескольких байтов заголовка, за которым следует базовый пакет, поэтому он уменьшает максимальный размер пакета на размер заголовка. IP позволяет маршрутизаторам фрагментировать пакеты, если они обнаруживают, что они слишком велики для следующего перехода, но это не всегда работает. В теории должен быть обнаружен надлежащий MTUавтоматически , но это тоже не всегда работает. В частности, поиск в Google предполагает, что Network Manager не всегда должным образом действует на информацию MTU, полученную из обнаружения MTU, но я не знаю, какие версии подвержены уязвимости или каковы проблемные варианты использования.

Как измерить это. Если у вас есть tracepathиз Linux iputils , запустите, tracepath 8.8.8.8чтобы увидеть MTU по пути к DNS-серверу Google. Если ваша версия tracerouteимеет --mtuопцию, запустите traceroute -n --mtu 8.8.8.8. Посмотрите Обнаружение MTU между мной и целевым IP для большего количества вариантов.

Не имея автоматизированных инструментов, вы можете измерить вручную. Попробуйте отправить ping-пакеты заданного размера внешним хостам, которые на них отвечают, например ping -c 1 -s 42 8.8.8.8(в Linux; в других системах посмотрите документацию вашей pingкоманды). Ваши пакеты должны пройти для достаточно малых значений 42 (если 42 не работает, что-то блокирует пинг.). Для больших значений пакет не пройдет. 1464 - типичное максимальное значение, если ограничивающим элементом инфраструктуры является ваша локальная сеть Ethernet. Если вам повезет, когда вы отправите слишком большой пакет, вы увидите сообщение вроде Frag needed and DF set (mtu = 1492). Если вам не повезло, продолжайте экспериментировать со значением, пока не найдете максимальное значение, а затем добавьте 28 ( -sуказывает размер полезной нагрузки, и помимо этого есть 28 байтов заголовков). Смотрите такжеКак оптимизировать подключение к Интернету, используя MTU и RWIN на форумах Ubuntu.

Как его установить (замените 1454 на MTU, которое вы определили, и eth0на имя вашего сетевого интерфейса)

  • Как раз (Linux): запустить ifconfig eth0 mtu 1454
  • Постоянно (Debian и его производные, такие как Ubuntu, если не используется Network Manager): Изменить /etc/network/interfaces. Сразу после ввода для вашего сетевого интерфейса (после iface eth0 …директивы) добавьте строку с pre-up ifconfig $IFACE mtu 1454. Кроме того, если ваш IP-адрес является статическим, вы можете добавить mtu 1454параметр в iface eth0 inet staticдирективу.
  • Постоянно (Debian и его производные, такие как Ubuntu, с или без Network Manager): создайте скрипт, вызываемый /etc/network/if-pre-up.d/mtuсо следующим содержимым, и сделайте его исполняемым во всем мире ( chmod a+rx):

    #!/bin/sh
    ifconfig $IFACE mtu 1454
    

Другие ресурсы

Жиль "ТАК - перестань быть злым"
источник
Я перестал подключаться с помощью сетевого менеджера и начал использовать pppoeconf. pppoeconf предложил установить mtu на 1452, и он работает нормально. Большое спасибо.
Mussnoon
Кроме того, если вы являетесь суперпользователем, можете ли вы опубликовать ответ там, чтобы я тоже мог принять его там. Вот ссылка: superuser.com/questions/213264/…
Mussnoon
Привет, спасибо за пост. Но в вашем окончательном решении я ничего не могу сделать с ifconfig, поскольку в моем дистрибутиве это устарело. У меня есть только "IP". Как я могу сделать это с помощью «IP»?
Санти
2
@ Санти Я думаю, что это, ip link set eth0 mtu 1454но я не ipэксперт, проверьте руководство.
Жиль "ТАК - перестань быть злым"
@ Жиль, спасибо! Это было это. Мне нужны права sudo, но это не проблема. Будем надеяться, что это поможет, у меня проблемы с доступом к репозиториям https (он зависает большую часть времени), и ssh-соединение с ними даже не работает. С одним и тем же ноутбуком в сети моего института оба протокола работают нормально.
Санти
2

Похоже, что основная проблема связана с SSL. Все ваши проблемные URL - https://....одни.

Я не понимаю, почему изменение PPPoE влияет на это, но, возможно, ваш интернет-провайдер изменил более чем одну вещь одновременно, и вы обвиняете неправильное изменение.

Я бы попытался добавить аппаратный маршрутизатор, который рекомендован вашим провайдером по номеру модели. Мало того, что он может договориться о соединении PPPoE именно так, как хочет ваш провайдер, возможно, он также решит проблему с SSL-соединениями.

Если это не поможет решить вашу непосредственную проблему, вы все равно получите от нее несколько дополнительных преимуществ.

Во-первых, аппаратный брандмауэр добавляет уровень безопасности. Если вам необходимо разрешить подключения к машине за брандмауэром, обратитесь к PortForward.com за инструкциями по переадресации портов для каждого маршрутизатора, который вы, вероятно, будете использовать.

Во-вторых, большинство домашних маршрутизаторов позволяют вам совместно использовать ваше интернет-соединение с несколькими ПК.

Уоррен Янг
источник
У вас может быть что-то там. Но как насчет почтовых сайтов Gmail, Yahoo и AOL? А твиттер? Я специально попробовал twitter.com, и это работает.
Mussnoon
1

У меня была точно такая же проблема с хромом (и хромом). Я предположил, что это была проблема с webkit. Я никогда не находил постоянного решения, но если вы Google Google этот код ошибки (без фактических значений), вы увидите, что многие люди имеют ту же проблему. Я мог временно заставить его работать, закрыв вкладку, которая была подключена к определенному веб-сайту, а затем очистил мой кеш, куки и все остальное.

Я никогда не находил решения и с тех пор вернулся к Firefox.

Falmarri
источник
В моем случае, однако, это не имеет никакого отношения к браузеру, я уверен. Я пробовал использовать IE и Safari на виртуальной машине с XP - те же результаты.
Mussnoon