Mein Server hatte ein Problem mit dem SSH und ich konnte keine Dateien mit einer Größe von> 10 KB hochladen, da SCP während des Kopierens hängen bleiben würde. Ich habe hier eine Lösung für dieses Problem gefunden und die MTU geändert, als ich es versehentlich tat sudo ip link set eth0 mtu 0
.
Niemand kann jetzt in den Server ssh. Was sollte ich tun?
Antworten:
Stellen Sie eine Verbindung zur Konsole her und wechseln Sie die MTU zurück. Wenn Sie keinen Konsolenzugriff haben, starten Sie den Server neu.
quelle
Es ist nicht klar, welches Betriebssystem Sie verwenden. Ich habe Ihren spezifischen Befehl auf zwei verschiedenen Linux-Versionen getestet und jede hat mir eine Fehlermeldung gegeben:
Wenn Sie ein System gefunden haben, mit dem Sie die MTU tatsächlich auf 0 setzen können, würde ich dies als Kernel-Fehler betrachten. Es ist jedoch plausibel, dass Systeme existieren, bei denen das Setzen der MTU auf 0 eine andere Bedeutung hat, z. B. die automatische Erkennung der MTU.
IPv4 erfordert, dass alle Knoten eine MTU von mindestens 68 haben. Linux weiß dies und deaktiviert IPv4 auf der Schnittstelle, wenn die MTU auf einen niedrigeren Wert wie z. B. 67 eingestellt ist. Auf diese Weise können Sie sich aus dem System ausschließen. Das ist unpraktisch, und ich hätte es als besseres Design angesehen, wenn der Kernel die MTU-Änderung ablehnen würde, solange die Schnittstelle eine IP-Adresse hat, die eine höhere MTU erfordert.
Wenn Sie versehentlich sowohl IPv4 als auch IPv6 auf einer Netzwerkschnittstelle deaktivieren, ist es unwahrscheinlich, dass Sie eine Möglichkeit finden, den Computer über diese Netzwerkschnittstelle remote zu verwalten. Wenn der Server über andere Netzwerkschnittstellen verfügt, können Sie möglicherweise auf diese Weise darauf zugreifen. Selbst wenn die andere Netzwerkschnittstelle nicht konfiguriert wurde, verfügt sie möglicherweise über eine lokale IPv6-Verbindungsadresse, an die von einem anderen Host im selben Segment gesendet werden kann. Andernfalls ist eine serielle Konsole weiterhin eine Option, da eine serielle Konsole völlig unabhängig von der Netzwerkkonfiguration des Hosts ist. Letztendlich können Sie den Computer neu starten, wenn Sie remote Zugriff darauf haben. Solange Sie die fehlerhafte Änderung nicht in Konfigurationsdateien geschrieben haben, sollte ein Neustart das Problem beheben.
quelle
ip link set eth0 mtu 0
, aber als ich essudo
auf dem gleichen tat , änderte es die MTU ohne Vorwarnung und sperrte mich aus dem SSH aus. Das Einstellen der MTU auf diese Weise scheint jedoch eine vorübergehende Änderung zu sein, da ein Neustart das Problem behoben hat.screen
dannsudo -i
dannip link set eth0 mtu 0 ; sleep 30 ; ip link set eth0 mtu 1500
vielleicht? (Oder welchen MTU-Wert Sie auch bevorzugen.) Wenn er kaputt geht, wird er nach einer halben Minute automatisch wiederhergestellt. Aber ich würde es immer noch nicht gerne auf einem kritischen System testen ... Andererseits scheint es heutzutage unwahrscheinlich, dass eine Ubuntu 12.04-Instanz kritisch ist.