Falsch konfigurierte Dateien auf einem emulierten SSH-Server und jetzt funktionieren Ping, Traceroute und Docker auf meiner Host-VM nicht. (SSH, Apt und Browser funktionieren noch.)

Falsch konfigurierte Dateien auf einem emulierten SSH-Server und jetzt funktionieren Ping, Traceroute und Docker auf meiner Host-VM nicht. (SSH, Apt und Browser funktionieren noch.)

Kurz zusammengefasst:Auf einer klassenzugewiesenen virtuellen Maschine funktionierten Ping Traceroute und das ursprüngliche Skript zum Zugriff auf einen Docker-Container/eine emulierte VM nicht mehr, nachdem eine SSH-Sitzung mit der emulierten VM beendet wurde. Dieses Programm wurde von einem Docker-Container innerhalb meiner klassenzugewiesenen Host-VM ausgeführt. Die Host-VM läuft unter Ubuntu.

Ich muss Ping, Traceroute und meine Fähigkeit, auf das Originalskript und die emulierte VM zuzugreifen, reparieren, um meinen von der Schule zugewiesenen Remote-Desktop zu reparieren und mit meinen Hausaufgaben weitermachen zu können. Das vollständige Zurücksetzen der Desktop-Umgebung hat das Problem nicht behoben. SSH stellt eine Verbindung her, der Browser funktioniert und Traceroute wird ausgeführt, aber die Ergebnisse sind 30 Hops mit drei Sternchen für jeden Hop.

Alle diese Probleme traten gleichzeitig auf, nachdem ich die SSH-Sitzung mit der emulierten VM beendet hatte. Es gibt ein paar Dinge, die ich noch nicht eingegrenzt habe (ARP-Tabellen und Socket-Schnittstelle – ich werde morgen wiederkommen, um ein Update zu geben). Hoffentlich wird die Frage dadurch zumindest prägnanter.


Kontext

Ich arbeite an einer klassenzugeordneten virtuellen Maschine und bin beim Beenden eines Programms, das zur Emulation einer anderen virtuellen Maschine in dieser klassenzugeordneten Desktopumgebung verwendet wurde, auf Probleme gestoßen. Die folgenden Details sind Teil einer Hausaufgabe, an der ich gearbeitet habe, und wurden alle in der emulierten VM innerhalb dieser ursprünglich klassenzugeordneten VM erledigt.

Ich kann nicht zurückgehen und die genauen Dateien und Einstellungen prüfen, die ich auf dem Zielcomputer geändert habe, da das Skript zum Einrichten des emulierten SSH-Servers/der VM/des Docker-Containers auf meinem Hostcomputer nicht gestartet wird.

Folgendes habe ich meines Wissens auf der emulierten VM getan, bevor ich zu meiner Host-VM zurückgekehrt bin.

  • Ich habe einen Benutzer ohne Home-Ordner, mit Root-Rechten und einer UID und GID unter 1000 erstellt.

  • Ich habe die Sudoers-Datei so konfiguriert, dass Root-Zugriff ohne Kennwort möglich ist.

  • Ich habe die sshd_configDatei geändert, um SSH-Zugriff auf einen anderen Port als Port 22 zu ermöglichen.

    Beim Formatieren der sshd_configDatei auf dem Zielcomputer ist mir ein Fehler unterlaufen, durch den Port 22 durch Port 2222 überschrieben wurde.

Dies wurde durch das Hinzufügen einer zusätzlichen Zeile unter der aktuellen Portliste erreicht, sodass sie sshd_configfolgendermaßen aussah:

#Port 22
#Port 2222

Als ich die Datei bearbeiten wollte, war Port 22 auskommentiert und ich konnte über Port 22 problemlos auf die Zielmaschine zugreifen, daher habe ich mir damals nichts dabei gedacht.

Ich habe keine Antwort darauf, warum ein kommentierter Port noch funktionieren würde, und ich sehe keine Möglichkeit, dass dies die aktuellen Probleme verursachen könnte, die ich mit meiner Host-VM habe.

Die Ports auf meiner Host-VM sind offen und funktionieren.

Dies könnten möglicherweise vernachlässigbare Zusatzinformationen sein, aber ich habe die Probleme auf meinem Hostcomputer sofort bemerkt, nachdem ich diese Änderungen vorgenommen und den Zielcomputer verlassen hatte. Diese Probleme waren nicht vorhanden, bevor ich mit der Interaktion mit dem Zielcomputer begann. Wenn es Probleme gibt, die einfach dadurch entstehen können, dass eine SSH-Sitzung mit einem Docker-Container nicht ordnungsgemäß gestartet oder beendet wird, ist dies eine viel wahrscheinlichere Lösung, als die Sitzung selbst mit aktuellen Problemen in Verbindung zu bringen.

Probleme mit Docker/Starten einer emulierten VM

In diesem Fall ist Docker erforderlich, um auf die Zielmaschine zuzugreifen, da es sich um eine Emulation eines SSH-Servers handelt, der über ein Skript ausgeführt wird. Ohne diese Funktion kann ich nicht auf die Zielmaschine zugreifen und feststellen, wie die Änderungen, die ich an der Zielmaschine vorgenommen habe, mit den Problemen auf meiner Hostmaschine zusammenhängen.

Die emulierte VM-Startmeldung zeigt an, dass Docker ausgeführt wird, aber das erforderliche Skript zum Zugriff auf die Zielmaschine wird nicht gestartet. Hier ist die Fehlermeldung:

Apps starten nicht. Irgendetwas stimmt nicht.

Versuchen Sie, die VM neu zu starten, und starten Sie dann Docker neu.

Führen Sie das Skript dann erneut aus.

Ein Neustart von Docker ändert den Status dieser Meldung nicht, ebenso wenig wie ein NeustartoderZurücksetzen der Maschine. Möglicherweise stimmt etwas mit dem Skript nicht, das auf der Zielmaschine ausgeführt wird, aber bei meiner eigenen Untersuchung kann ich nichts Falsches erkennen, geschweige denn etwas, das meine Host-VM so durcheinanderbringen würde, dass ein vollständiger Reset das Problem nicht löst.

Probleme mit Ping und Traceroute

Beim Versuch, die meisten IPs anzupingen, bleibt es in der ersten Zeile hängen und ich muss den Vorgang manuell beenden, da ich keine Fehlermeldung erhalte.

Die Verwendung ping -c 3 -w 12 1.1.1.1zur Begrenzung der Anzahl und der Frist der Ping-Anforderung zeigt:

PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
--- 1.1.1.1 ping statistics ---
12 packets transmitted, 0 received, 100% >packet loss, time 11249ms

ICHBinkann localhost und 127.0.0.1 anpingen, und das Anpingen von 0.0.0.0 funktioniert einwandfrei. Die interne Firewall ist deaktiviert und ICMP ist aktiviert.

Wenn ich den Beispielbefehl für das Interface Ping verwende, ping -I interface google.comerhalte ich die Ausgabe

ping: SO_BINDTODEVICE interface: No such device

Falls Sie über Erfahrungen mit Socket-Programmierung verfügen, wäre Ihr Rat hier von unschätzbarem Wert, da ich glaube, dass hier möglicherweise die Ursache für den Fehler liegt.

Traceroute wird ausgeführt, aber die einzige Ausgabe sind 30 Hops, die jeweils drei Sternchen anzeigen.

Lösungsversuche

Die Konfigurationsdateien auf meinem lokalen Computer spiegeln nicht die Konfigurationsdateiänderungen wider, die ich auf dem Zielcomputer vorgenommen habe. Daher sollte eine Manipulation der Einstellungen des Zielcomputers keine Auswirkungen auf den lokalen Computer gehabt haben. Außerdem habe ich nicht versehentlich die Konfiguration auf meinem lokalen Computer geändert, weil ich dachte, es handele sich um den Zielcomputer.

ICHBinkann localhost und 127.0.0.1 anpingen, und das Pingen von 0.0.0.0 funktioniert einwandfrei.

Die interne Firewall ist deaktiviert und ICMP aktiviert.

Ich habe einen vollständigen Systemreset meiner lokalen VM durchgeführt, und Ping, Traceroute und Docker/die emulierte VM funktionieren immer noch nicht richtig. Die Tatsache, dass das Konfigurationsproblem auch nach einem vollständigen Systemreset bestehen bleibt, ist für mich sehr verwirrend, könnte aber die Ursache eingrenzen. Gibt es eine Systemeinstellung oder Netzwerkstörung, die bei einem vollständigen Systemreset unverändert bleibt?

Ich habe Alternativen zu meiner virtuellen Maschine, aber ich würde dies dennoch als zeitkritisches Problem betrachten, da ich meine Backup-VM für bestimmte Projekte nicht verwenden kann. Ich werde die Frage bearbeiten und mit weiteren Lösungen, die ich bereits ausprobiert habe, klären, während ich die möglichen Optionen durchgehe.

Mögliche Lösungen noch nicht versucht

Socket-Konfiguration.

ARP-Tabellenkonfiguration.

Weitere Untersuchung des emulierten VM-Startvorgangs und wo genau er fehlschlägt.

Weitere Untersuchung, warum die Probleme trotz eines vollständigen Systemresets möglicherweise gleich geblieben sind.

Ich brauche keine umfassende Antwort, nur Hinweise in die richtige Richtung! Werde morgen weiter aktualisieren. Es gibt noch eine Menge Dinge auszuschließen.

Antwort1

Diese Frage wurde geklärt und bleibt der Nachwelt überlassen. Die Host-VM war nie so konfiguriert, dass Ping richtig ausgeführt werden konnte, was ich nicht berücksichtigt habe, weil ich damit beschäftigt war, verschiedene für Ping verfügbare Fehlerbehebungsmethoden auszuprobieren und dabei davon ausging, dass ich in den Konfigurationsdateien etwas Grundlegendes beschädigt hatte.

Ich kontaktierte den Kursleiter und er setzte die Host-VM zurück, wodurch der Docker-Container repariert wurde, der zum Starten der emulierten VM verwendet wurde. Außerdem stellte er klar, dass die Probleme mit Ping und Traceroute Teil des Systems selbst seien.

Ich werde später vielleicht noch mehr Fragen zur Socket-Programmierung stellen, aber letztendlich sind diese für die aktuelle Situation irrelevant.

verwandte Informationen