GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Zugriff auf ausgewählte Websites unter Linux nicht möglich (aber unter Windows möglich)

(Kopiert von Unix Stack Exchange)

Sie haben die Symptome einer MTU Problem:Einige TCP-Verbindungen frieren mehr oder weniger reproduzierbar für einen bestimmten Befehl oder eine URL ein, jedoch ohne leicht erkennbares Gesamtmuster. Ein verräterisches Symptom ist, dass interaktive SSH-Sitzungen gut funktionieren, aber Dateiübertragungen fast immer fehlschlagen. Außerdem ist pppoe der MTU-Problembringer Nummer eins für Heimanwender. Also verschreibe ich einen MTU-Check.

Was ist das? Das m maximal t Ransmission u nit ist die maximale Größe eines Pakets über eine Netzwerkverbindung. Die MTU variiert von Transportmedium zu Transportmedium, z.B. kabelgebundenes Ethernet und WLAN (802.11) haben unterschiedliche MTUs, und ATM-Verbindungen (die den größten Teil der Langstreckeninfrastruktur ausmachen) haben jeweils ihre eigene MTU. PPPOE ist ein gekapseltes Protokoll, was bedeutet, dass jedes Paket aus einigen Header-Bytes besteht gefolgt vom zugrunde liegenden Paket – so wird die maximale Paketgröße um die Größe des Headers verringert. IP ermöglicht es Routern, Pakete zu fragmentieren, wenn sie feststellen, dass sie für den nächsten Hop zu groß sind, aber das funktioniert nicht immer. Theoretisch sollte die richtige MTU automatisch erkannt werden, aber auch das funktioniert nicht immer. Insbesondere Googeln deutet darauf hin, dass Network Manager nicht immer richtig auf MTU-Informationen reagiert, die aus der MTU-Erkennung stammen, aber ich weiß nicht, welche Versionen betroffen sind oder welche problematischen Anwendungsfälle es gibt.

Wie man es misst. Versuchen Sie, Ping-Pakete einer bestimmten Größe an einen externen Host zu senden, der darauf antwortet, z. ping -c 1 -s 42 8.8.8.8 (unter Linux; auf anderen Systemen schlagen Sie in der Dokumentation Ihres ping nach Befehl). Ihre Pakete sollten bei ausreichend kleinen Werten von 42 durchkommen (wenn 42 nicht funktioniert, blockiert etwas Pings). Bei größeren Werten kommt das Paket nicht durch. 1464 ist ein typischer Maximalwert, wenn die begrenzende Infrastruktur Ihr lokales Ethernet-Netzwerk ist. Wenn Sie Glück haben, sehen Sie beim Senden eines zu großen Pakets eine Nachricht wie Frag needed and DF set (mtu = 1492) . Wenn Sie kein Glück haben, experimentieren Sie einfach weiter mit dem Wert, bis Sie das Maximum gefunden haben, und addieren Sie dann 28 (-s gibt die Payload-Größe an, und es gibt zusätzlich 28 Byte Header).Siehe auch How to Optimize your Internet Connection using MTU and RWIN in den Ubuntu-Foren.

Einstellen (Ersetzen Sie 1454 durch die von Ihnen ermittelte MTU und eth0 nach dem Namen Ihrer Netzwerkschnittstelle)

  • Einmalig (Linux):Führen Sie ifconfig eth0 mtu 1454 aus
  • Permanent (Debian und Derivate wie Ubuntu, wenn Network Manager nicht verwendet wird):Bearbeiten Sie /etc/network/interfaces . Direkt nach dem Eintrag für Ihre Netzwerkschnittstelle (nach dem iface eth0 … Direktive), fügen Sie eine Zeile mit pre-up ifconfig $IFACE mtu 1454 hinzu . Wenn Ihre IP-Adresse statisch ist, können Sie alternativ den mtu 1454 hinzufügen Parameter auf iface eth0 inet static Richtlinie.
  • Dauerhaft (Debian und Derivate wie Ubuntu, mit oder ohne Network Manager):Erstellen Sie ein Skript mit dem Namen /etc/network/if-pre-up.d/mtu mit folgendem Inhalt und weltlauffähig machen (chmod a+rx ):

    #!/bin/sh
    ifconfig $IFACE mtu 1454
    

Linux
  1. Linux – Netzwerkzugriff eines Prozesses blockieren?

  2. Linux-Betriebssystemdienst „Netzwerk“

  3. Wie kann ich Windows 7 ohne DVD oder USB unter Linux installieren?

  4. Oracle Linux 6.1-Gast auf Virtualbox 4.1 kann keine Verbindung zum Netzwerk herstellen

  5. Kann ich von der Linux-Shell aus eine Verbindung zu einem Windows-Computer herstellen?

So greifen Sie von Windows 10 auf Linux-Partitionen zu

Überprüfung des Installationsprogramms für das MX-Linux-Paket - Nett, aber kann netter sein

Remotezugriff auf Windows 10 über Ubuntu Linux und Vise Versa

Linux vs. Windows-Sicherheit

Können Windows-Container unter Linux gehostet werden?

Kann Windows anstelle von cmd eine Linux-Shell verwenden?